私はzendフレームワークを使用しています。私のサイトには、guestとloggeduserの2種類のユーザーがいます。また、と呼ばれるコントローラーがあります。本、そこに私は3つのアクションがあります。追加、編集、削除、
私のzendaclでは、ログに記録されたユーザーにのみブックコントローラーにアクセス許可を与えます。ナビゲーションでは、ブックのリンクはゲストに表示されません。代わりに、ログに記録されたユーザーに3つのサブリンクをすべて表示し、ゲストにサブリンクのみを追加します。
このような
ログに記録されたユーザーへ
本
追加
編集
消去
とゲストに
本
- 追加
問題は、aclで権限を設定すると、書籍のリンクがゲストに完全に表示されないことです。
私のACLのこの部分
$this->addResource(new Zend_Acl_Resource('books'));
$this->addResource(new Zend_Acl_Resource('login'));
$this->addResource(new Zend_Acl_Resource('logout'));
$this->addRole(new Zend_Acl_Role('guest'));
$this->addRole(new Zend_Acl_Role('user'), 'guest');
$this->allow('guest', 'login');
$this->allow('user','logout');
$this->allow('user','books');
$this->deny('guest', 'logout');
$this->deny('user', 'login');
アクションレベルに権限を設定する方法はありますか、またはプラグインが必要です。私は何時間も解決策を見つけるために一生懸命努力しましたが、できませんでした。助けてください...............ありがとう:(
アップデート 。
名前に惑わされないでください。これはデフォルトのzendAcl.phpではありません。これは私のモデルフォルダにとどまるカスタムのものです
私のnavigation.xmlの一部
<configdata>
<nav>
<books>
<label>Books</label>
<controller>books</controller>
<action>index</action>
<resource>books</resource>
<pages>
<add>
<label>Add</label>
<controller>books</controller>
<action>add</action>
</add>
<edit>
<label>Edit</label>
<controller>books</controller>
<action>edit</action>
</edit>
<delete>
<label>Delete</label>
<controller>books</controller>
<action>delete</action>
</delete>
</pages>
</books>
</nav>
</configdata>