仅在 CakePHP 中显示登录管理员的操作按钮


Only show action buttons to logged in admin's in CakePHP

我是 Cake 的新手,正在使用 Cake 2.0,我已经烘焙了我的视图、控制器等......

我想做的是进入我的视图,围绕EditDelete操作包装一些逻辑,并且只向登录的管理员显示它们。

这听起来是正确的方法吗?我已经锁定了这些操作,以便只有管理员可以访问它们,但我不想向非管理员显示这些按钮。

另外,我不认为为普通用户和管理员提供单独的视图是正确的方法,但我可能是错的。

您可以尝试在 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');
 } 

可以将变量传递给视图并检查它以显示命令。

控制器:

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

视图:

...
if ($admin){echo $this->Html->link('Edit', array('action' => 'edit'))}
...