diff --git a/app/Http/Controllers/Admin/AdminController.php b/app/Http/Controllers/Admin/AdminController.php index b72b41d..8d6975b 100644 --- a/app/Http/Controllers/Admin/AdminController.php +++ b/app/Http/Controllers/Admin/AdminController.php @@ -6,7 +6,7 @@ use App\Http\Controllers\Controller; use App\Http\Requests\Admin\AdminUpdateRequest; use App\Http\Requests\AdminStoreRequest; use App\Models\Admin; -use Illuminate\Http\Request; +use App\Models\Role; use Illuminate\Support\Facades\Hash; class AdminController extends Controller @@ -40,7 +40,9 @@ class AdminController extends Controller public function edit(Admin $admin) { - return view('admin.admins.edit',compact('admin')); + $roles = Role::all(); + + return view('admin.admins.edit',compact('admin','roles')); } public function update( AdminUpdateRequest $request,Admin $admin) { diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/RoleController.php new file mode 100644 index 0000000..85c5672 --- /dev/null +++ b/app/Http/Controllers/RoleController.php @@ -0,0 +1,31 @@ +permissions()->sync($request->permissions ?? []); + + return redirect()->back()->with('success','دسترسیها با موفقیت ذخیره شد'); + } + + +} + diff --git a/app/Models/AdminRole.php b/app/Models/AdminRole.php index 4d4d9e0..4764dd7 100644 --- a/app/Models/AdminRole.php +++ b/app/Models/AdminRole.php @@ -10,10 +10,10 @@ use Illuminate\Database\Eloquent\Model; /** * Class AdminRole - * + * * @property int $admin_id * @property int $role_id - * + * * @property Admin $admin * @property Role $role * @@ -31,13 +31,18 @@ class AdminRole extends Model 'role_id' => 'int' ]; - public function admin() - { - return $this->belongsTo(Admin::class); - } + public function roles() + { + return $this->belongsToMany(Role::class, 'admin_roles'); + } - public function role() - { - return $this->belongsTo(Role::class); - } + + public function hasPermission($permission) + { + return $this->roles() + ->whereHas('permissions', function ($query) use ($permission) { + $query->where('slug', $permission); + }) + ->exists(); + } } diff --git a/resources/views/admin/admins/edit.blade.php b/resources/views/admin/admins/edit.blade.php index ee510e0..8e8c317 100644 --- a/resources/views/admin/admins/edit.blade.php +++ b/resources/views/admin/admins/edit.blade.php @@ -11,7 +11,37 @@