2011-03-13 9 views
0

私は小さな問題を抱えています。私は自分のページへのアクセスを拒否しましたが、ユーザーは引き続きアクセスできます。CakePHP acl lists

$this->Acl->allow('contributors','Users'); 
    $this->Acl->deny('contributors','Users/add'); 
    $this->Acl->deny('contributors','Users/edit'); 
    $this->Acl->deny('contributors','Users/delete'); 

これは私のコードです。私は、ユーザーのコントローラを明示的に許可してから、そのアクションへのアクセスを拒否します。私はまだそれらにアクセスすることができます。私が拒否した場合、ユーザーは明示的にアクセスが制限されます。私は何か間違っているのですか?

$this->Acl->deny('contributors','Users/add'); を使用してアクセス許可をチェックしています。したがって、拒否されました。

答えて

1

翔太Bakuradze、

だけAUTHコンポーネントを使用するシステム上で作業している場合は、AUTHメソッドを使用する必要がありますし、属性のみ。

ACLを使用してシステムを設定した場合は、通常、より安全なので、逆の方法で定義します。例:コントローラーレベルのすべてのアクションを拒否する

この手順の利点は、行動を許可するのを忘れた場合に、より少ない(いいえ)害が行われ、それに気づくことです。

EDIT1は: また、あなたがAROにする必要があり貢献者を呼んで、hereを参照してください。

+0

Authのメソッドと属性を元に戻すことは、どういう意味ですか? – Headshota

+0

コンポーネントとしてACLを使用していますか?いいえの場合は、AUTHコンポーネントのメソッド/属性をチェックし、$ this-> Aclをすべて削除します。実際にACLを使用する場合は、Edit1の下で提案したとおり、コールが正しいことを確認してください。あなたのもの – benjamin

+0

私はトラブルを引き起こした言葉を交換しました。 – benjamin