【发布时间】:2019-10-06 07:29:33
【问题描述】:
我安装了 dektrium\user 和 dektrium\rbac\ 模块来管理用户和访问控制。完全安装了相关的表和文件,我可以在 /user/admin 路径中看到几个选项卡(用户、角色、权限、规则、创建)使用模块。我可以完美地管理用户(创建用户,重置密码,编辑,..)。购买我无法创建规则。 我在 app\rbac\rules 文件夹中创建了一个名为 AuthorRule 的类:
<?php
namespace app\rbac\rules;
use yii\rbac\Rule;
use app\models\News;
/**
* Checks if authorID matches user passed via params
*/
class AuthorRule extends Rule
{
public $name = 'isAuthor';
/**
* @param string|int $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 bool a value indicating whether the rule permits the role or permission it is associated with.
*/
public function execute($user, $item, $params)
{
return isset($params['news']) ? $params['news']->createdBy == $user : false;
}
}
(我用模型、控制器、视图创建了新闻类) 但是当我在我的模块中输入名称和类规则时。既不记录数据,也不记录错误消息。在我进入规则之前,我无法添加其余部分。
【问题讨论】:
-
它是否保存带有上述详细信息的规则?如果是,则您需要通过创建新权限并在表单中选择上述创建的规则来将规则分配给用户。看看创建新的许可表,你就会明白
-
要了解完整的过程,请参阅post 上的答案,其中该过程是手动完成的,无需使用上述表格
-
我知道我应该分配,但我必须制定一个我不能做的规则。它不保存规则。
-
它会抛出什么错误?
-
我无法创建任何规则,也没有任何消息在查看。当我单击“保存”按钮时,我有第二张图片。我搜索了很多。但我找不到解决方案 muhammad 如果你愿意,你能帮我吗?请给我发邮件:masoudy.maryam@gmail.com。谢谢你指导我