2

私はCakeを初めて使用し、Cake 2.0を使用しています。ビュー、コントローラーなどを焼きました...

私がやりたいことは、自分のビューに入り、いくつかのロジックをEditandDeleteアクションにラップして、ログインしている管理者にのみ表示することです。

これは正しいアプローチのように聞こえますか? 管理者のみがアクセスできるようにアクションをロックダウンしましたが、非管理者にこれらのボタンを表示したくありません。

また、通常のユーザーと管理者用に別々のビューを持つことは正しいアプローチではないと思いますが、間違っている可能性があります.

4

2 に答える 2

3

AppControllerのbeforeFilter()メソッドで次のコードスニペットを使用してみてください。

function beforeFilter()
{
     $role = $this->Auth->user('role'); //If you are using Auth
     //$this->Session->read('User.role'); // If you are using a normal login session.
     if ($role == 'author' || $role == 'admin') { 
         $this->set('role', $role); 
     } 

     if($role == 'admin')
     {
         $this->set('is_admin', true);
     }
     else
     {
         $this->set('is_admin', false);
     }
    /***** your remaining code *******/
 }

そして、あなたの見解では、以下を使用してください。

 if($is_admin)
 {
      $this->Html->link('Admin Link', 'controllers/view');
 } 
于 2012-08-14T04:53:19.463 に答える
2

ビューに変数を渡して、それをチェックしてコマンドを表示しても問題ありません。

コントローラ:

...
$this->set('admin', true); //user is an admin and should view the links
...

見る:

...
if ($admin){echo $this->Html->link('Edit', array('action' => 'edit'))}
...
于 2012-08-13T19:08:49.633 に答える