ظاهرا مشکل از نحوه پیکربندی RBAC هستش. برای اینکار بعد از اینکه جداول RBAC تو سط migration ایجاد شد موارد زیر رو انجام بدید:
۱- در جدول auth_item رکورد جدید وارد کنید که مقدار ستون name برابر admin و مقدار ستون type برابر 1 باشد.
۲- با فرض اینکه شما میخواهید به کاربر شماره 1 دسترسی ادمین بدهید در جدول auth_assignment رکورد جدید وارد کنید که مقدار ستون item_name آن برابر admin و مقدار ستون user_id آن برابر 1 باشد.
۳- حالا در کلاس کنترل میتوانید به action مورد نظر role ادمین رو بصورت زیر بدید:
۱- در جدول 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' ], ], ], ]; } |
...