I'm trying for weeks to integrate ACL + Auth with different permissions for
different users, and that they have privileges to access certain parts of
the site depending on the group on this. I recently found a tutorial Arabic,
and try to incorporate some files from a tutorial acl, but I'm having
difficulties Uu The idea would be to use the helper and component offering,
and use it for certain parts of the site will not display unless you have
some privilege.

This item cost me, and I read several tutorials and practice, the majority
dealt with almost the same as Users, Groups and Roles, with different
permissions, but not for access to different views depending on the group.

Aros:
Groups
   Group.1
   Group.2
   Group.3

Acos:
controllers
   Subtemas: index, view, add, edit, delete
   Posts: index, view, add, edit, delete
   Users: register, login, logout, index
  Groups: index, view, add, edit delete

In the view view to Subtemas i write ex..:
if($access->check('Subtemas/add')){ }

And I pulled:
Warning (512): DbAcl::check() - Failed ARO/ACO node lookup in permissions
check.  Node references:
Aro: Group:4
Aco: Subtemas/add [CORE\cake\libs\controller\components\acl.php, line 273]

<?
class AccessComponent extends Object{
    var $components = array('Acl', 'Auth');

    // Aro dalam format User:$id
    function check($aco, $action='*'){
        // check($Aro,$Aco,$Action)
        if( $this->Acl->check('User:'.$this->Auth->user('id'), $aco,
$action)){
            return true;
        } else {
            return false;
        }
    }

    function checkHelper($aro, $aco){
        App::import('Component', 'Acl');
        $acl = new AclComponent();
        return $acl->check($aro, $aco, '*');
    }
}
?>

<?
class AccessHelper extends Helper{
    var $helpers = array('Session');
    var $Access;
    var $Auth;
    var $user;
    function beforeRender(){
        App::import('Component', 'Access');
        $this->Access = new AccessComponent();

        App::import('Component', 'Auth');
        $this->Auth = new AuthComponent();
        $this->Auth->Session = $this->Session;
        $this->user = $this->Auth->user();
    }

    function check($aco, $action='*'){
        if(empty($this->user)) return false;
        return $this->Access->checkHelper('User:'.$this->user['User']['id'],
$aco);
    }

    function isLoggedin(){
        return !empty($this->user);
    }

    function my($column = null){
        App::import('Component', 'Auth');
        $auth = new AuthComponent();
        $auth->Session = $this->Session;
        if($auth->user($column)){
            return $auth->user($column);
        }else{
        return FALSE;
        }
    }

    function isSelected($controller = null, $action = 'index'){
        $curr_controller = $this->params['controller'];
        $curr_action =     $this->params['action'];
        if($curr_controller == $controller && $curr_action == $action){
            return 'selected';
        } else {
            return null;
        }
    }
}
?>

I hope I can help. Thank you very much ...!

-- 
Our newest site for the community: CakePHP Video Tutorials 
http://tv.cakephp.org 
Check out the new CakePHP Questions site http://ask.cakephp.org and help others 
with their CakePHP related questions.


To unsubscribe from this group, send email to
[email protected] For more options, visit this group at 
http://groups.google.com/group/cake-php

Reply via email to