نمایش نتایج 1 تا 7 از 7

نام تاپیک: accessrules

  1. #1

    accessrules

    سلام برای استفاده از access rules باید تنظیمات خاصی انجام یا نه
    من از کد در کنترلر استفاده میکنم ولی تاثیری نداره میخوام فقط حذف توسط مدیر انجام بشه ولی هر کاربری که عضو میشه میتونه عملیات رو انجام بده
    و این که چطور بین کاربران عضو کاربر مدیر رو معرفی کنم
    مشکل کار کجاست

    public function accessRules()
    {
    return array(
    array('deny',
    'actions'=>array('create', 'edit'),
    'users'=>array('?'),
    ),
    array('allow',
    'actions'=>array('delete'),
    'roles'=>array('admin'),
    ),
    array('deny', // deny all users
    'users'=>array('*'),
    'actions'=>array('delete'),
    'message'=>'شما اجازه این کار را ندارید',
    ),
    );
    }

  2. #2
    کاربر دائمی آواتار farazsahebdel
    تاریخ عضویت
    خرداد 1392
    محل زندگی
    اسپانیا - بارسلونا
    سن
    28
    پست
    226

    نقل قول: accessrules

    سلام
    شما مگه از RBAC استفاده کردین ؟

    array('allow', 'actions'=>array('delete'), 'users'=>array('admin'),
    ),


    تغییر بدین.

  3. #3

    نقل قول: accessrules

    یکم درباره RBAC توضیح دهید؟
    قبلش این تابع را باید میزاشتم که نزاشته بودم الان دیگه درست شد کار میکنه
    وقتی کسی که بهش اجازه نداده باشم اون action استفاده کنه به صفحه خطاها میره و اون پیامو بهش نشون میده
    به نظر شما این کار درسته ؟

    public function filters()
    {
    return array(
    'accessControl',
    );
    }

  4. #4

    نقل قول: accessrules

    بله درسته. به این میگن SimpleAccessControl و RBAC یکم کاملتر و پیچیده تره و برای وقتی بکار میره که بخواین به کاربران سطوح دسترسی مختلفی بدین. درمورد Roll Based Access Control in Yii تحقیق کنید.

  5. #5

    نقل قول: accessrules

    شما باید deny رو آخر قرار بدید مثلا

        public function accessRules()    {
    return array(
    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('captcha','adminArea'),
    'users'=>array('*'),
    ),


    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('changePass','increaseBalance'),
    'users'=>array('@'),
    ),





    array('allow', // allow authenticated user to perform 'create' and 'update' actions
    'actions'=>array('sabtName','action2','action3'),
    'users'=>array('?'),
    ),
    array('allow', // allow admin user to perform 'admin' and 'delete' actions
    'actions'=>array('action4','action5''),
    'users'=>array('@'),
    'expression'=>'Yii::app()->user->AyaAdminAst()',



    ),




    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('vorod','sabtenam'),
    'users'=>array('?'),


    ),












    array('deny', // deny all users
    'users'=>array('*'),
    'deniedCallback' => array($this, 'redirecting'),
    ),
    );
    }


    که در این مثلا تکر کاربر اجازه دسترسی نداشت به یک صفحه دیکه هدایت میشه نمومش رو میتونید تو وب سایت NazarFa.ir مشاهده کنید
    آخرین ویرایش به وسیله MMSHFE : سه شنبه 11 فروردین 1394 در 14:45 عصر دلیل: اصلاح تگها جهت افزایش خوانایی کد

  6. #6

    نقل قول: accessrules

    نقل قول نوشته شده توسط hamidreza_zamanian مشاهده تاپیک
    شما باید deny رو آخر قرار بدید مثلا

        public function accessRules()    {
    return array(
    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('captcha','adminArea'),
    'users'=>array('*'),
    ),


    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('changePass','increaseBalance'),
    'users'=>array('@'),
    ),





    array('allow', // allow authenticated user to perform 'create' and 'update' actions
    'actions'=>array('sabtName','action2','action3'),
    'users'=>array('?'),
    ),
    array('allow', // allow admin user to perform 'admin' and 'delete' actions
    'actions'=>array('action4','action5''),
    'users'=>array('@'),
    'expression'=>'Yii::app()->user->AyaAdminAst()',



    ),




    array('allow', // allow all users to perform 'index' and 'view' actions
    'actions'=>array('vorod','sabtenam'),
    'users'=>array('?'),


    ),












    array('deny', // deny all users
    'users'=>array('*'),
    'deniedCallback' => array($this, 'redirecting'),
    ),
    );
    }


    که در این مثلا تکر کاربر اجازه دسترسی نداشت به یک صفحه دیکه هدایت میشه نمومش رو میتونید تو وب سایت NazarFa.ir مشاهده کنید


    ممنون که وقت گذاشتید و جواب دادید اگه ممکنه در مورداین خط بیشتر توضیح دهید که redirecting به کجا صورت میگیرد و این یک تابع هست یا کلمه رزرو هست

    .'deniedCallback' => array($this, 'redirecting'),
    ),
    .

  7. #7

    نقل قول: accessrules

    داره به متد actionRedirecting از کنترلر جاری انجام میشه (باید اکشن مربوطه رو خودتون بنویسید).

تاپیک های مشابه

  1. سوال: دستور بدست آوردن AccessRule برایه یک پوشه خاص چیست؟
    نوشته شده توسط sahar15125 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: چهارشنبه 24 آبان 1391, 09:10 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •