. /** * Capability definitions for the quiz module. * * @package mod_quiz * @copyright 2006 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); $capabilities = [ // Ability to see that the quiz exists, and the basic information // about it, for example the start date and time limit. 'mod/quiz:view' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'guest' => CAP_ALLOW, 'student' => CAP_ALLOW, 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Ability to add a new quiz to the course. 'mod/quiz:addinstance' => [ 'riskbitmask' => RISK_XSS, 'captype' => 'write', 'contextlevel' => CONTEXT_COURSE, 'archetypes' => [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ], 'clonepermissionsfrom' => 'moodle/course:manageactivities' ], // Ability to do the quiz as a 'student'. 'mod/quiz:attempt' => [ 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'student' => CAP_ALLOW ] ], // Ability for a 'Student' to review their previous attempts. Review by // 'Teachers' is controlled by mod/quiz:viewreports. 'mod/quiz:reviewmyattempts' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'student' => CAP_ALLOW ], 'clonepermissionsfrom' => 'moodle/quiz:attempt' ], // Edit the quiz settings, add and remove questions. 'mod/quiz:manage' => [ 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Edit the quiz overrides. 'mod/quiz:manageoverrides' => [ 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // View the quiz overrides (only checked for users who don't have mod/quiz:manageoverrides. 'mod/quiz:viewoverrides' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Preview the quiz. 'mod/quiz:preview' => [ 'captype' => 'write', // Only just a write. 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Manually grade and comment on student attempts at a question. 'mod/quiz:grade' => [ 'riskbitmask' => RISK_SPAM | RISK_XSS, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Regrade quizzes. 'mod/quiz:regrade' => [ 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ], 'clonepermissionsfrom' => 'mod/quiz:grade' ], // View the quiz reports. 'mod/quiz:viewreports' => [ 'riskbitmask' => RISK_PERSONAL, 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Delete attempts using the overview report. 'mod/quiz:deleteattempts' => [ 'riskbitmask' => RISK_DATALOSS, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Re-open attempts after they are closed. 'mod/quiz:reopenattempts' => [ 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ] ], // Do not have the time limit imposed. Used for accessibility legislation compliance. 'mod/quiz:ignoretimelimits' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [] ], // Receive a confirmation message of own quiz submission. 'mod/quiz:emailconfirmsubmission' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [] ], // Receive a notification message of other peoples' quiz submissions. 'mod/quiz:emailnotifysubmission' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [] ], // Receive a notification message when a quiz attempt becomes overdue. 'mod/quiz:emailwarnoverdue' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [] ], // Receive a notification message when a quiz attempt manual graded. 'mod/quiz:emailnotifyattemptgraded' => [ 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => [] ], ];