Skip to content

Commit

Permalink
Merge pull request #456 from org-SCAN/feature/issue-443_ADD_SWITCH_La…
Browse files Browse the repository at this point in the history
…nguage-FIX

[PR] Feature/issue 443 add switch language fix
  • Loading branch information
lduf authored Dec 7, 2023
2 parents 2885c82 + 6992ead commit 6dbbe33
Show file tree
Hide file tree
Showing 26 changed files with 279 additions and 18 deletions.
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ save.txt
.env
mongo-volume/*
.idea/*
.idea/php.xml
/.idea/vsc.xml
/.idea/website.iml
/.idea/*
vcs.xml


Expand All @@ -15,4 +19,5 @@ vcs.xml
# Editor-based HTTP Client requests
/httpRequests/

.vscode/*
.vscode/*
/.phpunit.result.cache
2 changes: 2 additions & 0 deletions src/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ public/zip
/storage/*.key
/vendor
.env
.env.testing
.env.backup
.phpunit.result.cache
docker-compose.override.yml
docker-compose.yml
Homestead.json
Homestead.yaml
npm-debug.log
Expand Down
19 changes: 19 additions & 0 deletions src/app/Http/Controllers/ManageUsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use App\Http\Requests\StoreUserRequest;
use App\Http\Requests\UpdateCrewRequest;
use App\Http\Requests\UpdateUsersRequest;
use App\Http\Requests\UpdateLanguageRequest;
use App\Models\Role;
use App\Models\RoleRequest;
use App\Models\User;
Expand Down Expand Up @@ -243,6 +244,24 @@ public function ChangeTeam(UpdateCrewRequest $request) {
return redirect()->back();
}

/**
* Change user language
*
* @param Request $request
* @param User $user
* @return RedirectResponse
*/
public function ChangeLanguage(UpdateLanguageRequest $request) {
$this->authorize('changeLanguage',
$request->user());
$language = $request->input('language_id');
$user = $request->user();
$user->language_id = $language;
$user->save();
$user->refresh();
return redirect()->back();
}

/**
* Send an invitation email to the user
* Redirect to the user show page
Expand Down
17 changes: 17 additions & 0 deletions src/app/Http/Livewire/ChangeLanguage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace App\Http\Livewire;

use App\Models\Language;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;

class ChangeLanguage extends Component
{
public function render()
{
$user = Auth::user();
$languages = Language::all()->pluck('language_name', 'id');
return view('livewire.change_language', compact('languages', 'user'));
}
}
8 changes: 5 additions & 3 deletions src/app/Http/Middleware/Localization.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Auth;
class Localization
{
/**
Expand All @@ -15,9 +16,10 @@ class Localization
*/
public function handle(Request $request, Closure $next)
{
if (Session::has('locale')) {
App::setLocale(Session::get('locale'));
if (Auth::user()){
App::setLocale(strtolower(Auth::user()->language->API_language_key ?? "en"));
}

return $next($request);
}
}
}
30 changes: 30 additions & 0 deletions src/app/Http/Requests/UpdateLanguageRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdateLanguageRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}

/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
"language_id" => "uuid|required|exists:languages,id"
];
}
}
5 changes: 5 additions & 0 deletions src/app/Models/Language.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsTo;

class Language extends Model
{
Expand Down Expand Up @@ -42,4 +43,8 @@ public static function otherLanguages()
{
return self::whereDefault(0)->get();
}
public function user()
{
return $this->belongsTo(User::class, 'id');
}
}
4 changes: 4 additions & 0 deletions src/app/Models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,8 @@ public function roleRequest() {
return $this->hasMany(RoleRequest::class,
"user_id");
}

public function language(){
return $this->belongsTo(Language::class);
}
}
5 changes: 5 additions & 0 deletions src/app/Policies/UserPolicy.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ public function requestRole(User $user) {
'user.requestRole') ? Response::allow() : Response::deny(parent::ERROR_MESSAGE);
}

public function changeLanguage(User $user) {
return $this->hasPermission($user,
__FUNCTION__,
'user.changeLanguage') ? Response::allow() : Response::deny(parent::ERROR_MESSAGE);
}
public function invite(User $user) {

return $this->hasPermission($user,
Expand Down
Empty file.
4 changes: 2 additions & 2 deletions src/database/migrations/2021_04_02_094551_create_links_table.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ public function up()

$table->softDeletes();
$table->foreignUuid("relation");
$table->string("from");
$table->string("to");
$table->foreignUuid("from");
$table->foreignUuid("to");
$table->String("detail")->nullable();
$table->foreignUuid("api_log");
$table->string("application_id")->default("website");
Expand Down
2 changes: 1 addition & 1 deletion src/database/migrations/2021_04_17_212623_create_fields_table.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function up()
$table->string("label");
$table->string("placeholder")
->nullable();
$table->uuid("data_type_id")->nullable();
$table->foreignUuid("data_type_id")->nullable();
$table->string( "linked_list")
->nullable();
$table->integer( "status");
Expand Down
2 changes: 1 addition & 1 deletion src/database/migrations/2022_11_03_084914_create_sources_table.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public function up()
{
Schema::create('sources', function (Blueprint $table) {
$table->uuid("id")->primary();
$table->uuid("source_type_id");
$table->foreignUuid("source_type_id");
$table->string("name");
$table->string("reference")->nullable();
$table->float("trust")->default(1);
Expand Down
2 changes: 1 addition & 1 deletion src/database/migrations/2022_11_18_154211_add_type_to_list_relations_table.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
public function up()
{
Schema::table('list_relations', function (Blueprint $table) {
$table->string('relation_type_id')->nullable();
$table->foreignUuid('relation_type_id')->nullable();
});
}

Expand Down
4 changes: 2 additions & 2 deletions src/database/migrations/2022_12_01_163325_create_associated_lists_table.php
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ public function up()
Schema::create('associated_lists', function (Blueprint $table) {
$table->uuid("id")->primary();
$table->timestamps();
$table->uuid("field_id");
$table->uuid("list_id");
$table->foreignUuid("field_id");
$table->foreignUuid("list_id");
});
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->foreignUuid('language_id')->nullable();
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn(['language_id']);
});
}
};
4 changes: 3 additions & 1 deletion src/database/migrations/jsonDataset/roles.json
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
"links.update",
"links.destroy",
"user.change_team",
"user.change_language",
"user.request_role",
"duplicate.index",
"duplicate.create",
Expand Down Expand Up @@ -61,7 +62,8 @@
"links.index",
"links.show",
"event.index",
"event.show"
"event.show",
"user.change_language"
]
},
{
Expand Down
7 changes: 7 additions & 0 deletions src/resources/lang/en/livewire/change_language.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
return [
"change_language" => "Change language",
"change_language_description" => "Change your language.",
"form_title" => "Language",
"form_placeholder" => "-- Select the language --",
];
1 change: 1 addition & 0 deletions src/resources/lang/en/user/show.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
'email' => 'Email',
'roles' => 'Roles',
'team' => 'Team',
'language' => 'Language',
'user_details' => 'User Details',
];
17 changes: 17 additions & 0 deletions src/resources/lang/fr/user/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php
return [
"title" => "Gérer l'utilisateur",
"section_title" => "Utilisateurs",
"add_user" => "Ajouter un utilisateur",
"roles" => "Rôles",
"name" => "Nom",
"email" => "Email",
"role" => "Rôle",
"team" => "Team",
"grant_permission" => "Demande de rôle",
"grant" => "Accorder",
"reject" => "Refuser",
"grant_role" => "Accorder le rôle de <b>:role_name</b>",
"reject_role" => "Refuser le rôle de <b>:role_name</b>",

];
32 changes: 32 additions & 0 deletions src/resources/views/livewire/change_language.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<x-jet-action-section>
<x-slot name="title">
{{ __('livewire/change_language.change_language') }}
</x-slot>

<x-slot name="description">
{{ __('livewire/change_language.change_language_description') }}
</x-slot>

<x-slot name="content">
<div class="flex items-center mt-4">
<form class="inline-block" action="{{route('user.change_language', $user->id)}}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@livewire("forms.form", [
"form_elem" => "language_id",
"type" => "select-dropdown",
"title" => __("livewire/change_language.form_title"),
"placeHolder" => __("livewire/change_language.form_placeholder"),
"associated_list" => $languages,
"previous" => $user->language->id ?? null,
])



<button
class="inline-flex items-center px-4 py-2 mt-4 bg-gray-800 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-gray-700 active:bg-gray-900 focus:outline-none focus:border-gray-900 focus:shadow-outline-gray disabled:opacity-25 transition ease-in-out duration-150">
{{ __('livewire/change_language.change_language') }}
</button>
</form>
</div>
</x-slot>
</x-jet-action-section>
6 changes: 6 additions & 0 deletions src/resources/views/profile/show.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
<x-jet-section-border/>

@endif

<div class="mt-10 sm:mt-0">
@livewire('change-language')
</div>
<hr/>

<div class="mt-10 sm:mt-0">
@livewire('view-token')
</div>
Expand Down
1 change: 1 addition & 0 deletions src/resources/views/roles/create.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class="bg-gray-300 hover:bg-gray-400 text-black font-bold py-2 px-4 rounded">{{
id="{{ $permission_id }}" value="{{ $permission_id }}"
class="{{ $route_base }} m-1 ml-5"
@checked(old("permissions.$permission_id", ''))

>
<span class="font-medium text-sm text-gray-700">{{ $permission_name }}</span>
</label>
Expand Down
11 changes: 11 additions & 0 deletions src/resources/views/user/show.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,17 @@ class="px-6 py-3 bg-gray-50 text-left text-xs font-medium
{{$user->crew->name}}
</td>
</tr>

<tr class="border-b">
<th scope="col"
class="px-6 py-3 bg-gray-50 text-left text-xs font-medium
text-gray-500 uppercase tracking-wider">
{{ __("user/show.language") }}
</th>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-900
bg-white divide-y divide-gray-200">
{{$user->language->language_name ?? ""}}
</td>
</tr>
</table>
</div>
Expand Down
Loading

0 comments on commit 6dbbe33

Please sign in to comment.