. /** * 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 = array( // Ability to see that the quiz exists, and the basic information // about it, for example the start date and time limit. 'mod/quiz:view' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( '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' => array( 'riskbitmask' => RISK_XSS, 'captype' => 'write', 'contextlevel' => CONTEXT_COURSE, 'archetypes' => array( 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ), 'clonepermissionsfrom' => 'moodle/course:manageactivities' ), // Ability to do the quiz as a 'student'. 'mod/quiz:attempt' => array( 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'student' => CAP_ALLOW ) ), // Ability for a 'Student' to review their previous attempts. Review by // 'Teachers' is controlled by mod/quiz:viewreports. 'mod/quiz:reviewmyattempts' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'student' => CAP_ALLOW ), 'clonepermissionsfrom' => 'moodle/quiz:attempt' ), // Edit the quiz settings, add and remove questions. 'mod/quiz:manage' => array( 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Edit the quiz overrides. 'mod/quiz:manageoverrides' => array( 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Preview the quiz. 'mod/quiz:preview' => array( 'captype' => 'write', // Only just a write. 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Manually grade and comment on student attempts at a question. 'mod/quiz:grade' => array( 'riskbitmask' => RISK_SPAM | RISK_XSS, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Regrade quizzes. 'mod/quiz:regrade' => array( 'riskbitmask' => RISK_SPAM, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ), 'clonepermissionsfrom' => 'mod/quiz:grade' ), // View the quiz reports. 'mod/quiz:viewreports' => array( 'riskbitmask' => RISK_PERSONAL, 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'teacher' => CAP_ALLOW, 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Delete attempts using the overview report. 'mod/quiz:deleteattempts' => array( 'riskbitmask' => RISK_DATALOSS, 'captype' => 'write', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array( 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) ), // Do not have the time limit imposed. Used for accessibility legislation compliance. 'mod/quiz:ignoretimelimits' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array() ), // Receive a confirmation message of own quiz submission. 'mod/quiz:emailconfirmsubmission' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array() ), // Receive a notification message of other peoples' quiz submissions. 'mod/quiz:emailnotifysubmission' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array() ), // Receive a notification message when a quiz attempt becomes overdue. 'mod/quiz:emailwarnoverdue' => array( 'captype' => 'read', 'contextlevel' => CONTEXT_MODULE, 'archetypes' => array() ), );