From 3bc340765798219b93dc2f04a873631dd571de9a Mon Sep 17 00:00:00 2001 From: Thekindbull Date: Thu, 13 Nov 2025 13:31:00 +0800 Subject: [PATCH] =?UTF-8?q?fix!=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8C=20"Us?= =?UTF-8?q?erRole":=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D1=83=D0=BD=D0=B8=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=BA=D0=BB=D1=8E=D1=87.=20=D0=92=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=84=D0=B8=D0=BB=D1=8C=20=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D1=81=D1=8F=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BE=20=D1=80=D0=BE=D0=BB=D1=8F?= =?UTF-8?q?=D1=85=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...001_unique_columns_in_user_roles_table.php | 31 +++++++++++++++++ app/Modules/User/Models/User.php | 33 +++++++++++++++---- app/Modules/User/Models/UserRole.php | 4 +++ resources/views/user/profile.blade.php | 14 ++++++-- 4 files changed, 73 insertions(+), 9 deletions(-) create mode 100644 app/Modules/User/Database/Migrations/2025_11_13_000001_unique_columns_in_user_roles_table.php diff --git a/app/Modules/User/Database/Migrations/2025_11_13_000001_unique_columns_in_user_roles_table.php b/app/Modules/User/Database/Migrations/2025_11_13_000001_unique_columns_in_user_roles_table.php new file mode 100644 index 0000000..9d9b552 --- /dev/null +++ b/app/Modules/User/Database/Migrations/2025_11_13_000001_unique_columns_in_user_roles_table.php @@ -0,0 +1,31 @@ +unique(['user_id', 'role_id']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + } +}; diff --git a/app/Modules/User/Models/User.php b/app/Modules/User/Models/User.php index 4991fb3..5976a0c 100644 --- a/app/Modules/User/Models/User.php +++ b/app/Modules/User/Models/User.php @@ -2,13 +2,16 @@ namespace Modules\User\Models; -use Illuminate\Contracts\Auth\MustVerifyEmail; -use Illuminate\Database\Eloquent\Factories\HasFactory; -use Illuminate\Foundation\Auth\User as Authenticatable; -use Illuminate\Notifications\Notifiable; -use Laravel\Sanctum\HasApiTokens; - use App\Models\ForcedPassword; +use Laravel\Sanctum\HasApiTokens; +use Illuminate\Notifications\Notifiable; +use Illuminate\Contracts\Auth\MustVerifyEmail; +use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasManyThrough; +use Illuminate\Database\Eloquent\Factories\HasFactory; + +use Illuminate\Foundation\Auth\User as Authenticatable; + class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable, ForcedPassword; @@ -54,4 +57,22 @@ public function getPartialsName() 'familyName' => (array_key_exists(2, $name) ? $name[2] : '') ]; } + + public function roles(): HasManyThrough + { + return $this->hasManyThrough( + Role::class + , + UserRole::class + , + 'user_id' + , + 'id' + , + 'id' + , + 'role_id' + + ); + } } diff --git a/app/Modules/User/Models/UserRole.php b/app/Modules/User/Models/UserRole.php index b202e7b..4ad17ad 100644 --- a/app/Modules/User/Models/UserRole.php +++ b/app/Modules/User/Models/UserRole.php @@ -20,4 +20,8 @@ public function role() { return $this->belongsTo(Role::class, 'role_id'); } + public static function create(array $attributes = []) + { + return parent::updateOrCreate($attributes); + } } diff --git a/resources/views/user/profile.blade.php b/resources/views/user/profile.blade.php index 87c547c..f646104 100644 --- a/resources/views/user/profile.blade.php +++ b/resources/views/user/profile.blade.php @@ -1,5 +1,4 @@ @extends('layouts.app') - @section('content')
@@ -68,7 +67,7 @@ class="form-control rounded-4 bg-white @error('user.phone') is-invalid @enderror
-
+
@@ -79,7 +78,16 @@ class="form-control rounded-4 bg-white @error('details.address') is-invalid @end @enderror
- +
+
Мои права:
+
+ @foreach (auth()->user()->roles as $role) +
+ {{ __($role->name) }} +
+ @endforeach +
+