Php 如何在Yii2 Advance应用程序中设置用户权限类型
所以我有不同的用户角色,即国家管理员、地区管理员、市政管理员和外部用户。在我的用户表上,我有一个列字段“role”,我希望外部用户不能在我生成的CRUD上创建一些内容。我该怎么做Php 如何在Yii2 Advance应用程序中设置用户权限类型,php,yii2,yii2-advanced-app,Php,Yii2,Yii2 Advanced App,所以我有不同的用户角色,即国家管理员、地区管理员、市政管理员和外部用户。在我的用户表上,我有一个列字段“role”,我希望外部用户不能在我生成的CRUD上创建一些内容。我该怎么做 public function behaviors(){ return [ 'verbs' => [ 'class' => VerbFilter::className(), 'actions' => [
public function behaviors(){
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['POST'],
],
],
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['index','create','update','view'],
'rules' => [
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
你看过这个吗:
?
yii\rbac\DbManager
类作为身份验证管理器组件行为\访问中的角色下
旁注:我建议对每个单独的CRUD函数(和其他操作)拥有单独的权限。这样,您将永远不会发现自己处于单一权限授予过多访问权限的情况下 示例:较低级别权限:
createUser
updateUser
viewUser
deleteUser
activateUser
deactivateUser
allActionUser
组中,并将其分配给AdminRole
角色
将viewUser
,activateUser
,deactivateUser
组合成一个powerUser
组,并将其分配给powerUserRole
角色
然后为用户分配角色、组和/或单个粒度权限。这将使您在分配权限和满足业务需求(或用例)方面具有最大的通用性
花额外的时间理解规则,并广泛使用它们来定义自定义逻辑。用控制器代码覆盖某些东西对一个函数有效,但您很快就会发现它不能很好地扩展
一个很好的规则示例是
updateUserSelf
。您可能不想将updateUser
权限分配给最终用户,因为这将是一个疯狂的西部,因为每个人都将更新每个人的信息。但是你肯定想让你的最终用户能够更新他们自己的信息。这就是规则派上用场的地方。非常欢迎您。另外,欢迎来到StackOverflow社区。看起来这是你的第一个问题。为了获得最好的结果,在你的问题中尽量描述。签出此指南:。如果您对答案感到满意,请将其标记为正确。