加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在数据库中具有授权规则的原因是什么?

发布时间:2020-12-13 13:14:50 所属栏目:PHP教程 来源:网络整理
导读:在我的Yii应用程序中,我希望我的授权层次结构和业务规则是用代码编写的,我希望将用户,角色和权限存储在数据库中.这将我的业务逻辑(应该是代码)从应该使用的信息(应该是数据)中分离出来.看来Yii不支持这个. 在Yii中,您可以选择将业务逻辑放入文件(CPhpAuthMan
在我的Yii应用程序中,我希望我的授权层次结构和业务规则是用代码编写的,我希望将用户,角色和权限存储在数据库中.这将我的业务逻辑(应该是代码)从应该使用的信息(应该是数据)中分离出来.看来Yii不支持这个.

在Yii中,您可以选择将业务逻辑放入文件(CPhpAuthManager)或数据库(CdbAuthManager)中.无论如何,您将业务逻辑视为数据; Yii实际上将检索您的业务逻辑作为字符串,然后通过eval运行它,这似乎是一个可怕的方式来做到这一点.

这是什么原因?

如何达到我想要的结果?

您可以将所需的逻辑尽可能多地放入您的业务逻辑的 PHP代码中. Yii支持许多添加逻辑的方法,例如. LoginForm.php,UserIdentity.php,SiteController.php,…您不限于此.

Yii还支持的是向您的RBAC添加一个逻辑片段.一个常见的用例是,默认情况下,您将两个规则“Authenticated”和“Guest”分配给您的网站的所有用户,但使用bizRules.
“Authenticated”有一个bizRule

return !Yii::app()->user->isGuest;

‘Guest’有

return Yii::app()->user->isGuest;

结果是,您的登录用户不再是“客人”,而是“已验证”.
另一个例子是用户配置文件的编辑视图,这些配置文件只能由当前用户编辑,如

return $model->id === Yii::app()->user->id;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读