0

Cakephp ACL パーミッションをセットアップしようとしています。

public function initDB() {
$group = $this->User->Group;
//root
$group->id = 1;
$this->Acl->allow($group, 'controllers');
//admin
$group->id = 2;
$this->Acl->allow($group, 'controllers/Users');

//cliente
$group->id = 3;
$this->Acl->deny($group, 'controllers');
$this->Acl->allow($group, 'controllers/Pages');
PROBLEM BELOW ----------------------------------------------
$this->Acl->allow($group, 'controllers/Users/trocar_senha/')
echo "all done";
exit;
}

これは、ユーザーからのアクション「trocar_senha」も拒否しています。しかし、私はそれを許可し、ユーザーコントローラーからのすべての残りのアクションを拒否したいと考えています。

特定のアクションを許可し、コントローラーからの残りのすべてを拒否する方法は?

ありがとう!

4

1 に答える 1

0

解決しました!問題は のスラッシュでした$this->Acl->allow($group, controllers/Users/trocar_senha/')

public function initDB() {
    $group = $this->User->Group;
    //root
    $group->id = 1;
    $this->Acl->allow($group, 'controllers');
    //admin
    $group->id = 2;
    $this->Acl->allow($group, 'controllers/Users');

    //cliente
    $group->id = 3;
    $this->Acl->deny($group, 'controllers');
    $this->Acl->allow($group, 'controllers/Pages');
    $this->Acl->allow($group, 'controllers/Users/trocar_senha'); // WHITHOUT SLASH
    echo "all done";
    exit;
}
于 2012-12-16T20:50:44.533 に答える