Yii Framework Forum: AccessControl::className():ERROR(403) - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

AccessControl::className():ERROR(403) چرا خطای 403 میده

#1 User is offline   shpegah 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 11-December 13

Posted 14 May 2016 - 04:20 AM

سلام
من میخوام فقط کاربر
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'],
               ],
           ],
       ];
   }

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

#2 User is offline   nima_naraghi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 173
  • Joined: 15-March 13
  • Location:Iran, Tehran

Posted 15 May 2016 - 05:44 AM

به نظر مشکل در ترتیب قوانین میاد.
من در عمل بررسی نکردم ولی قاعدتا چون قانون دوم در مورد
admin
صدق میکنه دیگه سراغ قانون سوم نمیره

Quote

AccessControl is an action filter. It will check its $rules to find the first rule that matches the current context variables


قوانین به ترتیب از بالا به پایین چک میشن و در اولین همخوانی عملیات چک کردن به پایان میرسه و چون یک
admin
قطعا
یک
@
هم هست در قانون شماره دومتون براش محدودیتها فراخوانی میشه و به سراغ قانون سوم نمیره.


با این دید جلو برید و نتیجه را اطلاع بدید تا اگر حل نشد وقت بیشتری روش بزاریم

1

#3 User is offline   shpegah 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 6
  • Joined: 11-December 13

Posted 15 May 2016 - 10:26 PM

ممنون از جوابتون اما نه اینطور نبود
مشکل اصلا از اینجا نبود
بلکه از پرکردن جدول توسط فایلهای پیش فرض
rbac
بود که من برای استفاده از اون از مدل و میگریشن وکنترلهای پیش فرض استفاده کرده بودم که با هم سازگار نبود! یعنی در
auth_assaginment
از مقدار
user_id=1
استفاده کرده بود که در مدل مقدار ادمین مساوی یک نبود بلکه باید
user_id=100
گذاشته میشد که با این تغییر دیگه خطا نداد
1

#4 User is offline   nima_naraghi 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 173
  • Joined: 15-March 13
  • Location:Iran, Tehran

Posted 16 May 2016 - 02:12 AM

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

1

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users