2016-10-24 1 views
0

ブートストラップで自分の役割、リソース、アクセス許可を設定しました。私のレイアウトではこれに基づいてナビゲーションメニューが設定されています。ZF2 ACLチェックリンクの表示

私が今しようとしているのは、現在ログインしているユーザーにこれらの権限がある場合に、編集/削除リンクを含む管理パネルを作成することです。例えば私はcmsページのリストを表示できる複数のロールを持つかもしれませんが、特定のロールだけがcmsページを編集でき、特定のロールだけがcmsページを削除できます。私は上記のように(任意のリンクのためのビューから指定されたリソースの現在のユーザーの役割の権限を確認するにはどうすればよい

<?php if($user = $this->identity()): ?> 
    <?php if($user['role'] == 'admin'):?> 
     <a href="/delete-url">Delete</a> 
    <?php endif;?> 
<?php endif;?> 

:ユーザーがログインしている場合、私はちょうどチェックしています現時点では

)?

答えて

2

ACLビューヘルパーがレイアウトに挿入されているため、ロールにリソースへのアクセス権があるかどうかを確認するには、$this->layout()->acl->isAllowedを呼び出します。

:ユーザーがリソースへの「削除」権限を持っている、その後場合は、このコードスニペットで

(ログインしている場合、ログイン、または細部の配列でない場合$this->identity()戻りfalse)ユーザーがログインしている場合、我々はチェックし、

<?php if($user = $this->identity()); //is logged in? ?> 
    <?php if($this->layout()->acl->isAllowed($user['role'], $resource, 'delete')):?> 
     <a href="/delete-url">Delete</a> 
    <?php endif;?> 
<?php endif;?> 

isAllowed署名がisAllowed($role = null, $resource = null, $privilege = null)

あります