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(
3c1aa6fd 125 'classname' => 'moodle_group_external',
5d1017e1
JM
126 'methodname' => 'create_groups',
127 'classpath' => 'group/externallib.php',
3c1aa6fd 128 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_create_groups(). ',
5d1017e1
JM
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(
3c1aa6fd 143 'classname' => 'moodle_group_external',
5d1017e1
JM
144 'methodname' => 'get_groups',
145 'classpath' => 'group/externallib.php',
3c1aa6fd 146 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_groups()',
5d1017e1
JM
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(
3c1aa6fd 161 'classname' => 'moodle_group_external',
5d1017e1
JM
162 'methodname' => 'get_course_groups',
163 'classpath' => 'group/externallib.php',
3c1aa6fd 164 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_course_groups()',
5d1017e1
JM
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(
3c1aa6fd 179 'classname' => 'moodle_group_external',
5d1017e1
JM
180 'methodname' => 'delete_groups',
181 'classpath' => 'group/externallib.php',
3c1aa6fd 182 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_delete_groups()',
5d1017e1
JM
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(
3c1aa6fd
DM
197 'classname' => 'moodle_group_external',
198 'methodname' => 'get_groupmembers',
5d1017e1 199 'classpath' => 'group/externallib.php',
3c1aa6fd 200 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_get_group_members()',
5d1017e1
JM
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(
3c1aa6fd
DM
215 'classname' => 'moodle_group_external',
216 'methodname' => 'add_groupmembers',
5d1017e1 217 'classpath' => 'group/externallib.php',
3c1aa6fd 218 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_group_add_group_members()',
5d1017e1
JM
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(
3c1aa6fd
DM
233 'classname' => 'moodle_group_external',
234 'methodname' => 'delete_groupmembers',
9a0df45a 235 'classpath' => 'group/externallib.php',
3c1aa6fd 236 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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(
3c1aa6fd 309 'classname' => 'moodle_file_external',
5d1017e1 310 'methodname' => 'get_files',
3c1aa6fd 311 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_files_get_files()',
5d1017e1
JM
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(
3c1aa6fd 325 'classname' => 'moodle_file_external',
5d1017e1 326 'methodname' => 'upload',
3c1aa6fd 327 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_files_upload()',
5d1017e1
JM
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(
3c1aa6fd 343 'classname' => 'moodle_user_external',
5d1017e1
JM
344 'methodname' => 'create_users',
345 'classpath' => 'user/externallib.php',
3c1aa6fd 346 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_create_users()',
5d1017e1
JM
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(
3c1aa6fd 370 'classname' => 'moodle_user_external',
5d1017e1
JM
371 'methodname' => 'get_users_by_id',
372 'classpath' => 'user/externallib.php',
3c1aa6fd 373 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Use core_user_get_users_by_field service instead',
5d1017e1
JM
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(
3c1aa6fd
DM
397 'classname' => 'moodle_user_external',
398 'methodname' => 'get_users_by_courseid',
399 'classpath' => 'user/externallib.php',
400 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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(
3c1aa6fd
DM
406 'classname' => 'moodle_user_external',
407 'methodname' => 'get_course_participants_by_id',
ea4e96c2 408 'classpath' => 'user/externallib.php',
3c1aa6fd 409 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_get_course_user_profiles()',
5d1017e1
JM
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(
3c1aa6fd 424 'classname' => 'moodle_user_external',
5d1017e1
JM
425 'methodname' => 'delete_users',
426 'classpath' => 'user/externallib.php',
3c1aa6fd 427 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_delete_users()',
5d1017e1
JM
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(
3c1aa6fd 442 'classname' => 'moodle_user_external',
5d1017e1
JM
443 'methodname' => 'update_users',
444 'classpath' => 'user/externallib.php',
3c1aa6fd 445 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_user_update_users()',
5d1017e1
JM
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(
3c1aa6fd 499 'classname' => 'moodle_enrol_external',
3364dbb5
PS
500 'methodname' => 'get_users_courses',
501 'classpath' => 'enrol/externallib.php',
3c1aa6fd 502 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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(
3c1aa6fd
DM
527 'classname' => 'moodle_enrol_external',
528 'methodname' => 'role_assign',
5d1017e1 529 'classpath' => 'enrol/externallib.php',
3c1aa6fd 530 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_assign_role()',
5d1017e1
JM
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(
3c1aa6fd
DM
545 'classname' => 'moodle_enrol_external',
546 'methodname' => 'role_unassign',
5d1017e1 547 'classpath' => 'enrol/externallib.php',
3c1aa6fd 548 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_unassign_role()',
5d1017e1
JM
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(
3c1aa6fd 574 'classname' => 'moodle_course_external',
5d1017e1
JM
575 'methodname' => 'get_courses',
576 'classpath' => 'course/externallib.php',
3c1aa6fd 577 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_get_courses()',
5d1017e1
JM
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(
3c1aa6fd 592 'classname' => 'moodle_course_external',
5d1017e1
JM
593 'methodname' => 'create_courses',
594 'classpath' => 'course/externallib.php',
3c1aa6fd 595 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_create_courses()',
5d1017e1
JM
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(
3c1aa6fd
DM
695 'classname' => 'moodle_message_external',
696 'methodname' => 'send_instantmessages',
5d1017e1 697 'classpath' => 'message/externallib.php',
3c1aa6fd 698 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_message_send_instant_messages()',
5d1017e1
JM
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
60ab2e1b
JL
775 'core_message_get_blocked_users' => array(
776 'classname' => 'core_message_external',
777 'methodname' => 'get_blocked_users',
778 'classpath' => 'message/externallib.php',
779 'description' => 'Retrieve a list of users blocked',
780 'type' => 'read',
781 'capabilities' => '',
782 ),
783
8d46dabb
JM
784 // === notes related functions ===
785
786 'moodle_notes_create_notes' => array(
3c1aa6fd 787 'classname' => 'moodle_notes_external',
5d1017e1
JM
788 'methodname' => 'create_notes',
789 'classpath' => 'notes/externallib.php',
3c1aa6fd 790 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_notes_create_notes()',
5d1017e1
JM
791 'type' => 'write',
792 'capabilities'=> 'moodle/notes:manage',
793 ),
794
795 'core_notes_create_notes' => array(
796 'classname' => 'core_notes_external',
8d46dabb
JM
797 'methodname' => 'create_notes',
798 'classpath' => 'notes/externallib.php',
799 'description' => 'Create notes',
800 'type' => 'write',
801 'capabilities'=> 'moodle/notes:manage',
802 ),
803
34348b2b
JF
804 'core_notes_delete_notes' => array(
805 'classname' => 'core_notes_external',
806 'methodname' => 'delete_notes',
807 'classpath' => 'notes/externallib.php',
808 'description' => 'Delete notes',
809 'type' => 'write',
810 'capabilities'=> 'moodle/notes:manage',
811 ),
812
813 'core_notes_get_notes' => array(
814 'classname' => 'core_notes_external',
815 'methodname' => 'get_notes',
816 'classpath' => 'notes/externallib.php',
817 'description' => 'Get notes',
818 'type' => 'read',
819 'capabilities'=> 'moodle/notes:view',
820 ),
821
822 'core_notes_update_notes' => array(
823 'classname' => 'core_notes_external',
824 'methodname' => 'update_notes',
825 'classpath' => 'notes/externallib.php',
826 'description' => 'Update notes',
827 'type' => 'write',
828 'capabilities'=> 'moodle/notes:manage',
829 ),
830
9028d9b5
PC
831 // === grading related functions ===
832
833 'core_grading_get_definitions' => array(
834 'classname' => 'core_grading_external',
835 'methodname' => 'get_definitions',
9028d9b5
PC
836 'description' => 'Get grading definitions',
837 'type' => 'read'
838 ),
3f0ea6d8
PC
839
840 'core_grade_get_definitions' => array(
841 'classname' => 'core_grade_external',
842 'methodname' => 'get_definitions',
843 'classpath' => 'grade/externallib.php',
9028d9b5
PC
844 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()',
845 'type' => 'read'
846 ),
847
0ff4ebb4
PC
848 'core_grading_save_definitions' => array(
849 'classname' => 'core_grading_external',
850 'methodname' => 'save_definitions',
851 'description' => 'Save grading definitions',
852 'type' => 'write'
853 ),
854
9028d9b5
PC
855 'core_grading_get_gradingform_instances' => array(
856 'classname' => 'core_grading_external',
857 'methodname' => 'get_gradingform_instances',
9028d9b5 858 'description' => 'Get grading form instances',
3f0ea6d8
PC
859 'type' => 'read'
860 ),
861
0bf486a6
JM
862 // === webservice related functions ===
863
864 'moodle_webservice_get_siteinfo' => array(
3c1aa6fd
DM
865 'classname' => 'moodle_webservice_external',
866 'methodname' => 'get_siteinfo',
5d1017e1 867 'classpath' => 'webservice/externallib.php',
3c1aa6fd 868 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_webservice_get_site_info()',
5d1017e1
JM
869 'type' => 'read',
870 ),
871
872 'core_webservice_get_site_info' => array(
873 'classname' => 'core_webservice_external',
874 'methodname' => 'get_site_info',
0bf486a6
JM
875 'classpath' => 'webservice/externallib.php',
876 'description' => 'Return some site info / user info / list web service functions',
877 'type' => 'read',
878 ),
879
11e76602
JM
880 'core_get_string' => array(
881 'classname' => 'core_external',
882 'methodname' => 'get_string',
883 'classpath' => 'lib/external/externallib.php',
884 'description' => 'Return a translated string - similar to core get_string() call',
885 'type' => 'read',
886 ),
887
888 'core_get_strings' => array(
889 'classname' => 'core_external',
890 'methodname' => 'get_strings',
891 'classpath' => 'lib/external/externallib.php',
892 'description' => 'Return some translated strings - like several core get_string() calls',
893 'type' => 'read',
894 ),
895
896 'core_get_component_strings' => array(
897 'classname' => 'core_external',
898 'methodname' => 'get_component_strings',
899 'classpath' => 'lib/external/externallib.php',
900 'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
901 - similar to core get_component_strings() call',
902 'type' => 'read',
903 ),
5e1350ab
AA
904
905
906 // === Calendar related functions ===
907
908 'core_calendar_delete_calendar_events' => array(
909 'classname' => 'core_calendar_external',
910 'methodname' => 'delete_calendar_events',
911 'description' => 'Delete calendar events',
912 'classpath' => 'calendar/externallib.php',
913 'type' => 'write',
914 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
915 ),
916
793d3855
AA
917
918 'core_calendar_get_calendar_events' => array(
919 'classname' => 'core_calendar_external',
920 'methodname' => 'get_calendar_events',
921 'description' => 'Get calendar events',
922 'classpath' => 'calendar/externallib.php',
923 'type' => 'read',
924 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
925 ),
926
c66dc3df
AA
927 'core_calendar_create_calendar_events' => array(
928 'classname' => 'core_calendar_external',
929 'methodname' => 'create_calendar_events',
930 'description' => 'Create calendar events',
931 'classpath' => 'calendar/externallib.php',
932 'type' => 'write',
933 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
934 ),
9a0df45a 935);
c1b65883
JM
936
937$services = array(
96e0194c
SH
938 'Moodle mobile web service' => array(
939 'functions' => array (
940 'moodle_enrol_get_users_courses',
941 'moodle_enrol_get_enrolled_users',
f2806b9a
JM
942 'moodle_user_get_users_by_id',
943 'moodle_webservice_get_siteinfo',
944 'moodle_notes_create_notes',
ea4e96c2 945 'moodle_user_get_course_participants_by_id',
01479290 946 'moodle_user_get_users_by_courseid',
ec0d6ea2 947 'moodle_message_send_instantmessages',
11e76602 948 'core_course_get_contents',
6a403810 949 'core_get_component_strings',
925f4d6b 950 'core_user_add_user_device',
cb9d8257
JL
951 'core_calendar_get_calendar_events',
952 'core_enrol_get_users_courses',
953 'core_enrol_get_enrolled_users',
954 'core_user_get_users_by_id',
955 'core_webservice_get_site_info',
956 'core_notes_create_notes',
957 'core_user_get_course_user_profiles',
ba1dc597
JL
958 'core_message_send_instant_messages',
959 'mod_assign_get_grades',
960 'mod_assign_get_assignments',
961 'mod_assign_get_submissions',
962 'mod_assign_get_user_flags',
963 'mod_assign_set_user_flags',
964 'mod_assign_get_user_mappings',
965 'mod_assign_revert_submissions_to_draft',
966 'mod_assign_lock_submissions',
967 'mod_assign_unlock_submissions',
968 'mod_assign_save_submission',
969 'mod_assign_submit_for_grading',
970 'mod_assign_save_grade',
971 'mod_assign_save_user_extensions',
6acfacfa
JL
972 'mod_assign_reveal_identities',
973 'message_airnotifier_is_system_configured',
2e04d250 974 'message_airnotifier_are_notification_preferences_configured',
e2ede426
JL
975 'core_grades_update_grades',
976 'mod_forum_get_forums_by_courses',
2ce8934b 977 'mod_forum_get_forum_discussions_paginated',
feae0f9f 978 'mod_forum_get_forum_discussion_posts',
aff9da17 979 'core_files_get_files',
93872873
JL
980 'core_message_get_messages',
981 'core_message_create_contacts',
982 'core_message_delete_contacts',
983 'core_message_block_contacts',
984 'core_message_unblock_contacts',
985 'core_message_get_contacts',
60ab2e1b 986 'core_message_search_contacts',
3a2ba746
JL
987 'core_message_get_blocked_users',
988 'gradereport_user_get_grades_table'
60ab2e1b 989 ),
96e0194c
SH
990 'enabled' => 0,
991 'restrictedusers' => 0,
af03513f 992 'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE,
106c55fb
DW
993 'downloadfiles' => 1,
994 'uploadfiles' => 1
96e0194c
SH
995 ),
996);