首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在CakePHP-3.0中以表单形式设置授权明智视图

如何在CakePHP-3.0中以表单形式设置授权明智视图
EN

Stack Overflow用户
提问于 2015-05-27 15:42:23
回答 1查看 229关注 0票数 0

我想在使用CakePHP 3.0注册表单时设置一个授权。

在这里问之前,我试着做了下面的事情,但没有运气对我有利。

假设我在usersTable中有像‘超级用户’、'admin‘、'user’这样的角色字段。

我想提供权限超级用户,使所有的事情,如创建,管理和用户。然后admin可以创建admin和user,而用户只可以使用户。

我在UsersController的add函数中尝试的代码。

代码语言:javascript
复制
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中尝试了下面的内容

代码语言:javascript
复制
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']]);
        }

请你在这方面提出建议,或者有什么最简单的办法?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 14:51:31

正如你的双发帖@ google ( https://groups.google.com/forum/#!topic/cake-php/nTURwYME-6o )中所概述的那样,你不应该盲目地把没有共同点的三件事结合起来,这些东西肯定会爆炸。

代码语言:javascript
复制
if(!empty($this->request->session()->check('Auth.User.role') === 'superadmin')){}

应该是

代码语言:javascript
复制
if ($this->request->session()->read('Auth.User.role') === 'superadmin') {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30487160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档