رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چطور مجوز delete فقط به admin بدم (حل شد)
#6
ظاهرا مشکل از نحوه پیکربندی RBAC هستش. برای اینکار بعد از اینکه جداول RBAC تو سط migration ایجاد شد موارد زیر رو انجام بدید:
۱- در جدول auth_item رکورد جدید وارد کنید که مقدار ستون name برابر admin و مقدار ستون type برابر 1 باشد.
۲- با فرض اینکه شما میخواهید به کاربر شماره 1 دسترسی ادمین بدهید در جدول auth_assignment رکورد جدید وارد کنید که مقدار ستون item_name آن برابر admin و مقدار ستون user_id آن برابر 1 باشد.
۳- حالا در کلاس کنترل میتوانید به action مورد نظر role ادمین رو بصورت زیر بدید:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public function behaviors()
{
   return [
       'access' => [
           'class' => AccessControl::className(),
           'only' => ['create', 'update', 'delete', 'view', 'index'],
           'rules' => [
 
               [
                   'actions' => ['view', 'index'],
                   'allow' => true,
                   'roles' => ['?'],
               ],
               [
                   'actions' => ['create', 'update', 'view', 'index'],
                   'allow' => true,
                   'roles' => ['@'],
               ],
               [
                   'actions' => ['delete'],
                   'allow' => true,
                   'roles' => ['admin'],
               ],
           ],
       ],
 
       'verbs' => [
           'class' => VerbFilter::className(),
           'actions' => [
               'delete' => ['post'],
           ],
       ],
   ];
}
...
پاسخ
تشکر شده توسط: shpegah


پیام‌های این موضوع
RE: چطور مجوز delete فقط به admin بدم - MRPM - 26-02-1395، 02:10 ب.ظ



کاربران در حال بازدید این موضوع: 1 مهمان