嗨,大家好,我看到了很多的Yii 2 RBAC的教程,但我不能真正体会到如何实施这些规则。在Yii的2引导他们推出的规则是如何制造的,但没有真正如何能在控制器的行为或者其他地方实施。对于这件事我真的需要一些启发。Yii2 RBAC规则实施
我现在有一个文件上传系统,在那里我有两个角色,即管理&编码器。基本上,管理角色可以完成所有工作,而编码角色只能创建,查看拥有,更新拥有和删除拥有。我已经创建了一个名为encodedBy的规则。
这是我在我的EncoderRule
namespace app\rbac; use yii\rbac\Rule;
/** * Checks if encoded_by matches user passed via params */ class EncoderRule extends Rule {
public $name = 'encodedBy';
/**
* @param string|integer $user the user ID.
* @param Item $item the role or permission that this rule is associated with
* @param array $params parameters passed to ManagerInterface::checkAccess().
* @return boolean a value indicating whether the rule permits the role or permission it is associated with.
*/
public function execute($user, $item, $params)
{
return isset($params['document']) ? $params['document']->encoded_by == $user : false;
} }
的代码,我将数据存储在“文件”表在那里我有一个字段名为“encoded_by” 我希望你们能帮助我在此。 非常感谢!
对于任何不确定其工作原理的人来说,本视频对解释RBAC做得非常好:https://www.youtube.com/watch?v = vLb8YATO-HU – TheStoryCoder