我有一个块,现在我希望一些特定的用户访问该块。这些特定的用户将为他们创建一个角色。我的问题是,如何创建一个角色,将用户分配给它,并且该角色将使用户能够看到我创建的某个块。
感谢
我将在blocks/yourblockname/db/access.php
中为块创建一个功能
'block/yourblockname:view' => array(
'captype' => 'read',
'contextlevel' => CONTEXT_BLOCK,
'archetypes' => array(
'manager' => CAP_ALLOW
)
)
在/blocks/yourblockname/lang/en/block_yourblockname.php
中,您还需要一个语言字符串
$string['yourblockname:view'] = 'View this block';
然后在blocks/yourblockname/block_yourblockname.php
中的块类中
检查的能力
function get_content() {
...
$this->content = new stdClass;
$this->content->text = '';
$this->content->footer = '';
...
if (!has_capability('block/yourblockname:view', $this->page->context)) {
// Return blank content so the block isn't displayed.
return $this->content;
}
您需要在version.php
中升级版本才能安装该功能。
然后转到角色并设置所需角色允许的功能。
以下是如何在moodle中做到这一点:
如何使块仅对特定用户可见
1) 从网站管理>用户>权限>定义角色创建您的自定义角色
2) 你可以选择一个原型,这意味着选择一个他们将允许你继承原型的功能。
3) 同时选择上下文作为块。以便您可以从块设置(即本地设置)级别分配此角色。
4) 现在回到主页,打开编辑,这样你就可以看到块右角的本地块设置齿轮,点击它。
5) 单击"为此块分配角色"。
6) 您现在在"分配角色"页面中,请参阅左列,在"管理"下,您将看到阻止:和下面有这样的设置:1)分配角色,2)权限,3)检查权限。
7) 单击"权限",您将在"阻止"下看到视图阻止。有一个加号beneath,点击它。
8) 现在,您可以编辑谁可以从这里查看此块。只需保留您创建的角色并删除其他角色即可。
9) 现在转到"分配角色"。
10) 您看到的表中有"角色"、"说明"answers"具有角色的用户"列。单击该表中的角色名称。
11) 您将到达一个页面,在该页面中,您可以将用户批量分配给该角色选项。将用户分配给该角色后,您就完成了该过程。