我是Yii框架中的新手,我只是设置了一个应用程序并将前端& 后端部分。用户都可以正确注册/登录。现在我想从前端站点登录不同的用户。 示例:前端用户是两种类型
1. Customer
2. Merchant
我想设置主题的不同角色。如何实现,请与我分享。
答案 0 :(得分:1)
您可能需要使用Yii的RBAC。为了在yii中实现和使用RBAC,您需要执行以下步骤:
1-configure main.php
位于' /path/to/yourApp/protected/config/main.php'
'authManager'=>array(
'class'=>'CDbAuthManager',
'connectionID'=>'db', //your database config name
),
2 - 将yii的rbac数据库方案导入您的数据库。您可以在/path/to/yii/framework/web/auth/
目录
3 - 添加您的操作。诸如' VIEW_POST'等操作或者' EDIT_POST':
$auth=Yii::app()->authManager;
$auth->createOperation('VIEW_POST','view a post');
$auth->createOperation('EDIT_POST','edit a post');
4 - 创建你的角色。例如,在您的情况下,您将有两个角色。第一个Customer
和第二个Merchant
。
$role=$auth->createRole('CUSTOMER');
5-为角色分配操作:
$role->addChild('VIEW_POST');
6-全部完成!您可以限制访问权限,如下所示:
if(Yii::app()->user->checkAccess('VIEW_POST'))
{
//user has access to view a post
}else{
//logged in user has no access to view a post
}
您还可以使用以下角色检查访问权限:
if(Yii::app()->user->checkAccess('CUSTOMER')) {}
要为用户分配角色,请使用assign
方法:
$auth->assign('CUSTOMER','USERNAME | USER ID'); //user will hold the CUSTOMER ROLE
还可以注意到,我假设您已经实现了身份验证类。您可以在以下链接中找到有关Yii的RBAC和身份验证的更多信息,这是Yii的官方文档: