我是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提供 –