AccessControl::className():ERROR(403)

سلام

من میخوام فقط کاربر

admin

مجوز حذف داشته باشه کد زیر رو که اجرا میکنم فقط برای حذف موقع تایید حذف میگه دسترسی نداره





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' => ['create',  'update', 'delete','view','index'],

                       'allow' => true,

                       'roles' => ['admin'],

//'verbs' => ['POST'],

                   ],

               ],

           ],

             

           'verbs' => [

               'class' => VerbFilter::className(),

               'actions' => [

                   'delete' => ['post'],

//'roles' => ['admin'],

               ],

           ],

       ];

   }



ممنون میشم اگر منو راهنمایی کنید

[size="4"][right]به نظر مشکل در ترتیب قوانین میاد.

من در عمل بررسی نکردم ولی قاعدتا چون قانون دوم در مورد

admin

صدق میکنه دیگه سراغ قانون سوم نمیره

قوانین به ترتیب از بالا به پایین چک میشن و در اولین همخوانی عملیات چک کردن به پایان میرسه و چون یک

admin

قطعا

یک

@

هم هست در قانون شماره دومتون براش محدودیتها فراخوانی میشه و به سراغ قانون سوم نمیره.[/right]

[right]با این دید جلو برید و نتیجه را اطلاع بدید تا اگر حل نشد وقت بیشتری روش بزاریم[/right][/size]

ممنون از جوابتون اما نه اینطور نبود

مشکل اصلا از اینجا نبود

بلکه از پرکردن جدول توسط فایلهای پیش فرض

rbac

بود که من برای استفاده از اون از مدل و میگریشن وکنترلهای پیش فرض استفاده کرده بودم که با هم سازگار نبود! یعنی در

auth_assaginment

از مقدار

user_id=1

استفاده کرده بود که در مدل مقدار ادمین مساوی یک نبود بلکه باید

user_id=100

گذاشته میشد که با این تغییر دیگه خطا نداد

[size="4"][right]خوشحالم که مشکلتون حل شد. و ممنون که راه حل را اینجا گذاشتین که بقیه هم استفاده کنند.

اگرچه در مورد کنترلر پیشفرض زیاد باهاتون موافق نیستم. چون کنترلری در این مورد از طرف فریمورک تولید نمیشه . فقط یک "مثال" از این کنترلر در داکیومنتش هست که هر کس بر مبنای نیاز پروژه خودش باید اونو ویرایش کنه.

در ضمن اگر قرار باشه دائما نقش کاربرها عوض بشه این کنترلر هم بدرد نمیخوره و باید براش پنل ساخته بشه.

اگر غیر از این باشه حرف شما نشاندهنده وجود باگ میتونه باشه که بهتره گزارش بشه.[/right][/size]