如何创建一个角色并只允许某些具有该角色的用户访问 moodle 中的块?
How to create a role and give access to only certain users having that role to the block in moodle?
我有一个块,现在我想让一些特定的用户访问那个块。这些特定用户将拥有为他们创建的角色。我的问题是,如何创建一个角色,将用户分配给它,并且该角色将使用户能够看到我创建的某个块。
谢谢
以下是您在 moodle 中的操作方法:
如何让一个区块只对某些用户可见?
1) 从“站点管理”>“用户”>“权限”>“定义角色”创建您的自定义角色
2) 您可以 select 一个原型,这意味着 select 使用它们将允许您继承该原型的功能。
3) 也 select 上下文作为一个块。这样您就可以从块设置(即本地设置)级别分配此角色。
4) 现在回到主页,打开编辑,这样您就可以在块的右上角看到本地块设置齿轮,单击它。
5) 单击向此块分配角色。
6) 您现在位于 'assign roles' 页面,查看左栏,在“管理”下您会看到“阻止:”,以及
在其下有如下设置:1) 分配角色,2) 权限,3) 检查权限。
7) 单击“权限”,您将在“阻止”下看到“查看”阻止。下方有一个加号,点击它。
8) 现在您可以编辑谁可以从这里查看此区块。只保留您创建的角色并删除其他角色。
9) 现在转到 'Assign roles'。
10) 您看到 table 包含角色、描述和用户角色列。单击 table.
中的角色名称
11) 您将到达一个页面,您可以在其中将用户批量分配给该角色选项。将用户分配给该角色后,您就完成了该过程。
我会为 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
中的 class 中
检查能力
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) 您可以 select 一个原型,这意味着 select 使用它们将允许您继承该原型的功能。
3) 也 select 上下文作为一个块。这样您就可以从块设置(即本地设置)级别分配此角色。
4) 现在回到主页,打开编辑,这样您就可以在块的右上角看到本地块设置齿轮,单击它。
5) 单击向此块分配角色。
6) 您现在位于 'assign roles' 页面,查看左栏,在“管理”下您会看到“阻止:”,以及 在其下有如下设置:1) 分配角色,2) 权限,3) 检查权限。
7) 单击“权限”,您将在“阻止”下看到“查看”阻止。下方有一个加号,点击它。
8) 现在您可以编辑谁可以从这里查看此区块。只保留您创建的角色并删除其他角色。
9) 现在转到 'Assign roles'。
10) 您看到 table 包含角色、描述和用户角色列。单击 table.
中的角色名称11) 您将到达一个页面,您可以在其中将用户批量分配给该角色选项。将用户分配给该角色后,您就完成了该过程。
我会为 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
中的版本才能安装该功能。
然后转到角色并设置允许所需角色的能力。