【发布时间】:2017-03-10 03:18:03
【问题描述】:
是否可以将 RBAC yii\rbac\Rule 应用于未经身份验证的用户 (Yii::$app->user->isGuest == true)?如果有,怎么做?
我的规则也用于经过身份验证的用户,将所有逻辑保存在一个地方会很好,也很干燥,如下所示:
class UserAccesslevelRule extends Rule {
public $name = 'userAccesslevel';
public function execute($userID, $item, $params) {
if (Yii::$app->user->isGuest && $someotherlogic == true) {
return true;
} else {
if ($somelogic == true) {
return true;
}
}
return false;
}
}
【问题讨论】:
-
你想在哪里为访客用户应用规则,在控制器中?
-
您将如何准备系统来区分客人?
-
@Mohan 在控制器或模型中的某些逻辑中。
-
@Bizley 不明白你的意思。
-
由于来宾之间没有区别(无需额外实现),每个来宾都将获得相同的权限,因此没有必要为他们准备 RBAC 规则。