58583c3f75865310b33b4bea2c42b4c6d8018319
[moodle.git] / mod / forum / db / access.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Capability definitions for the forum module.
20  *
21  * The capabilities are loaded into the database table when the module is
22  * installed or updated. Whenever the capability definitions are updated,
23  * the module version number should be bumped up.
24  *
25  * The system has four possible values for a capability:
26  * CAP_ALLOW, CAP_PREVENT, CAP_PROHIBIT, and inherit (not set).
27  *
28  * CAPABILITY NAMING CONVENTION
29  *
30  * It is important that capability names are unique. The naming convention
31  * for capabilities that are specific to modules and blocks is as follows:
32  *   [mod/block]/<plugin_name>:<capabilityname>
33  *
34  * component_name should be the same as the directory name of the mod or block.
35  *
36  * Core moodle capabilities are defined thus:
37  *    moodle/<capabilityclass>:<capabilityname>
38  *
39  * Examples: mod/forum:viewpost
40  *           block/recent_activity:view
41  *           moodle/site:deleteuser
42  *
43  * The variable name for the capability definitions array is $capabilities
44  *
45  * @package mod-forum
46  * @copyright 2006 vyshane
47  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
48  */
50 $capabilities = array(
52     'mod/forum:viewdiscussion' => array(
54         'captype' => 'read',
55         'contextlevel' => CONTEXT_MODULE,
56         'archetypes' => array(
57             'frontpage' => CAP_ALLOW, // needed especially for news on the frontpage
58             'guest' => CAP_ALLOW,
59             'student' => CAP_ALLOW,
60             'teacher' => CAP_ALLOW,
61             'editingteacher' => CAP_ALLOW,
62             'manager' => CAP_ALLOW
63         )
64     ),
66     'mod/forum:viewhiddentimedposts' => array(
68         'captype' => 'read',
69         'contextlevel' => CONTEXT_MODULE,
70         'archetypes' => array(
71             'teacher' => CAP_ALLOW,
72             'editingteacher' => CAP_ALLOW,
73             'manager' => CAP_ALLOW
74         )
75     ),
77     'mod/forum:startdiscussion' => array(
79         'riskbitmask' => RISK_SPAM,
81         'captype' => 'write',
82         'contextlevel' => CONTEXT_MODULE,
83         'archetypes' => array(
84             'student' => CAP_ALLOW,
85             'teacher' => CAP_ALLOW,
86             'editingteacher' => CAP_ALLOW,
87             'manager' => CAP_ALLOW
88         )
89     ),
91     'mod/forum:replypost' => array(
93         'riskbitmask' => RISK_SPAM,
95         'captype' => 'write',
96         'contextlevel' => CONTEXT_MODULE,
97         'archetypes' => array(
98             'student' => CAP_ALLOW,
99             'teacher' => CAP_ALLOW,
100             'editingteacher' => CAP_ALLOW,
101             'manager' => CAP_ALLOW
102         )
103     ),
105     'mod/forum:addnews' => array(
107         'riskbitmask' => RISK_SPAM,
109         'captype' => 'write',
110         'contextlevel' => CONTEXT_MODULE,
111         'archetypes' => array(
112             'teacher' => CAP_ALLOW,
113             'editingteacher' => CAP_ALLOW,
114             'manager' => CAP_ALLOW
115         )
116     ),
118     'mod/forum:replynews' => array(
120         'riskbitmask' => RISK_SPAM,
122         'captype' => 'write',
123         'contextlevel' => CONTEXT_MODULE,
124         'archetypes' => array(
125             'teacher' => CAP_ALLOW,
126             'editingteacher' => CAP_ALLOW,
127             'manager' => CAP_ALLOW
128         )
129     ),
131     'mod/forum:viewrating' => array(
133         'captype' => 'read',
134         'contextlevel' => CONTEXT_MODULE,
135         'archetypes' => array(
136             'student' => CAP_ALLOW,
137             'teacher' => CAP_ALLOW,
138             'editingteacher' => CAP_ALLOW,
139             'manager' => CAP_ALLOW
140         )
141     ),
143     'mod/forum:viewanyrating' => array(
145         'riskbitmask' => RISK_PERSONAL,
146         'captype' => 'read',
147         'contextlevel' => CONTEXT_MODULE,
148         'archetypes' => array(
149             'teacher' => CAP_ALLOW,
150             'editingteacher' => CAP_ALLOW,
151             'manager' => CAP_ALLOW
152         )
153     ),
155     'mod/forum:viewallratings' => array(
157         'riskbitmask' => RISK_PERSONAL,
158         'captype' => 'read',
159         'contextlevel' => CONTEXT_MODULE,
160         'archetypes' => array(
161             'teacher' => CAP_ALLOW,
162             'editingteacher' => CAP_ALLOW,
163             'manager' => CAP_ALLOW
164         ),
165         'clonepermissionsfrom' =>  'mod/forum:viewanyrating'
166     ),
168     'mod/forum:rate' => array(
170         'captype' => 'write',
171         'contextlevel' => CONTEXT_MODULE,
172         'archetypes' => array(
173             'teacher' => CAP_ALLOW,
174             'editingteacher' => CAP_ALLOW,
175             'manager' => CAP_ALLOW
176         )
177     ),
179     'mod/forum:createattachment' => array(
181         'riskbitmask' => RISK_SPAM,
183         'captype' => 'write',
184         'contextlevel' => CONTEXT_MODULE,
185         'archetypes' => array(
186             'student' => CAP_ALLOW,
187             'teacher' => CAP_ALLOW,
188             'editingteacher' => CAP_ALLOW,
189             'manager' => CAP_ALLOW
190         )
191     ),
193     'mod/forum:deleteownpost' => array(
195         'captype' => 'read',
196         'contextlevel' => CONTEXT_MODULE,
197         'archetypes' => array(
198             'student' => CAP_ALLOW,
199             'teacher' => CAP_ALLOW,
200             'editingteacher' => CAP_ALLOW,
201             'manager' => CAP_ALLOW
202         )
203     ),
205     'mod/forum:deleteanypost' => 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:splitdiscussions' => 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:movediscussions' => array(
229         'captype' => 'read',
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 );