weekly release 2.9dev
[moodle.git] / lib / db / services.php
CommitLineData
9a0df45a 1<?php
9a0df45a 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/>.
16
a0a07014 17
9a0df45a 18/**
19 * Core external functions and service definitions.
20 *
39b90b51
EL
21 * The functions and services defined on this file are
22 * processed and registered into the Moodle DB after any
23 * install or upgrade operation. All plugins support this.
24 *
25 * For more information, take a look to the documentation available:
26 * - Webservices API: {@link http://docs.moodle.org/dev/Web_services_API}
27 * - External API: {@link http://docs.moodle.org/dev/External_functions_API}
28 * - Upgrade API: {@link http://docs.moodle.org/dev/Upgrade_API}
29 *
a0a07014
JM
30 * @package core_webservice
31 * @category webservice
32 * @copyright 2009 Petr Skodak
9a0df45a 33 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
34 */
35
36$functions = array(
ef22c1b6 37
088645e2
AB
38 // Cohort related functions.
39
40 'core_cohort_create_cohorts' => array(
41 'classname' => 'core_cohort_external',
42 'methodname' => 'create_cohorts',
43 'classpath' => 'cohort/externallib.php',
44 'description' => 'Creates new cohorts.',
45 'type' => 'write',
46 'capabilities'=> 'moodle/cohort:manage',
47 ),
48
49 'core_cohort_delete_cohorts' => array(
50 'classname' => 'core_cohort_external',
51 'methodname' => 'delete_cohorts',
52 'classpath' => 'cohort/externallib.php',
53 'description' => 'Deletes all specified cohorts.',
54 'type' => 'delete',
55 'capabilities'=> 'moodle/cohort:manage',
56 ),
57
58 'core_cohort_get_cohorts' => array(
59 'classname' => 'core_cohort_external',
60 'methodname' => 'get_cohorts',
61 'classpath' => 'cohort/externallib.php',
62 'description' => 'Returns cohort details.',
63 'type' => 'read',
64 'capabilities'=> 'moodle/cohort:view',
65 ),
66
67 'core_cohort_update_cohorts' => array(
68 'classname' => 'core_cohort_external',
69 'methodname' => 'update_cohorts',
70 'classpath' => 'cohort/externallib.php',
71 'description' => 'Updates existing cohorts.',
72 'type' => 'write',
73 'capabilities'=> 'moodle/cohort:manage',
74 ),
75
76 'core_cohort_add_cohort_members' => array(
77 'classname' => 'core_cohort_external',
78 'methodname' => 'add_cohort_members',
79 'classpath' => 'cohort/externallib.php',
80 'description' => 'Adds cohort members.',
81 'type' => 'write',
82 'capabilities'=> 'moodle/cohort:assign',
83 ),
84
85 'core_cohort_delete_cohort_members' => array(
86 'classname' => 'core_cohort_external',
87 'methodname' => 'delete_cohort_members',
88 'classpath' => 'cohort/externallib.php',
89 'description' => 'Deletes cohort members.',
90 'type' => 'delete',
91 'capabilities'=> 'moodle/cohort:assign',
92 ),
93
94 'core_cohort_get_cohort_members' => array(
95 'classname' => 'core_cohort_external',
96 'methodname' => 'get_cohort_members',
97 'classpath' => 'cohort/externallib.php',
98 'description' => 'Returns cohort members.',
99 'type' => 'read',
100 'capabilities'=> 'moodle/cohort:view',
101 ),
198e802f 102 // Grade related functions.
d3549931 103
198e802f
JL
104 'core_grades_get_grades' => array(
105 'classname' => 'core_grades_external',
106 'methodname' => 'get_grades',
a0095e5a
JL
107 'description' => 'Returns student course total grade and grades for activities.
108 This function does not return category or manual items.
109 This function is suitable for managers or teachers not students.',
198e802f 110 'type' => 'read',
a0095e5a 111 'capabilities' => 'moodle/grade:view, moodle/grade:viewall, moodle/grade:viewhidden',
d3549931
AD
112 ),
113
198e802f
JL
114 'core_grades_update_grades' => array(
115 'classname' => 'core_grades_external',
116 'methodname' => 'update_grades',
198e802f
JL
117 'description' => 'Update a grade item and associated student grades.',
118 'type' => 'write',
119 'capabilities' => '',
d3549931 120 ),
088645e2 121
ef22c1b6 122 // === group related functions ===
f5072177 123
9a0df45a 124 'moodle_group_create_groups' => array(
5d1017e1
JM
125 'classname' => 'core_group_external',
126 'methodname' => 'create_groups',
127 'classpath' => 'group/externallib.php',
128 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_create_groups(). ',
129 'type' => 'write',
130 'capabilities'=> 'moodle/course:managegroups',
131 ),
132
133 'core_group_create_groups' => array(
134 'classname' => 'core_group_external',
9a0df45a 135 'methodname' => 'create_groups',
136 'classpath' => 'group/externallib.php',
f5072177 137 'description' => 'Creates new groups.',
138 'type' => 'write',
72f68b51 139 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 140 ),
f5072177 141
9a0df45a 142 'moodle_group_get_groups' => array(
5d1017e1
JM
143 'classname' => 'core_group_external',
144 'methodname' => 'get_groups',
145 'classpath' => 'group/externallib.php',
146 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_groups()',
147 'type' => 'read',
148 'capabilities'=> 'moodle/course:managegroups',
149 ),
150
151 'core_group_get_groups' => array(
152 'classname' => 'core_group_external',
9a0df45a 153 'methodname' => 'get_groups',
154 'classpath' => 'group/externallib.php',
cfb99b75 155 'description' => 'Returns group details.',
f5072177 156 'type' => 'read',
72f68b51 157 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 158 ),
246f6da2 159
160 'moodle_group_get_course_groups' => array(
5d1017e1
JM
161 'classname' => 'core_group_external',
162 'methodname' => 'get_course_groups',
163 'classpath' => 'group/externallib.php',
164 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_course_groups()',
165 'type' => 'read',
166 'capabilities'=> 'moodle/course:managegroups',
167 ),
168
169 'core_group_get_course_groups' => array(
170 'classname' => 'core_group_external',
246f6da2 171 'methodname' => 'get_course_groups',
172 'classpath' => 'group/externallib.php',
173 'description' => 'Returns all groups in specified course.',
174 'type' => 'read',
72f68b51 175 'capabilities'=> 'moodle/course:managegroups',
246f6da2 176 ),
2cb1ee78 177
9a0df45a 178 'moodle_group_delete_groups' => array(
5d1017e1
JM
179 'classname' => 'core_group_external',
180 'methodname' => 'delete_groups',
181 'classpath' => 'group/externallib.php',
182 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_groups()',
183 'type' => 'delete',
184 'capabilities'=> 'moodle/course:managegroups',
185 ),
186
187 'core_group_delete_groups' => array(
188 'classname' => 'core_group_external',
9a0df45a 189 'methodname' => 'delete_groups',
190 'classpath' => 'group/externallib.php',
0f4e72de
PS
191 'description' => 'Deletes all specified groups.',
192 'type' => 'delete',
72f68b51 193 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 194 ),
c863dc38 195
9a0df45a 196 'moodle_group_get_groupmembers' => array(
5d1017e1
JM
197 'classname' => 'core_group_external',
198 'methodname' => 'get_group_members',
199 'classpath' => 'group/externallib.php',
200 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_group_members()',
201 'type' => 'read',
202 'capabilities'=> 'moodle/course:managegroups',
203 ),
204
205 'core_group_get_group_members' => array(
206 'classname' => 'core_group_external',
207 'methodname' => 'get_group_members',
9a0df45a 208 'classpath' => 'group/externallib.php',
0f4e72de
PS
209 'description' => 'Returns group members.',
210 'type' => 'read',
72f68b51 211 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 212 ),
4efa2483 213
9a0df45a 214 'moodle_group_add_groupmembers' => array(
5d1017e1
JM
215 'classname' => 'core_group_external',
216 'methodname' => 'add_group_members',
217 'classpath' => 'group/externallib.php',
218 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_add_group_members()',
219 'type' => 'write',
220 'capabilities'=> 'moodle/course:managegroups',
221 ),
222
223 'core_group_add_group_members' => array(
224 'classname' => 'core_group_external',
225 'methodname' => 'add_group_members',
9a0df45a 226 'classpath' => 'group/externallib.php',
0f4e72de
PS
227 'description' => 'Adds group members.',
228 'type' => 'write',
72f68b51 229 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 230 ),
231
232 'moodle_group_delete_groupmembers' => array(
5d1017e1
JM
233 'classname' => 'core_group_external',
234 'methodname' => 'delete_group_members',
9a0df45a 235 'classpath' => 'group/externallib.php',
5d1017e1 236 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_group_members()',
0f4e72de 237 'type' => 'delete',
72f68b51 238 'capabilities'=> 'moodle/course:managegroups',
9a0df45a 239 ),
72f68b51 240
5d1017e1
JM
241 'core_group_delete_group_members' => array(
242 'classname' => 'core_group_external',
243 'methodname' => 'delete_group_members',
244 'classpath' => 'group/externallib.php',
245 'description' => 'Deletes group members.',
246 'type' => 'delete',
247 'capabilities'=> 'moodle/course:managegroups',
248 ),
72f68b51 249
7ce23590
JL
250 'core_group_create_groupings' => array(
251 'classname' => 'core_group_external',
252 'methodname' => 'create_groupings',
253 'classpath' => 'group/externallib.php',
254 'description' => 'Creates new groupings',
255 'type' => 'write',
256 ),
257
258 'core_group_update_groupings' => array(
259 'classname' => 'core_group_external',
260 'methodname' => 'update_groupings',
261 'classpath' => 'group/externallib.php',
262 'description' => 'Updates existing groupings',
263 'type' => 'write',
264 ),
265
266 'core_group_get_groupings' => array(
267 'classname' => 'core_group_external',
268 'methodname' => 'get_groupings',
269 'classpath' => 'group/externallib.php',
270 'description' => 'Returns groupings details.',
271 'type' => 'read',
272 ),
273
274 'core_group_get_course_groupings' => array(
67aa60f9
JL
275 'classname' => 'core_group_external',
276 'methodname' => 'get_course_groupings',
277 'classpath' => 'group/externallib.php',
278 'description' => 'Returns all groupings in specified course.',
279 'type' => 'read',
7ce23590
JL
280 ),
281
282 'core_group_delete_groupings' => array(
67aa60f9
JL
283 'classname' => 'core_group_external',
284 'methodname' => 'delete_groupings',
285 'classpath' => 'group/externallib.php',
286 'description' => 'Deletes all specified groupings.',
287 'type' => 'write',
7ce23590
JL
288 ),
289
290 'core_group_assign_grouping' => array(
67aa60f9
JL
291 'classname' => 'core_group_external',
292 'methodname' => 'assign_grouping',
293 'classpath' => 'group/externallib.php',
294 'description' => 'Assing groups from groupings',
295 'type' => 'write',
7ce23590
JL
296 ),
297
298 'core_group_unassign_grouping' => array(
67aa60f9
JL
299 'classname' => 'core_group_external',
300 'methodname' => 'unassign_grouping',
301 'classpath' => 'group/externallib.php',
302 'description' => 'Unassing groups from groupings',
303 'type' => 'write',
7ce23590
JL
304 ),
305
72f68b51 306 // === file related functions ===
307
249c4f60 308 'moodle_file_get_files' => array(
5d1017e1
JM
309 'classname' => 'core_files_external',
310 'methodname' => 'get_files',
311 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_get_files()',
312 'type' => 'read',
313 'classpath' => 'files/externallib.php',
314 ),
315
316 'core_files_get_files' => array(
317 'classname' => 'core_files_external',
249c4f60
DC
318 'methodname' => 'get_files',
319 'description' => 'browse moodle files',
320 'type' => 'read',
321 'classpath' => 'files/externallib.php',
322 ),
5d1017e1 323
249c4f60 324 'moodle_file_upload' => array(
5d1017e1
JM
325 'classname' => 'core_files_external',
326 'methodname' => 'upload',
327 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_upload()',
328 'type' => 'write',
329 'classpath' => 'files/externallib.php',
330 ),
331
332 'core_files_upload' => array(
333 'classname' => 'core_files_external',
249c4f60
DC
334 'methodname' => 'upload',
335 'description' => 'upload a file to moodle',
336 'type' => 'write',
337 'classpath' => 'files/externallib.php',
338 ),
4efa2483 339
ef22c1b6 340 // === user related functions ===
72f68b51 341
ef22c1b6 342 'moodle_user_create_users' => array(
5d1017e1
JM
343 'classname' => 'core_user_external',
344 'methodname' => 'create_users',
345 'classpath' => 'user/externallib.php',
346 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_create_users()',
347 'type' => 'write',
348 'capabilities'=> 'moodle/user:create',
349 ),
350
351 'core_user_create_users' => array(
352 'classname' => 'core_user_external',
ef22c1b6 353 'methodname' => 'create_users',
354 'classpath' => 'user/externallib.php',
fb79269b 355 'description' => 'Create users.',
356 'type' => 'write',
72f68b51 357 'capabilities'=> 'moodle/user:create',
ef22c1b6 358 ),
359
b0365ea5
JM
360 'core_user_get_users' => array(
361 'classname' => 'core_user_external',
362 'methodname' => 'get_users',
363 'classpath' => 'user/externallib.php',
364 'description' => 'search for users matching the parameters',
365 'type' => 'read',
366 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
367 ),
368
fb79269b 369 'moodle_user_get_users_by_id' => array(
5d1017e1
JM
370 'classname' => 'core_user_external',
371 'methodname' => 'get_users_by_id',
372 'classpath' => 'user/externallib.php',
373 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_users_by_id()',
374 'type' => 'read',
375 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
376 ),
377
c70b9853 378 'core_user_get_users_by_field' => array(
86477112 379 'classname' => 'core_user_external',
c70b9853 380 'methodname' => 'get_users_by_field',
86477112 381 'classpath' => 'user/externallib.php',
c70b9853 382 'description' => 'Retrieve users information for a specified unique field - If you want to do a user search, use core_user_get_users()',
86477112
FS
383 'type' => 'read',
384 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
385 ),
386
5d1017e1
JM
387 'core_user_get_users_by_id' => array(
388 'classname' => 'core_user_external',
fb79269b 389 'methodname' => 'get_users_by_id',
ef22c1b6 390 'classpath' => 'user/externallib.php',
41f5285f 391 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been replaced by core_user_get_users_by_field()',
fb79269b 392 'type' => 'read',
b4c74367 393 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
ef22c1b6 394 ),
395
01479290 396 'moodle_user_get_users_by_courseid' => array(
5d1017e1
JM
397 'classname' => 'core_enrol_external',
398 'methodname' => 'get_enrolled_users',
399 'classpath' => 'enrol/externallib.php',
400 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_enrolled_users()',
01479290
DC
401 'type' => 'read',
402 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
403 ),
404
ea4e96c2 405 'moodle_user_get_course_participants_by_id' => array(
5d1017e1
JM
406 'classname' => 'core_user_external',
407 'methodname' => 'get_course_user_profiles',
ea4e96c2 408 'classpath' => 'user/externallib.php',
5d1017e1
JM
409 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_course_user_profiles()',
410 'type' => 'read',
411 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
412 ),
413
414 'core_user_get_course_user_profiles' => array(
415 'classname' => 'core_user_external',
416 'methodname' => 'get_course_user_profiles',
417 'classpath' => 'user/externallib.php',
418 'description' => 'Get course user profiles (each of the profils matching a course id and a user id).',
ea4e96c2
DC
419 'type' => 'read',
420 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
421 ),
422
ef22c1b6 423 'moodle_user_delete_users' => array(
5d1017e1
JM
424 'classname' => 'core_user_external',
425 'methodname' => 'delete_users',
426 'classpath' => 'user/externallib.php',
427 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_delete_users()',
428 'type' => 'write',
429 'capabilities'=> 'moodle/user:delete',
430 ),
431
432 'core_user_delete_users' => array(
433 'classname' => 'core_user_external',
ef22c1b6 434 'methodname' => 'delete_users',
435 'classpath' => 'user/externallib.php',
fb79269b 436 'description' => 'Delete users.',
437 'type' => 'write',
72f68b51 438 'capabilities'=> 'moodle/user:delete',
ef22c1b6 439 ),
440
441 'moodle_user_update_users' => array(
5d1017e1
JM
442 'classname' => 'core_user_external',
443 'methodname' => 'update_users',
444 'classpath' => 'user/externallib.php',
445 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_update_users()',
446 'type' => 'write',
447 'capabilities'=> 'moodle/user:update',
448 ),
449
450 'core_user_update_users' => array(
451 'classname' => 'core_user_external',
ef22c1b6 452 'methodname' => 'update_users',
453 'classpath' => 'user/externallib.php',
fb79269b 454 'description' => 'Update users.',
455 'type' => 'write',
72f68b51 456 'capabilities'=> 'moodle/user:update',
ef22c1b6 457 ),
e9b66095 458
6a403810
JL
459 'core_user_add_user_device' => array(
460 'classname' => 'core_user_external',
461 'methodname' => 'add_user_device',
462 'classpath' => 'user/externallib.php',
463 'description' => 'Store mobile user devices information for PUSH Notifications.',
464 'type' => 'write',
465 'capabilities'=> '',
466 ),
467
72f68b51 468 // === enrol related functions ===
d0068cd0 469
b6b6c7ac
PC
470 'core_enrol_get_enrolled_users_with_capability' => array(
471 'classname' => 'core_enrol_external',
472 'methodname' => 'get_enrolled_users_with_capability',
473 'classpath' => 'enrol/externallib.php',
474 'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course
475 and have that capability',
476 'type' => 'read',
477 ),
72f68b51 478
df997f84
PS
479 'moodle_enrol_get_enrolled_users' => array(
480 'classname' => 'moodle_enrol_external',
481 'methodname' => 'get_enrolled_users',
482 'classpath' => 'enrol/externallib.php',
5d1017e1 483 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Please use core_enrol_get_enrolled_users() (previously known as moodle_user_get_users_by_courseid).',
df997f84 484 'type' => 'read',
72f68b51 485 'capabilities'=> 'moodle/site:viewparticipants, moodle/course:viewparticipants,
486 moodle/role:review, moodle/site:accessallgroups, moodle/course:enrolreview',
df997f84 487 ),
e6acc551 488
5d1017e1
JM
489 'core_enrol_get_enrolled_users' => array(
490 'classname' => 'core_enrol_external',
491 'methodname' => 'get_enrolled_users',
492 'classpath' => 'enrol/externallib.php',
493 'description' => 'Get enrolled users by course id.',
494 'type' => 'read',
495 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
496 ),
df997f84 497
3364dbb5 498 'moodle_enrol_get_users_courses' => array(
5d1017e1 499 'classname' => 'core_enrol_external',
3364dbb5
PS
500 'methodname' => 'get_users_courses',
501 'classpath' => 'enrol/externallib.php',
5d1017e1 502 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_users_courses()',
3364dbb5
PS
503 'type' => 'read',
504 'capabilities'=> 'moodle/course:viewparticipants',
505 ),
506
5d1017e1
JM
507 'core_enrol_get_users_courses' => array(
508 'classname' => 'core_enrol_external',
509 'methodname' => 'get_users_courses',
510 'classpath' => 'enrol/externallib.php',
511 'description' => 'Get the list of courses where a user is enrolled in',
512 'type' => 'read',
513 'capabilities'=> 'moodle/course:viewparticipants',
514 ),
515
be9bf94e
RT
516 'core_enrol_get_course_enrolment_methods' => array(
517 'classname' => 'core_enrol_external',
518 'methodname' => 'get_course_enrolment_methods',
519 'classpath' => 'enrol/externallib.php',
520 'description' => 'Get the list of course enrolment methods',
521 'type' => 'read',
522 ),
523
5d1017e1
JM
524 // === Role related functions ===
525
df997f84 526 'moodle_role_assign' => array(
5d1017e1
JM
527 'classname' => 'core_role_external',
528 'methodname' => 'assign_roles',
529 'classpath' => 'enrol/externallib.php',
530 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_assign_role()',
531 'type' => 'write',
532 'capabilities'=> 'moodle/role:assign',
533 ),
534
535 'core_role_assign_roles' => array(
536 'classname' => 'core_role_external',
537 'methodname' => 'assign_roles',
e9b66095 538 'classpath' => 'enrol/externallib.php',
df997f84 539 'description' => 'Manual role assignments.',
e9b66095 540 'type' => 'write',
72f68b51 541 'capabilities'=> 'moodle/role:assign',
e9b66095 542 ),
543
df997f84 544 'moodle_role_unassign' => array(
5d1017e1
JM
545 'classname' => 'core_role_external',
546 'methodname' => 'unassign_roles',
547 'classpath' => 'enrol/externallib.php',
548 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_unassign_role()',
549 'type' => 'write',
550 'capabilities'=> 'moodle/role:assign',
551 ),
552
553 'core_role_unassign_roles' => array(
554 'classname' => 'core_role_external',
555 'methodname' => 'unassign_roles',
e9b66095 556 'classpath' => 'enrol/externallib.php',
df997f84 557 'description' => 'Manual role unassignments.',
e9b66095 558 'type' => 'write',
72f68b51 559 'capabilities'=> 'moodle/role:assign',
e9b66095 560 ),
5b4a78e2 561
6bb31e40 562 // === course related functions ===
563
3ec163dd 564 'core_course_get_contents' => array(
d4a246bc 565 'classname' => 'core_course_external',
3ec163dd 566 'methodname' => 'get_course_contents',
d4a246bc 567 'classpath' => 'course/externallib.php',
3ec163dd 568 'description' => 'Get course contents',
d4a246bc 569 'type' => 'read',
3ec163dd 570 'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
f2229c68 571 ),
d6ebe011 572
6bb31e40 573 'moodle_course_get_courses' => array(
5d1017e1
JM
574 'classname' => 'core_course_external',
575 'methodname' => 'get_courses',
576 'classpath' => 'course/externallib.php',
577 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_get_courses()',
578 'type' => 'read',
579 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
580 ),
581
582 'core_course_get_courses' => array(
583 'classname' => 'core_course_external',
6bb31e40 584 'methodname' => 'get_courses',
585 'classpath' => 'course/externallib.php',
586 'description' => 'Return course details',
587 'type' => 'read',
588 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
589 ),
590
591 'moodle_course_create_courses' => array(
5d1017e1
JM
592 'classname' => 'core_course_external',
593 'methodname' => 'create_courses',
594 'classpath' => 'course/externallib.php',
595 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_create_courses()',
596 'type' => 'write',
597 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
598 ),
599
600 'core_course_create_courses' => array(
601 'classname' => 'core_course_external',
6bb31e40 602 'methodname' => 'create_courses',
603 'classpath' => 'course/externallib.php',
604 'description' => 'Create new courses',
605 'type' => 'write',
606 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
607 ),
608
63a85dc7
JL
609 'core_course_delete_courses' => array(
610 'classname' => 'core_course_external',
611 'methodname' => 'delete_courses',
612 'classpath' => 'course/externallib.php',
613 'description' => 'Deletes all specified courses',
614 'type' => 'write',
615 'capabilities'=> 'moodle/course:delete',
616 ),
617
79949c1b
MN
618 'core_course_delete_modules' => array(
619 'classname' => 'core_course_external',
620 'methodname' => 'delete_modules',
621 'classpath' => 'course/externallib.php',
622 'description' => 'Deletes all specified module instances',
623 'type' => 'write',
624 'capabilities' => 'moodle/course:manageactivities'
625 ),
626
3dc1d76e
JL
627 'core_course_duplicate_course' => array(
628 'classname' => 'core_course_external',
629 'methodname' => 'duplicate_course',
630 'classpath' => 'course/externallib.php',
631 'description' => 'Duplicate an existing course (creating a new one) without user data',
632 'type' => 'write',
633 'capabilities'=> 'moodle/backup:backupcourse,moodle/restore:restorecourse,moodle/course:create',
634 ),
635
791723c3
RT
636 'core_course_update_courses' => array(
637 'classname' => 'core_course_external',
638 'methodname' => 'update_courses',
639 'classpath' => 'course/externallib.php',
640 'description' => 'Update courses',
641 'type' => 'write',
642 'capabilities'=> 'moodle/course:update,moodle/course:changecategory,moodle/course:changefullname,moodle/course:changeshortname,moodle/course:changeidnumber,moodle/course:changesummary,moodle/course:visibility',
643 ),
644
3ec163dd
EL
645 // === course category related functions ===
646
647 'core_course_get_categories' => array(
648 'classname' => 'core_course_external',
649 'methodname' => 'get_categories',
650 'classpath' => 'course/externallib.php',
651 'description' => 'Return category details',
652 'type' => 'read',
653 'capabilities'=> 'moodle/category:viewhiddencategories',
654 ),
655
479a5db1
FS
656 'core_course_create_categories' => array(
657 'classname' => 'core_course_external',
658 'methodname' => 'create_categories',
659 'classpath' => 'course/externallib.php',
660 'description' => 'Create course categories',
661 'type' => 'write',
662 'capabilities'=> 'moodle/category:manage',
663 ),
d6ebe011 664
3ec163dd
EL
665 'core_course_update_categories' => array(
666 'classname' => 'core_course_external',
667 'methodname' => 'update_categories',
668 'classpath' => 'course/externallib.php',
669 'description' => 'Update categories',
670 'type' => 'write',
afe27edc 671 'capabilities'=> 'moodle/category:manage',
3ec163dd
EL
672 ),
673
2f951d86
FS
674 'core_course_delete_categories' => array(
675 'classname' => 'core_course_external',
676 'methodname' => 'delete_categories',
677 'classpath' => 'course/externallib.php',
678 'description' => 'Delete course categories',
679 'type' => 'write',
680 'capabilities'=> 'moodle/category:manage',
681 ),
479a5db1 682
8430d87b
JL
683 'core_course_import_course' => array(
684 'classname' => 'core_course_external',
685 'methodname' => 'import_course',
686 'classpath' => 'course/externallib.php',
687 'description' => 'Import course data from a course into another course. Does not include any user data.',
688 'type' => 'write',
689 'capabilities'=> 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport',
690 ),
691
a623b6b8
JM
692 // === message related functions ===
693
4de00da7 694 'moodle_message_send_instantmessages' => array(
5d1017e1
JM
695 'classname' => 'core_message_external',
696 'methodname' => 'send_instant_messages',
697 'classpath' => 'message/externallib.php',
698 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_message_send_instant_messages()',
699 'type' => 'write',
700 'capabilities'=> 'moodle/site:sendmessage',
701 ),
702
703 'core_message_send_instant_messages' => array(
704 'classname' => 'core_message_external',
705 'methodname' => 'send_instant_messages',
a623b6b8 706 'classpath' => 'message/externallib.php',
4de00da7 707 'description' => 'Send instant messages',
a623b6b8
JM
708 'type' => 'write',
709 'capabilities'=> 'moodle/site:sendmessage',
710 ),
711
d6731600
FM
712 'core_message_create_contacts' => array(
713 'classname' => 'core_message_external',
714 'methodname' => 'create_contacts',
715 'classpath' => 'message/externallib.php',
716 'description' => 'Add contacts to the contact list',
717 'type' => 'write',
718 'capabilities'=> '',
719 ),
720
721 'core_message_delete_contacts' => array(
722 'classname' => 'core_message_external',
723 'methodname' => 'delete_contacts',
724 'classpath' => 'message/externallib.php',
725 'description' => 'Remove contacts from the contact list',
726 'type' => 'write',
727 'capabilities'=> '',
728 ),
729
730 'core_message_block_contacts' => array(
731 'classname' => 'core_message_external',
732 'methodname' => 'block_contacts',
733 'classpath' => 'message/externallib.php',
734 'description' => 'Block contacts',
735 'type' => 'write',
736 'capabilities'=> '',
737 ),
738
739 'core_message_unblock_contacts' => array(
740 'classname' => 'core_message_external',
741 'methodname' => 'unblock_contacts',
742 'classpath' => 'message/externallib.php',
743 'description' => 'Unblock contacts',
744 'type' => 'write',
745 'capabilities'=> '',
746 ),
747
748 'core_message_get_contacts' => array(
749 'classname' => 'core_message_external',
750 'methodname' => 'get_contacts',
751 'classpath' => 'message/externallib.php',
752 'description' => 'Retrieve the contact list',
753 'type' => 'read',
754 'capabilities'=> '',
755 ),
756
757 'core_message_search_contacts' => array(
758 'classname' => 'core_message_external',
759 'methodname' => 'search_contacts',
760 'classpath' => 'message/externallib.php',
761 'description' => 'Search for contacts',
762 'type' => 'read',
763 'capabilities'=> '',
764 ),
765
aff9da17 766 'core_message_get_messages' => array(
6ff4464b
JL
767 'classname' => 'core_message_external',
768 'methodname' => 'get_messages',
769 'classpath' => 'message/externallib.php',
127ef540 770 'description' => 'Retrieve a list of messages sent and received by a user (conversations, notifications or both)',
6ff4464b
JL
771 'type' => 'read',
772 'capabilities' => '',
aff9da17
JL
773 ),
774
8d46dabb
JM
775 // === notes related functions ===
776
777 'moodle_notes_create_notes' => array(
5d1017e1
JM
778 'classname' => 'core_notes_external',
779 'methodname' => 'create_notes',
780 'classpath' => 'notes/externallib.php',
781 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_notes_create_notes()',
782 'type' => 'write',
783 'capabilities'=> 'moodle/notes:manage',
784 ),
785
786 'core_notes_create_notes' => array(
787 'classname' => 'core_notes_external',
8d46dabb
JM
788 'methodname' => 'create_notes',
789 'classpath' => 'notes/externallib.php',
790 'description' => 'Create notes',
791 'type' => 'write',
792 'capabilities'=> 'moodle/notes:manage',
793 ),
794
34348b2b
JF
795 'core_notes_delete_notes' => array(
796 'classname' => 'core_notes_external',
797 'methodname' => 'delete_notes',
798 'classpath' => 'notes/externallib.php',
799 'description' => 'Delete notes',
800 'type' => 'write',
801 'capabilities'=> 'moodle/notes:manage',
802 ),
803
804 'core_notes_get_notes' => array(
805 'classname' => 'core_notes_external',
806 'methodname' => 'get_notes',
807 'classpath' => 'notes/externallib.php',
808 'description' => 'Get notes',
809 'type' => 'read',
810 'capabilities'=> 'moodle/notes:view',
811 ),
812
813 'core_notes_update_notes' => array(
814 'classname' => 'core_notes_external',
815 'methodname' => 'update_notes',
816 'classpath' => 'notes/externallib.php',
817 'description' => 'Update notes',
818 'type' => 'write',
819 'capabilities'=> 'moodle/notes:manage',
820 ),
821
9028d9b5
PC
822 // === grading related functions ===
823
824 'core_grading_get_definitions' => array(
825 'classname' => 'core_grading_external',
826 'methodname' => 'get_definitions',
9028d9b5
PC
827 'description' => 'Get grading definitions',
828 'type' => 'read'
829 ),
3f0ea6d8
PC
830
831 'core_grade_get_definitions' => array(
832 'classname' => 'core_grade_external',
833 'methodname' => 'get_definitions',
834 'classpath' => 'grade/externallib.php',
9028d9b5
PC
835 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()',
836 'type' => 'read'
837 ),
838
0ff4ebb4
PC
839 'core_grading_save_definitions' => array(
840 'classname' => 'core_grading_external',
841 'methodname' => 'save_definitions',
842 'description' => 'Save grading definitions',
843 'type' => 'write'
844 ),
845
9028d9b5
PC
846 'core_grading_get_gradingform_instances' => array(
847 'classname' => 'core_grading_external',
848 'methodname' => 'get_gradingform_instances',
9028d9b5 849 'description' => 'Get grading form instances',
3f0ea6d8
PC
850 'type' => 'read'
851 ),
852
0bf486a6
JM
853 // === webservice related functions ===
854
855 'moodle_webservice_get_siteinfo' => array(
5d1017e1
JM
856 'classname' => 'core_webservice_external',
857 'methodname' => 'get_site_info',
858 'classpath' => 'webservice/externallib.php',
859 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_webservice_get_site_info()',
860 'type' => 'read',
861 ),
862
863 'core_webservice_get_site_info' => array(
864 'classname' => 'core_webservice_external',
865 'methodname' => 'get_site_info',
0bf486a6
JM
866 'classpath' => 'webservice/externallib.php',
867 'description' => 'Return some site info / user info / list web service functions',
868 'type' => 'read',
869 ),
870
11e76602
JM
871 'core_get_string' => array(
872 'classname' => 'core_external',
873 'methodname' => 'get_string',
874 'classpath' => 'lib/external/externallib.php',
875 'description' => 'Return a translated string - similar to core get_string() call',
876 'type' => 'read',
877 ),
878
879 'core_get_strings' => array(
880 'classname' => 'core_external',
881 'methodname' => 'get_strings',
882 'classpath' => 'lib/external/externallib.php',
883 'description' => 'Return some translated strings - like several core get_string() calls',
884 'type' => 'read',
885 ),
886
887 'core_get_component_strings' => array(
888 'classname' => 'core_external',
889 'methodname' => 'get_component_strings',
890 'classpath' => 'lib/external/externallib.php',
891 'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
892 - similar to core get_component_strings() call',
893 'type' => 'read',
894 ),
5e1350ab
AA
895
896
897 // === Calendar related functions ===
898
899 'core_calendar_delete_calendar_events' => array(
900 'classname' => 'core_calendar_external',
901 'methodname' => 'delete_calendar_events',
902 'description' => 'Delete calendar events',
903 'classpath' => 'calendar/externallib.php',
904 'type' => 'write',
905 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
906 ),
907
793d3855
AA
908
909 'core_calendar_get_calendar_events' => array(
910 'classname' => 'core_calendar_external',
911 'methodname' => 'get_calendar_events',
912 'description' => 'Get calendar events',
913 'classpath' => 'calendar/externallib.php',
914 'type' => 'read',
915 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
916 ),
917
c66dc3df
AA
918 'core_calendar_create_calendar_events' => array(
919 'classname' => 'core_calendar_external',
920 'methodname' => 'create_calendar_events',
921 'description' => 'Create calendar events',
922 'classpath' => 'calendar/externallib.php',
923 'type' => 'write',
924 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
925 ),
9a0df45a 926);
c1b65883
JM
927
928$services = array(
96e0194c
SH
929 'Moodle mobile web service' => array(
930 'functions' => array (
931 'moodle_enrol_get_users_courses',
932 'moodle_enrol_get_enrolled_users',
f2806b9a
JM
933 'moodle_user_get_users_by_id',
934 'moodle_webservice_get_siteinfo',
935 'moodle_notes_create_notes',
ea4e96c2 936 'moodle_user_get_course_participants_by_id',
01479290 937 'moodle_user_get_users_by_courseid',
ec0d6ea2 938 'moodle_message_send_instantmessages',
11e76602 939 'core_course_get_contents',
6a403810 940 'core_get_component_strings',
925f4d6b 941 'core_user_add_user_device',
cb9d8257
JL
942 'core_calendar_get_calendar_events',
943 'core_enrol_get_users_courses',
944 'core_enrol_get_enrolled_users',
945 'core_user_get_users_by_id',
946 'core_webservice_get_site_info',
947 'core_notes_create_notes',
948 'core_user_get_course_user_profiles',
949 'core_enrol_get_enrolled_users',
ba1dc597
JL
950 'core_message_send_instant_messages',
951 'mod_assign_get_grades',
952 'mod_assign_get_assignments',
953 'mod_assign_get_submissions',
954 'mod_assign_get_user_flags',
955 'mod_assign_set_user_flags',
956 'mod_assign_get_user_mappings',
957 'mod_assign_revert_submissions_to_draft',
958 'mod_assign_lock_submissions',
959 'mod_assign_unlock_submissions',
960 'mod_assign_save_submission',
961 'mod_assign_submit_for_grading',
962 'mod_assign_save_grade',
963 'mod_assign_save_user_extensions',
6acfacfa
JL
964 'mod_assign_reveal_identities',
965 'message_airnotifier_is_system_configured',
2e04d250 966 'message_airnotifier_are_notification_preferences_configured',
e2ede426
JL
967 'core_grades_update_grades',
968 'mod_forum_get_forums_by_courses',
2ce8934b 969 'mod_forum_get_forum_discussions_paginated',
feae0f9f 970 'mod_forum_get_forum_discussion_posts',
aff9da17 971 'core_files_get_files',
93872873
JL
972 'core_message_get_messages',
973 'core_message_create_contacts',
974 'core_message_delete_contacts',
975 'core_message_block_contacts',
976 'core_message_unblock_contacts',
977 'core_message_get_contacts',
978 'core_message_search_contacts'),
96e0194c
SH
979 'enabled' => 0,
980 'restrictedusers' => 0,
af03513f 981 'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE,
106c55fb
DW
982 'downloadfiles' => 1,
983 'uploadfiles' => 1
96e0194c
SH
984 ),
985);