MDL-55982 mod_forum: Add time-based discussion locking
[moodle.git] / mod / forum / 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  * Plugin capabilities
19  *
20  * @package    mod_forum
21  * @copyright  2006 Martin Dougiamas
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 defined('MOODLE_INTERNAL') || die();
27 $capabilities = array(
29     'mod/forum:addinstance' => array(
30         'riskbitmask' => RISK_XSS,
32         'captype' => 'write',
33         'contextlevel' => CONTEXT_COURSE,
34         'archetypes' => array(
35             'editingteacher' => CAP_ALLOW,
36             'manager' => CAP_ALLOW
37         ),
38         'clonepermissionsfrom' => 'moodle/course:manageactivities'
39     ),
41     'mod/forum:viewdiscussion' => array(
43         'captype' => 'read',
44         'contextlevel' => CONTEXT_MODULE,
45         'archetypes' => array(
46             'frontpage' => CAP_ALLOW, // needed especially for news on the frontpage
47             'guest' => CAP_ALLOW,
48             'student' => CAP_ALLOW,
49             'teacher' => CAP_ALLOW,
50             'editingteacher' => CAP_ALLOW,
51             'manager' => CAP_ALLOW
52         )
53     ),
55     'mod/forum:viewhiddentimedposts' => array(
57         'captype' => 'read',
58         'contextlevel' => CONTEXT_MODULE,
59         'archetypes' => array(
60             'teacher' => CAP_ALLOW,
61             'editingteacher' => CAP_ALLOW,
62             'manager' => CAP_ALLOW
63         )
64     ),
66     'mod/forum:startdiscussion' => array(
68         'riskbitmask' => RISK_SPAM,
70         'captype' => 'write',
71         'contextlevel' => CONTEXT_MODULE,
72         'archetypes' => array(
73             'student' => CAP_ALLOW,
74             'teacher' => CAP_ALLOW,
75             'editingteacher' => CAP_ALLOW,
76             'manager' => CAP_ALLOW
77         )
78     ),
80     'mod/forum:replypost' => array(
82         'riskbitmask' => RISK_SPAM,
84         'captype' => 'write',
85         'contextlevel' => CONTEXT_MODULE,
86         'archetypes' => array(
87             'student' => CAP_ALLOW,
88             'teacher' => CAP_ALLOW,
89             'editingteacher' => CAP_ALLOW,
90             'manager' => CAP_ALLOW
91         )
92     ),
94     'mod/forum:addnews' => array(
96         'riskbitmask' => RISK_SPAM,
98         'captype' => 'write',
99         'contextlevel' => CONTEXT_MODULE,
100         'archetypes' => array(
101             'teacher' => CAP_ALLOW,
102             'editingteacher' => CAP_ALLOW,
103             'manager' => CAP_ALLOW
104         )
105     ),
107     'mod/forum:replynews' => array(
109         'riskbitmask' => RISK_SPAM,
111         'captype' => 'write',
112         'contextlevel' => CONTEXT_MODULE,
113         'archetypes' => array(
114             'teacher' => CAP_ALLOW,
115             'editingteacher' => CAP_ALLOW,
116             'manager' => CAP_ALLOW
117         )
118     ),
120     'mod/forum:viewrating' => array(
122         'captype' => 'read',
123         'contextlevel' => CONTEXT_MODULE,
124         'archetypes' => array(
125             'student' => CAP_ALLOW,
126             'teacher' => CAP_ALLOW,
127             'editingteacher' => CAP_ALLOW,
128             'manager' => CAP_ALLOW
129         )
130     ),
132     'mod/forum:viewanyrating' => array(
134         'riskbitmask' => RISK_PERSONAL,
135         'captype' => 'read',
136         'contextlevel' => CONTEXT_MODULE,
137         'archetypes' => array(
138             'teacher' => CAP_ALLOW,
139             'editingteacher' => CAP_ALLOW,
140             'manager' => CAP_ALLOW
141         )
142     ),
144     'mod/forum:viewallratings' => array(
146         'riskbitmask' => RISK_PERSONAL,
147         'captype' => 'read',
148         'contextlevel' => CONTEXT_MODULE,
149         'archetypes' => array(
150             'teacher' => CAP_ALLOW,
151             'editingteacher' => CAP_ALLOW,
152             'manager' => CAP_ALLOW
153         ),
154         'clonepermissionsfrom' =>  'mod/forum:viewanyrating'
155     ),
157     'mod/forum:rate' => array(
159         'captype' => 'write',
160         'contextlevel' => CONTEXT_MODULE,
161         'archetypes' => array(
162             'teacher' => CAP_ALLOW,
163             'editingteacher' => CAP_ALLOW,
164             'manager' => CAP_ALLOW
165         )
166     ),
168     'mod/forum:createattachment' => array(
170         'riskbitmask' => RISK_SPAM,
172         'captype' => 'write',
173         'contextlevel' => CONTEXT_MODULE,
174         'archetypes' => array(
175             'student' => CAP_ALLOW,
176             'teacher' => CAP_ALLOW,
177             'editingteacher' => CAP_ALLOW,
178             'manager' => CAP_ALLOW
179         )
180     ),
182     'mod/forum:deleteownpost' => array(
184         'captype' => 'read',
185         'contextlevel' => CONTEXT_MODULE,
186         'archetypes' => array(
187             'student' => CAP_ALLOW,
188             'teacher' => CAP_ALLOW,
189             'editingteacher' => CAP_ALLOW,
190             'manager' => CAP_ALLOW
191         )
192     ),
194     'mod/forum:deleteanypost' => array(
196         'captype' => 'read',
197         'contextlevel' => CONTEXT_MODULE,
198         'archetypes' => array(
199             'teacher' => CAP_ALLOW,
200             'editingteacher' => CAP_ALLOW,
201             'manager' => CAP_ALLOW
202         )
203     ),
205     'mod/forum:splitdiscussions' => array(
207         'captype' => 'read',
208         'contextlevel' => CONTEXT_MODULE,
209         'archetypes' => array(
210             'teacher' => CAP_ALLOW,
211             'editingteacher' => CAP_ALLOW,
212             'manager' => CAP_ALLOW
213         )
214     ),
216     'mod/forum:movediscussions' => array(
218         'captype' => 'read',
219         'contextlevel' => CONTEXT_MODULE,
220         'archetypes' => array(
221             'teacher' => CAP_ALLOW,
222             'editingteacher' => CAP_ALLOW,
223             'manager' => CAP_ALLOW
224         )
225     ),
227     'mod/forum:pindiscussions' => array(
229         'captype' => 'write',
230         'contextlevel' => CONTEXT_MODULE,
231         'archetypes' => array(
232             'teacher' => CAP_ALLOW,
233             'editingteacher' => CAP_ALLOW,
234             'manager' => CAP_ALLOW
235         )
236     ),
238     'mod/forum:editanypost' => array(
240         'riskbitmask' => RISK_SPAM,
242         'captype' => 'write',
243         'contextlevel' => CONTEXT_MODULE,
244         'archetypes' => array(
245             'teacher' => CAP_ALLOW,
246             'editingteacher' => CAP_ALLOW,
247             'manager' => CAP_ALLOW
248         )
249     ),
251     'mod/forum:viewqandawithoutposting' => array(
253         'captype' => 'read',
254         'contextlevel' => CONTEXT_MODULE,
255         'archetypes' => array(
256             'teacher' => CAP_ALLOW,
257             'editingteacher' => CAP_ALLOW,
258             'manager' => CAP_ALLOW
259         )
260     ),
262     'mod/forum:viewsubscribers' => array(
264         'captype' => 'read',
265         'contextlevel' => CONTEXT_MODULE,
266         'archetypes' => array(
267             'teacher' => CAP_ALLOW,
268             'editingteacher' => CAP_ALLOW,
269             'manager' => CAP_ALLOW
270         )
271     ),
273     'mod/forum:managesubscriptions' => array(
275         'riskbitmask' => RISK_SPAM,
277         'captype' => 'read',
278         'contextlevel' => CONTEXT_MODULE,
279         'archetypes' => array(
280             'teacher' => CAP_ALLOW,
281             'editingteacher' => CAP_ALLOW,
282             'manager' => CAP_ALLOW
283         )
284     ),
286     'mod/forum:postwithoutthrottling' => array(
288         'riskbitmask' => RISK_SPAM,
290         'captype' => 'write',
291         'contextlevel' => CONTEXT_MODULE,
292         'archetypes' => array(
293             'teacher' => CAP_ALLOW,
294             'editingteacher' => CAP_ALLOW,
295             'manager' => CAP_ALLOW
296         )
297     ),
299     'mod/forum:exportdiscussion' => array(
301         'riskbitmask' => RISK_PERSONAL,
303         'captype' => 'read',
304         'contextlevel' => CONTEXT_MODULE,
305         'archetypes' => array(
306             'teacher' => CAP_ALLOW,
307             'editingteacher' => CAP_ALLOW,
308             'manager' => CAP_ALLOW
309         )
310     ),
311     'mod/forum:exportpost' => array(
313         'riskbitmask' => RISK_PERSONAL,
315         'captype' => 'read',
316         'contextlevel' => CONTEXT_MODULE,
317         'archetypes' => array(
318             'teacher' => CAP_ALLOW,
319             'editingteacher' => CAP_ALLOW,
320             'manager' => CAP_ALLOW
321         )
322     ),
323     'mod/forum:exportownpost' => array(
325         'riskbitmask' => RISK_PERSONAL,
327         'captype' => 'read',
328         'contextlevel' => CONTEXT_MODULE,
329         'archetypes' => array(
330             'teacher' => CAP_ALLOW,
331             'editingteacher' => CAP_ALLOW,
332             'manager' => CAP_ALLOW,
333             'student' => CAP_ALLOW,
334         )
335     ),
336     'mod/forum:addquestion' => array(
338         'riskbitmask' => RISK_SPAM,
340         'captype' => 'write',
341         'contextlevel' => CONTEXT_MODULE,
342         'archetypes' => array(
343             'teacher' => CAP_ALLOW,
344             'editingteacher' => CAP_ALLOW,
345             'manager' => CAP_ALLOW
346         )
347     ),
348     'mod/forum:allowforcesubscribe' => array(
350         'captype' => 'read',
351         'contextlevel' => CONTEXT_MODULE,
352         'archetypes' => array(
353             'student' => CAP_ALLOW,
354             'teacher' => CAP_ALLOW,
355             'editingteacher' => CAP_ALLOW,
356             'frontpage' => CAP_ALLOW
357         )
358     ),
359     'mod/forum:canposttomygroups' => array(
361         'captype' => 'write',
362         'contextlevel' => CONTEXT_MODULE,
363         'archetypes' => array(
364             'teacher' => CAP_ALLOW,
365             'editingteacher' => CAP_ALLOW,
366             'manager' => CAP_ALLOW
367         )
368     ),
369     'mod/forum:canoverridediscussionlock' => array(
370         'captype' => 'write',
371         'contextlevel' => CONTEXT_MODULE,
372         'archetypes' => array(
373             'teacher' => CAP_ALLOW,
374             'editingteacher' => CAP_ALLOW,
375             'manager' => CAP_ALLOW
376         )
377     ),
378 );