我直接按照Cakebook的说明隐藏我管理系统中普通用户的某些内容。因此,只有管理员才能访问所有页面。但是,我无法运行任何访问的用户都可以看到所有。以下代码:
public function beforeFilter(){
$this->Auth->authenticate = array('Form' => array(
'userModel' => 'Usuario',
'fields' => array(
'username' => 'login',
'password' => 'senha')));
$this->Auth->loginAction = array(
'controller' => 'usuarios',
'action' => 'login');
parent::beforeFilter();
}
public function isAuthorized($user) {
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
return false;
}
答案 0 :(得分:0)
我不确定我是否理解正确,但我会尝试一下。
我已经清理了你的代码,做了一些缩进并且更具可读性(至少对我而言)。我还删除了users
。的 AppController.php:强>
parent::beforeFilter();
现在只有具有admin角色的用户才能访问您的网页。如果您希望任何用户有权发表评论,这是一个如何让他的例子。的 CommentsController.php:强>
public function beforeFilter(){
// You don't need this line: parent::beforeFilter();
$this->Auth->authenticate = array('Form' => array(
'userModel' => 'Usuario',
'fields' => array(
'username' => 'login',
'password' => 'senha'
)
)
);
$this->Auth->loginAction = array(
'controller' => 'usuarios',
'action' => 'login'
);
}
public function isAuthorized($user) {
if (isset($user['role']) && $user['role'] === 'admin') {
return true;
}
return false;
}
现在管理员可以查看每个页面,但注册用户只能看到 app / comments / add