我是Moodle中的新成员,我有一项任务是创建具有课程管理员角色的本地插件。在我的系统中,我有大量的用户在特定的课程中,他们是不同角色的类别。其中一些与学生有关系,其余都是经理。对于我的情况,我收到了客户的请求,要求创建一个本地插件,用于根据学生记录生成多个报告。我已经成功制作了插件,但条件是这个插件只能访问那些已经作为经理注册的人。我试着用下面的代码,我在下面分享你,但没有成功。现在只有管理员可以访问本地插件的其余部分收到来自moodle状态的错误消息。本地插件权限问题不适用于课程管理器 - Moodle
["Sorry, but you do not currently have permissions to do that Project view "]
不知道它将如何解决。
请指教。
本地/项目/ DB/access.php
defined('MOODLE_INTERNAL') || die();
$capabilities = array(
'local/project:view' => array(
'riskbitmask' => RISK_PERSONAL,
'captype' => 'read',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW
),
'local/project:manage' => array(
'captype' => 'write',
'contextlevel' => CONTEXT_SYSTEM,
'archetypes' => array(
'manager' => CAP_ALLOW
)
)
)
);
本地/项目/ header.php文件
require(dirname(__FILE__).'/../../config.php');
global $DB;
//Get the system context
$url = new moodle_url('/local/project/index.php');
require_login();
require_capability('local/project:view', context_system::instance());
我多了一个解决方案,但它的定制我直接检查用户权限与数据库的为我工作,因为我需要但问题是这种方法不提供我的错误功能,显示像moodle错误消息。你可以请指教我怎么可以显示相同的错误消息,这些消息的Moodle使用 '如果(计数($ resposne)== 0){ \t回声“很抱歉,您目前没有权限做项目”; \t exit(); }' –
如果您不得不手动检查数据库中的权限,那么您的能力定义或能力检查有问题。在我为Moodle开发的这些年里,require_capability()和has_capability()对我来说正确工作了几千次。 – davosmith
我的情况如何使用能力与require_capability()和has_capability()...有没有解决方案提供的Moodle提供 –