如何在moodle中创建一个角色并仅允许具有该角色的特定用户访问该块


How to create a role and give access to only certain users having that role to the block in moodle?

我有一个块,现在我希望一些特定的用户访问该块。这些特定的用户将为他们创建一个角色。我的问题是,如何创建一个角色,将用户分配给它,并且该角色将使用户能够看到我创建的某个块。

感谢

我将在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) 您将到达一个页面,在该页面中,您可以将用户批量分配给该角色选项。将用户分配给该角色后,您就完成了该过程。