رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
deny اکشن ها در Acl
#1
سلام دوستان من بتازگی دارم Acl یاد میگیرم.میخوام برای مثال ادمین من بعضی از اکشن ها رو  نتونه ببینه.مثالی که نوشتم اینه که ادمین نتونه اکشن admin_index رو ببینه.طبق مثال کیک هم جلو رفتم.اگه میشه راهنمایی کنید چجوری میتونم یه اکشن رو deny کنم که ادمین اون رو نتونه ببینه. با تشکر

کد پی‌اچ‌پی:
public function initDB() {


   // Allow admins to everything
   $role $this->User->Role;
         
   $role
->id 1;
   
   $this
->Acl->deny($role'controllers/Users/admin_index');

[
align=left]   [/align]
   exit;


befor filter
کد پی‌اچ‌پی:
public function beforeFilter() {

   parent::beforeFilter();
    // We can remove this line after we're finished
  
      debug
($this->Auth->user());
   
   if
($this->Auth->user() && $this->Auth->user('role_id')==1){
       
       $this
->Auth->allowedActions=array('*');
       
         $s
=$this->Acl->Aco->node('controllers/',$this->name);
       
         
         
   $this
->Auth->allow('initDB');
   
   
   
}
   else
   
{
      if($this->Auth->user()){
       
       $group_id
=$this->Auth->user('role_id');
       
       else
       
{
           $group_id=2;
           
           
       
}
       
       $aro
=$this->Acl->Aro->find('first',array('conditions'=>array(
       
       
'Aro.model' => 'Role',
       
       
'Aro.foreign_key'   =>$group_id
       
       
)));
       
       $aro_id
=$aro['Aro']['id'];
       
       debug
($aro);
       
       $s
=$this->Acl->Aco->node('controllers/'.$this->name);
       
       debug
($s);
   
       if
($s){
           
           $s
=$this->Acl->Aco->find('list',array('conditions'=>array(
       
       
'Aco.parent_id' => $s['0']['Aco']['id'],  
       
)
       ,
       'fields'=>array('Aco.id','Aco.alias') , 'recursive'=>'-1'
       
       
));
       
           
       $s
=array_keys($s);
       
       $allowaction
=$this->Acl->Aco->Permission->find('list',array('conditions'=>array(
       
       
'permission.aro_id' => $aro_id
        
       
'permission.aco_id' => $s
        
       
'permission._create' => 1 
       
       
'permission._read' => 1
       
       
'permission._update' => 1
        
       
'permission._delete' => 1
       )
       ,
       'fields'=>array('id','aco_id') , 'recursive'=>'-1'
       
       
));
       
       debug
($allowaction);
       
     
   
           
       
}
   }
   
   
   

پاسخ
سپاس شده توسط


پیام‌های این موضوع
deny اکشن ها در Acl - mahdi_smf - 2015/08/31, 12:25 PM
RE: deny اکشن ها در Acl - saleh - 2015/08/31, 07:07 PM

موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در استفاده از کوکی در اکشن دیگر cyletech 16 11,684 2013/02/10, 11:31 PM
آخرین ارسال: saleh
  نالش شدن Session در یک اکشن خاص h.afkhami 9 7,978 2012/12/05, 12:20 AM
آخرین ارسال: h.afkhami
  تعیین سطوح دسترسی جدید برای کنترلها و اکشن های جدید mimre 5 6,480 2011/10/24, 08:42 PM
آخرین ارسال: saleh

پرش به انجمن:


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