Merge branch 'MDL-62815_mod_lti' of git://github.com/davosmith/moodle
[moodle.git] / mod / lti / db / access.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * This file contains the capabilities used by the lti module
19  *
20  * @package    mod_lti
21  * @copyright  2009 Marc Alier, Jordi Piguillem, Nikolas Galanis, marc.alier@upc.edu
22  * @copyright  2009 Universitat Politecnica de Catalunya http://www.upc.edu
23  * @author     Marc Alier
24  * @author     Jordi Piguillem
25  * @author     Nikolas Galanis
26  * @author     Chris Scribner
27  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
28  */
30 defined('MOODLE_INTERNAL') || die;
32 $capabilities = array(
34     // Whether the user can see the link to the external tool and follow it.
35     'mod/lti:view' => array(
36         'captype' => 'read',
37         'contextlevel' => CONTEXT_MODULE,
38         'archetypes' => array(
39             'student' => CAP_ALLOW,
40             'teacher' => CAP_ALLOW,
41             'editingteacher' => CAP_ALLOW,
42             'manager' => CAP_ALLOW
43         )
44     ),
46     // Add an External tool activity to a course.
47     'mod/lti:addinstance' => array(
48         'riskbitmask' => RISK_XSS,
50         'captype' => 'write',
51         'contextlevel' => CONTEXT_COURSE,
52         'archetypes' => array(
53             'editingteacher' => CAP_ALLOW,
54             'manager' => CAP_ALLOW
55         ),
56         'clonepermissionsfrom' => 'moodle/course:manageactivities'
57     ),
59     // When the user arrives at the external tool, if they have this capability
60     // in Moodle, then they are given the Instructor role in the remote system,
61     // otherwise they are given Learner. See the lti_get_ims_role function.
62     'mod/lti:manage' => array(
63         'riskbitmask' => RISK_PERSONAL, // A bit of a guess, but seems likely.
65         'captype' => 'write',
66         'contextlevel' => CONTEXT_MODULE,
67         'archetypes' => array(
68             'teacher' => CAP_ALLOW,
69             'editingteacher' => CAP_ALLOW,
70             'manager' => CAP_ALLOW
71         )
72     ),
74     // When the user arrives at the external tool, if they have this capability
75     // in Moodle, then they are given the Administrator role in the remote system,
76     // otherwise they are given Learner. See the lti_get_ims_role function.
77     'mod/lti:admin' => array(
78         'riskbitmask' => RISK_PERSONAL, // A bit of a guess, but seems likely.
80         'captype' => 'write',
81         'contextlevel' => CONTEXT_MODULE
82     ),
84     // The ability to create or edit tool configurations for particular courses.
85     'mod/lti:addcoursetool' => array(
86         'captype' => 'write',
87         'contextlevel' => CONTEXT_COURSE,
88         'archetypes' => array(
89             'editingteacher' => CAP_ALLOW,
90             'manager' => CAP_ALLOW
91         )
92     ),
94     // The ability to a preconfigured instance to the course.
95     'mod/lti:addpreconfiguredinstance' => array(
96         'captype' => 'write',
97         'contextlevel' => CONTEXT_COURSE,
98         'archetypes' => array(
99             'editingteacher' => CAP_ALLOW,
100             'manager' => CAP_ALLOW
101         ),
102         'clonepermissionsfrom' => 'mod/lti:addinstance',
103     ),
105     // The ability to add a manual instance (i.e. not from a preconfigured tool) to the course.
106     'mod/lti:addmanualinstance' => array(
107         'captype' => 'write',
108         'contextlevel' => CONTEXT_COURSE,
109         'archetypes' => array(
110             'editingteacher' => CAP_ALLOW,
111             'manager' => CAP_ALLOW
112         ),
113         'clonepermissionsfrom' => 'mod/lti:addinstance',
114     ),
116     // The ability to request the administrator to configure a particular
117     // External tool globally.
118     'mod/lti:requesttooladd' => array(
119         'captype' => 'write',
120         'contextlevel' => CONTEXT_COURSE,
121         'archetypes' => array(
122             'editingteacher' => CAP_ALLOW,
123             'manager' => CAP_ALLOW
124         )
125     )
126 );