根据CakePHP中的用户组更改默认操作

法哈德·阿卜杜拉(Fahad Abdullah)

我有不同的用户组,例如admin,author,publisher,并分别为他们设置了控制器。我想在登录后根据以下内容设置默认路径:

$ this-> Auth-> User('group_id')

像这样在appcontroller中的beforefilter()方法中

if ($this->Auth->User('group_id') == '1')
        {
            Router::connect('/', array('controller' => 'admin', 'action' => 'index'));
        } 
elseif($this->Auth->User('group_id') == '2')
        {
            Router::connect('/', array('controller' => 'author', 'action' => 'index'));
        } 
else {
            Router::connect('/', array('controller' => 'publisher', 'action' => 'index'));
        }

我尝试了这个

routes.php

在配置中使用$ _SESSION变量,因为在该文件中无法使用$ this。主要目的是,当用户登录时,它将进入他们的控制器,因此我可以拥有一个干净的URL,我不想使用同一控制器,因此我不得不使用组检查功能,因为这将浪费ACL库的功能。任何帮助将不胜感激以实现这一目标。提前致谢

罗伯托·马尔多纳多

根据您对Isaac答案的评论,您可以执行以下操作。说,在routes.php中,您可以拥有:

Route::connect('/', array('controller' => 'some_controller', 'action' => 'index'));

然后在重定向控制器的index()方法中:

public function index() 
{
    $group = $this->User->Group->find('first', array( //assuming User belongsTo Group
        'conditions' => array(
            'id' => $this->Auth->User('group_id')
        ),
        'fields' => array('name')
        )
    )); //getting the name of the group the user belongs to

    call_user_func(array($this, strtolower($group['Group']['name']).'_index'));

}

然后在您的控制器中,您可以看到以下内容:

protected function admin_index()
{
    //code for admins
}

protected function publisher_index()
{
    //code for publishers
}

protected function author_index()
{
    //code for authors
}

因此,所有代码都在同一控制器上,但在不同方法上分开。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改默认用户组?

来自分类Dev

Firebase中的用户组

来自分类Dev

如何更改用户组?

来自分类Dev

从特定用户组中删除用户

来自分类Dev

如何根据Joomla中的用户组重定向用户

来自分类Dev

如何根据Joomla中的用户组重定向用户

来自分类Dev

UML中的用户组聚合关系

来自分类Dev

在MeteorJS中检查用户组

来自分类Dev

隐藏用户组中表中的行

来自分类Dev

Django-根据用户组显示/隐藏基本html中的url?

来自分类Dev

根据用户组的伏特,菲尔康显示块

来自分类Dev

用户组变更

来自分类Dev

在VBScript中创建用户组和嵌套组的列表

来自分类Dev

将Joomla用户组ID更改为变量

来自分类Dev

如何更改用户组封面图像

来自分类Dev

将Joomla用户组ID更改为变量

来自分类Dev

根据CakePHP中的用户输入修改表单操作

来自分类Dev

列出Raspbian中的用户和用户组

来自分类Dev

用户组模块中的Joomla 3 Lis用户

来自分类Dev

Lubuntu 20.04 中的“用户和用户组”在哪里?

来自分类Dev

创建用户到组的映射,并根据用户组合获取组

来自分类Dev

如何在Linux中更改用户的默认组?

来自分类Dev

如何在Linux中更改用户的默认组?

来自分类Dev

更改 Openshift 中首次登录 oauth 用户的默认组

来自分类Dev

如何在Linux中阻止用户组?

来自分类Dev

如何在Codeigniter中基于用户组创建权限?

来自分类Dev

.NET Core中的动态用户组授权

来自分类Dev

在liferay中获取用户组描述和名称

来自分类Dev

在Linux(100或1000)中为用户组推荐的GID?