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

前端之家收集整理的这篇文章主要介绍了php – 在数据库中具有授权规则的原因是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的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;
原文链接:https://www.f2er.com/php/131300.html

猜你在找的PHP相关文章