我想在使用CakePHP 3.0注册表单时设置一个授权。
在这里问之前,我试着做了下面的事情,但没有运气对我有利。
假设我在usersTable中有像‘超级用户’、'admin‘、'user’这样的角色字段。
我想提供权限超级用户,使所有的事情,如创建,管理和用户。然后admin可以创建admin和user,而用户只可以使用户。
我在UsersController的add函数中尝试的代码。
if($this->Auth->user['role'] === 'superuser'){
$roles = $this->Users->find('list');
} elseif ($this->Auth->user['role'] === 'admin') {
$roles = $this->Users->find('list')->where(['Users.role !==' => 'superuser']);
} else {
$roles = $this->Users->find('list')->where(['Users.role' => 'user']);
}失败后,我在add.ctp中尝试了下面的内容
if(!empty($this->request->session()->check('Auth.User.role') === 'superadmin')){
echo $this->Form->input('role',['options' => ['admin' => 'Admin', 'user' => 'User']]);
} elseif(!empty($this->request->session()->check('Auth.User.role') === 'admin')){
echo $this->Form->input('role',['options' => ['user' => 'User', 'icr' => 'ICR', 'routing' => 'Routing']]);
} else {
echo $this->Form->input('role', ['options' => ['user' => 'User']]);
}请你在这方面提出建议,或者有什么最简单的办法?
谢谢
发布于 2015-05-28 14:51:31
正如你的双发帖@ google ( https://groups.google.com/forum/#!topic/cake-php/nTURwYME-6o )中所概述的那样,你不应该盲目地把没有共同点的三件事结合起来,这些东西肯定会爆炸。
if(!empty($this->request->session()->check('Auth.User.role') === 'superadmin')){}应该是
if ($this->request->session()->read('Auth.User.role') === 'superadmin') {}https://stackoverflow.com/questions/30487160
复制相似问题