首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >易:登录后如何重定向到不同的页面?

易:登录后如何重定向到不同的页面?
EN

Stack Overflow用户
提问于 2012-08-24 06:50:49
回答 2查看 11.1K关注 0票数 1

问:登录后如何重定向到不同的页面?

状态:我有自定义用户角色,我想为不同的用户重定向到不同的页面。

例如人力资源经理->雇员/索引,帐户经理->帐户/索引。

我正在使用yii 1.1.xx和权限模块。易和权利模块正在与绿色。

更新问题的信息

这是tbl军衔

这是用户tbl

如果级别是“帐户经理”,则网站将重定向到“帐户/索引”。

如果级别是人力资源经理,则网站将重定向到员工/索引。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-24 07:04:11

代码语言:javascript
复制
if(Yii::app()->user->checkAccess('hrManager',Yii::app()->user->getId())==1)
{
    $this->redirect(array("employee/index"));
} else if(Yii::app()->user->checkAccess('accountManager',Yii::app()->user->getId())==1) {
    $this->redirect(array("account/index"));
}

其中,hrManageraccountManager是人力资源管理器和帐户管理器登录的相应访问规则。这将检查用户是否具有“HR Manager”级别的访问权限,是否将其重定向到那里,然后检查用户是否具有“Account Manager”级别的访问权限,如果有,则将其重定向到该页面。

显然,您可以定制适合您的应用程序,因为上面的代码不会重定向到任何地方,如果用户没有人力资源管理器或帐户管理器访问,所以你需要另一个捕手。

编辑:

hrManager字符串是rbac的创作项名称,您是否为您的rbac设置了表authassignment authitemauthitemchild

如果不是,您可以使用您的排名表使用此方法略有不同。您可以使用rank_id设置它,但是您必须加载用户模型(如果您还没有加载它),这可能不是最有效的方法。

代码语言:javascript
复制
$user = User::model()->findbyPk(Yii::app()->user->getId());
if($user->rank_id==3)
{
    $this->redirect(array("employee/index"));
} else if($user->rank_id==2)) {
    $this->redirect(array("account/index"));
}

另一种方法是在登录后将用户级别加载到Yii::app()->user param中,这样您就不必在重定向之前加载用户模型,也许您已经设置了这个设置,因为无论您授予对页面的访问权限?

代码语言:javascript
复制
if(Yii::app()->user->rank_id==3)
{
    $this->redirect(array("employee/index"));
} else if(Yii::app()->user->rank_id==2)) {
    $this->redirect(array("account/index"));
}
票数 5
EN

Stack Overflow用户

发布于 2012-08-24 06:52:53

有点像$this->redirect(array("controller/admin"));

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12104472

复制
相关文章

相似问题

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