درود وقت بخیر
من جداول زیر رو دارم برای بخش دسترسی ها :
users
permissions
roles
role_user
permission_user
permission_role
در پنل مدیریت permissions رو بدرستی میسازم. بعدش roles ها رو ایجاد میکنم و بدرستی بهشون permissions رو اعمال میکنم.
تمامی جداول واسط هم بخوبی کار میکنند. اما مشکل با جدول واسط permission_user هست .
من رو پنلم جوری کار کردم که وقتی بر روی ویرایش کاربر برم اونجا بتونم به کاربر یک یا چند role رو اعطا کنم ( دسترسی ها رو قبلا به role دادم و خود roleها دارای permissions هایی هستند ). من میخوام وقتی role رو به کاربر میدم به صورت خودکار به یوزر همان دسترسی ها اعطا بشه و جدول permission_user هم بر اساس role ها تکمیل بشه . اما در این مرحله به مشکل خوردم
این کنترلر من
public function update(Request $request,User $user)
{
$data = $request->all();
$user->update($data);
if ($user) {
$user->roles()->sync($data['roles']);
$user->permissions()->sync($data['permissions']);
return redirect()->action('Admin\UsersController@index')->with([
'message' => 'User Successfully Updated',
'messageTitle' => 'Update User'
]);
}
}
بدرستی role رو به کاربر میده و جدول role_user هم پر میشه بدرستی .اما permission به یوزر داده نمیشه
و خطای زیر رو میده
Undefined array key "permissions"
ممنون میشم دوستان بنده رو راهنمایی کنید اشکال کارم کجاست
با تشکر از وقتی که برای راهنمایی بنده استفاده میکنید
شما باید دسترسی های کاربر رو از طریق Role ها چک کنی و اینکه آیا رولی که کاربر داره، دسترسی های لازم رو داره یا نه؟
در کنار این میتونی یه سیستم Direct permissions هم داشته باشی. که یه سری پرمیشن های کاستوم رو به یک کاربر بدی
پس کاربر شما یا Role ی داره که شامل پرمیشن مد نظر هست
و یا اون پرمیشن رو به صورت مستقیم داره
در غیر اینصورت اجازه دسترسی نداره
اینکه بیای و تمام پرمیشن های هر Role رو مستقیما به کاربر بدی، لازم نیست.. چون میتونی با رابطه بین role و permission چکش کنی
سلام
مشکل شما این هست که permission را به Role می دهند نه User بهتره که بین user و permission رابطه ای وجود نداشته باشه. هر role یکسری permission میگیره و هر user یکسری Role دارد.
@shadi.ahmadians
شما باید دسترسی های کاربر رو از طریق Role ها چک کنی و اینکه آیا رولی که کاربر داره، دسترسی های لازم رو داره یا نه؟
در کنار این میتونی یه سیستم Direct permissions هم داشته باشی. که یه سری پرمیشن های کاستوم رو به یک کاربر بدی
پس کاربر شما یا Role ی داره که شامل پرمیشن مد نظر هست
و یا اون پرمیشن رو به صورت مستقیم داره
در غیر اینصورت اجازه دسترسی نداره
اینکه بیای و تمام پرمیشن های هر Role رو مستقیما به کاربر بدی، لازم نیست.. چون میتونی با رابطه بین role و permission چکش کنی
ممنون دوستان خیلی لطف کردید .
با پاسخ های شما متوجه اشکال کارم شدم و برطرف شد
سپاس از توجه شما
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟