MDL-48716 webservices: New ws core_user_remove_user_device
[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
3221718e
JL
468 'core_user_remove_user_device' => array(
469 'classname' => 'core_user_external',
470 'methodname' => 'remove_user_device',
471 'classpath' => 'user/externallib.php',
472 'description' => 'Remove a user device from the Moodle database.',
473 'type' => 'write',
474 'capabilities' => '',
475 ),
476
72f68b51 477 // === enrol related functions ===
d0068cd0 478
b6b6c7ac
PC
479 'core_enrol_get_enrolled_users_with_capability' => array(
480 'classname' => 'core_enrol_external',
481 'methodname' => 'get_enrolled_users_with_capability',
482 'classpath' => 'enrol/externallib.php',
483 'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course
484 and have that capability',
485 'type' => 'read',
486 ),
72f68b51 487
df997f84
PS
488 'moodle_enrol_get_enrolled_users' => array(
489 'classname' => 'moodle_enrol_external',
490 'methodname' => 'get_enrolled_users',
491 'classpath' => 'enrol/externallib.php',
5d1017e1 492 '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 493 'type' => 'read',
72f68b51 494 'capabilities'=> 'moodle/site:viewparticipants, moodle/course:viewparticipants,
495 moodle/role:review, moodle/site:accessallgroups, moodle/course:enrolreview',
df997f84 496 ),
e6acc551 497
5d1017e1
JM
498 'core_enrol_get_enrolled_users' => array(
499 'classname' => 'core_enrol_external',
500 'methodname' => 'get_enrolled_users',
501 'classpath' => 'enrol/externallib.php',
502 'description' => 'Get enrolled users by course id.',
503 'type' => 'read',
504 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups',
505 ),
df997f84 506
3364dbb5 507 'moodle_enrol_get_users_courses' => array(
3c1aa6fd 508 'classname' => 'moodle_enrol_external',
3364dbb5
PS
509 'methodname' => 'get_users_courses',
510 'classpath' => 'enrol/externallib.php',
3c1aa6fd 511 '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
512 'type' => 'read',
513 'capabilities'=> 'moodle/course:viewparticipants',
514 ),
515
5d1017e1
JM
516 'core_enrol_get_users_courses' => array(
517 'classname' => 'core_enrol_external',
518 'methodname' => 'get_users_courses',
519 'classpath' => 'enrol/externallib.php',
520 'description' => 'Get the list of courses where a user is enrolled in',
521 'type' => 'read',
522 'capabilities'=> 'moodle/course:viewparticipants',
523 ),
524
be9bf94e
RT
525 'core_enrol_get_course_enrolment_methods' => array(
526 'classname' => 'core_enrol_external',
527 'methodname' => 'get_course_enrolment_methods',
528 'classpath' => 'enrol/externallib.php',
529 'description' => 'Get the list of course enrolment methods',
530 'type' => 'read',
531 ),
532
5d1017e1
JM
533 // === Role related functions ===
534
df997f84 535 'moodle_role_assign' => array(
3c1aa6fd
DM
536 'classname' => 'moodle_enrol_external',
537 'methodname' => 'role_assign',
5d1017e1 538 'classpath' => 'enrol/externallib.php',
3c1aa6fd 539 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_assign_role()',
5d1017e1
JM
540 'type' => 'write',
541 'capabilities'=> 'moodle/role:assign',
542 ),
543
544 'core_role_assign_roles' => array(
545 'classname' => 'core_role_external',
546 'methodname' => 'assign_roles',
e9b66095 547 'classpath' => 'enrol/externallib.php',
df997f84 548 'description' => 'Manual role assignments.',
e9b66095 549 'type' => 'write',
72f68b51 550 'capabilities'=> 'moodle/role:assign',
e9b66095 551 ),
552
df997f84 553 'moodle_role_unassign' => array(
3c1aa6fd
DM
554 'classname' => 'moodle_enrol_external',
555 'methodname' => 'role_unassign',
5d1017e1 556 'classpath' => 'enrol/externallib.php',
3c1aa6fd 557 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_role_unassign_role()',
5d1017e1
JM
558 'type' => 'write',
559 'capabilities'=> 'moodle/role:assign',
560 ),
561
562 'core_role_unassign_roles' => array(
563 'classname' => 'core_role_external',
564 'methodname' => 'unassign_roles',
e9b66095 565 'classpath' => 'enrol/externallib.php',
df997f84 566 'description' => 'Manual role unassignments.',
e9b66095 567 'type' => 'write',
72f68b51 568 'capabilities'=> 'moodle/role:assign',
e9b66095 569 ),
5b4a78e2 570
6bb31e40 571 // === course related functions ===
572
3ec163dd 573 'core_course_get_contents' => array(
d4a246bc 574 'classname' => 'core_course_external',
3ec163dd 575 'methodname' => 'get_course_contents',
d4a246bc 576 'classpath' => 'course/externallib.php',
3ec163dd 577 'description' => 'Get course contents',
d4a246bc 578 'type' => 'read',
3ec163dd 579 'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
f2229c68 580 ),
d6ebe011 581
6bb31e40 582 'moodle_course_get_courses' => array(
3c1aa6fd 583 'classname' => 'moodle_course_external',
5d1017e1
JM
584 'methodname' => 'get_courses',
585 'classpath' => 'course/externallib.php',
3c1aa6fd 586 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_get_courses()',
5d1017e1
JM
587 'type' => 'read',
588 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
589 ),
590
591 'core_course_get_courses' => array(
592 'classname' => 'core_course_external',
6bb31e40 593 'methodname' => 'get_courses',
594 'classpath' => 'course/externallib.php',
595 'description' => 'Return course details',
596 'type' => 'read',
597 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses',
598 ),
599
600 'moodle_course_create_courses' => array(
3c1aa6fd 601 'classname' => 'moodle_course_external',
5d1017e1
JM
602 'methodname' => 'create_courses',
603 'classpath' => 'course/externallib.php',
3c1aa6fd 604 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_course_create_courses()',
5d1017e1
JM
605 'type' => 'write',
606 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
607 ),
608
609 'core_course_create_courses' => array(
610 'classname' => 'core_course_external',
6bb31e40 611 'methodname' => 'create_courses',
612 'classpath' => 'course/externallib.php',
613 'description' => 'Create new courses',
614 'type' => 'write',
615 'capabilities'=> 'moodle/course:create,moodle/course:visibility',
616 ),
617
63a85dc7
JL
618 'core_course_delete_courses' => array(
619 'classname' => 'core_course_external',
620 'methodname' => 'delete_courses',
621 'classpath' => 'course/externallib.php',
622 'description' => 'Deletes all specified courses',
623 'type' => 'write',
624 'capabilities'=> 'moodle/course:delete',
625 ),
626
79949c1b
MN
627 'core_course_delete_modules' => array(
628 'classname' => 'core_course_external',
629 'methodname' => 'delete_modules',
630 'classpath' => 'course/externallib.php',
631 'description' => 'Deletes all specified module instances',
632 'type' => 'write',
633 'capabilities' => 'moodle/course:manageactivities'
634 ),
635
3dc1d76e
JL
636 'core_course_duplicate_course' => array(
637 'classname' => 'core_course_external',
638 'methodname' => 'duplicate_course',
639 'classpath' => 'course/externallib.php',
640 'description' => 'Duplicate an existing course (creating a new one) without user data',
641 'type' => 'write',
642 'capabilities'=> 'moodle/backup:backupcourse,moodle/restore:restorecourse,moodle/course:create',
643 ),
644
791723c3
RT
645 'core_course_update_courses' => array(
646 'classname' => 'core_course_external',
647 'methodname' => 'update_courses',
648 'classpath' => 'course/externallib.php',
649 'description' => 'Update courses',
650 'type' => 'write',
651 'capabilities'=> 'moodle/course:update,moodle/course:changecategory,moodle/course:changefullname,moodle/course:changeshortname,moodle/course:changeidnumber,moodle/course:changesummary,moodle/course:visibility',
652 ),
653
3ec163dd
EL
654 // === course category related functions ===
655
656 'core_course_get_categories' => array(
657 'classname' => 'core_course_external',
658 'methodname' => 'get_categories',
659 'classpath' => 'course/externallib.php',
660 'description' => 'Return category details',
661 'type' => 'read',
662 'capabilities'=> 'moodle/category:viewhiddencategories',
663 ),
664
479a5db1
FS
665 'core_course_create_categories' => array(
666 'classname' => 'core_course_external',
667 'methodname' => 'create_categories',
668 'classpath' => 'course/externallib.php',
669 'description' => 'Create course categories',
670 'type' => 'write',
671 'capabilities'=> 'moodle/category:manage',
672 ),
d6ebe011 673
3ec163dd
EL
674 'core_course_update_categories' => array(
675 'classname' => 'core_course_external',
676 'methodname' => 'update_categories',
677 'classpath' => 'course/externallib.php',
678 'description' => 'Update categories',
679 'type' => 'write',
afe27edc 680 'capabilities'=> 'moodle/category:manage',
3ec163dd
EL
681 ),
682
2f951d86
FS
683 'core_course_delete_categories' => array(
684 'classname' => 'core_course_external',
685 'methodname' => 'delete_categories',
686 'classpath' => 'course/externallib.php',
687 'description' => 'Delete course categories',
688 'type' => 'write',
689 'capabilities'=> 'moodle/category:manage',
690 ),
479a5db1 691
8430d87b
JL
692 'core_course_import_course' => array(
693 'classname' => 'core_course_external',
694 'methodname' => 'import_course',
695 'classpath' => 'course/externallib.php',
696 'description' => 'Import course data from a course into another course. Does not include any user data.',
697 'type' => 'write',
698 'capabilities'=> 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport',
699 ),
700
a623b6b8
JM
701 // === message related functions ===
702
4de00da7 703 'moodle_message_send_instantmessages' => array(
3c1aa6fd
DM
704 'classname' => 'moodle_message_external',
705 'methodname' => 'send_instantmessages',
5d1017e1 706 'classpath' => 'message/externallib.php',
3c1aa6fd 707 '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
708 'type' => 'write',
709 'capabilities'=> 'moodle/site:sendmessage',
710 ),
711
712 'core_message_send_instant_messages' => array(
713 'classname' => 'core_message_external',
714 'methodname' => 'send_instant_messages',
a623b6b8 715 'classpath' => 'message/externallib.php',
4de00da7 716 'description' => 'Send instant messages',
a623b6b8
JM
717 'type' => 'write',
718 'capabilities'=> 'moodle/site:sendmessage',
719 ),
720
d6731600
FM
721 'core_message_create_contacts' => array(
722 'classname' => 'core_message_external',
723 'methodname' => 'create_contacts',
724 'classpath' => 'message/externallib.php',
725 'description' => 'Add contacts to the contact list',
726 'type' => 'write',
727 'capabilities'=> '',
728 ),
729
730 'core_message_delete_contacts' => array(
731 'classname' => 'core_message_external',
732 'methodname' => 'delete_contacts',
733 'classpath' => 'message/externallib.php',
734 'description' => 'Remove contacts from the contact list',
735 'type' => 'write',
736 'capabilities'=> '',
737 ),
738
739 'core_message_block_contacts' => array(
740 'classname' => 'core_message_external',
741 'methodname' => 'block_contacts',
742 'classpath' => 'message/externallib.php',
743 'description' => 'Block contacts',
744 'type' => 'write',
745 'capabilities'=> '',
746 ),
747
748 'core_message_unblock_contacts' => array(
749 'classname' => 'core_message_external',
750 'methodname' => 'unblock_contacts',
751 'classpath' => 'message/externallib.php',
752 'description' => 'Unblock contacts',
753 'type' => 'write',
754 'capabilities'=> '',
755 ),
756
757 'core_message_get_contacts' => array(
758 'classname' => 'core_message_external',
759 'methodname' => 'get_contacts',
760 'classpath' => 'message/externallib.php',
761 'description' => 'Retrieve the contact list',
762 'type' => 'read',
763 'capabilities'=> '',
764 ),
765
766 'core_message_search_contacts' => array(
767 'classname' => 'core_message_external',
768 'methodname' => 'search_contacts',
769 'classpath' => 'message/externallib.php',
770 'description' => 'Search for contacts',
771 'type' => 'read',
772 'capabilities'=> '',
773 ),
774
aff9da17 775 'core_message_get_messages' => array(
6ff4464b
JL
776 'classname' => 'core_message_external',
777 'methodname' => 'get_messages',
778 'classpath' => 'message/externallib.php',
127ef540 779 'description' => 'Retrieve a list of messages sent and received by a user (conversations, notifications or both)',
6ff4464b
JL
780 'type' => 'read',
781 'capabilities' => '',
aff9da17
JL
782 ),
783
60ab2e1b
JL
784 'core_message_get_blocked_users' => array(
785 'classname' => 'core_message_external',
786 'methodname' => 'get_blocked_users',
787 'classpath' => 'message/externallib.php',
788 'description' => 'Retrieve a list of users blocked',
789 'type' => 'read',
790 'capabilities' => '',
791 ),
792
8d46dabb
JM
793 // === notes related functions ===
794
795 'moodle_notes_create_notes' => array(
3c1aa6fd 796 'classname' => 'moodle_notes_external',
5d1017e1
JM
797 'methodname' => 'create_notes',
798 'classpath' => 'notes/externallib.php',
3c1aa6fd 799 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_notes_create_notes()',
5d1017e1
JM
800 'type' => 'write',
801 'capabilities'=> 'moodle/notes:manage',
802 ),
803
804 'core_notes_create_notes' => array(
805 'classname' => 'core_notes_external',
8d46dabb
JM
806 'methodname' => 'create_notes',
807 'classpath' => 'notes/externallib.php',
808 'description' => 'Create notes',
809 'type' => 'write',
810 'capabilities'=> 'moodle/notes:manage',
811 ),
812
34348b2b
JF
813 'core_notes_delete_notes' => array(
814 'classname' => 'core_notes_external',
815 'methodname' => 'delete_notes',
816 'classpath' => 'notes/externallib.php',
817 'description' => 'Delete notes',
818 'type' => 'write',
819 'capabilities'=> 'moodle/notes:manage',
820 ),
821
822 'core_notes_get_notes' => array(
823 'classname' => 'core_notes_external',
824 'methodname' => 'get_notes',
825 'classpath' => 'notes/externallib.php',
826 'description' => 'Get notes',
827 'type' => 'read',
828 'capabilities'=> 'moodle/notes:view',
829 ),
830
831 'core_notes_update_notes' => array(
832 'classname' => 'core_notes_external',
833 'methodname' => 'update_notes',
834 'classpath' => 'notes/externallib.php',
835 'description' => 'Update notes',
836 'type' => 'write',
837 'capabilities'=> 'moodle/notes:manage',
838 ),
839
9028d9b5
PC
840 // === grading related functions ===
841
842 'core_grading_get_definitions' => array(
843 'classname' => 'core_grading_external',
844 'methodname' => 'get_definitions',
9028d9b5
PC
845 'description' => 'Get grading definitions',
846 'type' => 'read'
847 ),
3f0ea6d8
PC
848
849 'core_grade_get_definitions' => array(
850 'classname' => 'core_grade_external',
851 'methodname' => 'get_definitions',
852 'classpath' => 'grade/externallib.php',
9028d9b5
PC
853 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()',
854 'type' => 'read'
855 ),
856
0ff4ebb4
PC
857 'core_grading_save_definitions' => array(
858 'classname' => 'core_grading_external',
859 'methodname' => 'save_definitions',
860 'description' => 'Save grading definitions',
861 'type' => 'write'
862 ),
863
9028d9b5
PC
864 'core_grading_get_gradingform_instances' => array(
865 'classname' => 'core_grading_external',
866 'methodname' => 'get_gradingform_instances',
9028d9b5 867 'description' => 'Get grading form instances',
3f0ea6d8
PC
868 'type' => 'read'
869 ),
870
0bf486a6
JM
871 // === webservice related functions ===
872
873 'moodle_webservice_get_siteinfo' => array(
3c1aa6fd
DM
874 'classname' => 'moodle_webservice_external',
875 'methodname' => 'get_siteinfo',
5d1017e1 876 'classpath' => 'webservice/externallib.php',
3c1aa6fd 877 '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
878 'type' => 'read',
879 ),
880
881 'core_webservice_get_site_info' => array(
882 'classname' => 'core_webservice_external',
883 'methodname' => 'get_site_info',
0bf486a6
JM
884 'classpath' => 'webservice/externallib.php',
885 'description' => 'Return some site info / user info / list web service functions',
886 'type' => 'read',
887 ),
888
11e76602
JM
889 'core_get_string' => array(
890 'classname' => 'core_external',
891 'methodname' => 'get_string',
892 'classpath' => 'lib/external/externallib.php',
893 'description' => 'Return a translated string - similar to core get_string() call',
894 'type' => 'read',
895 ),
896
897 'core_get_strings' => array(
898 'classname' => 'core_external',
899 'methodname' => 'get_strings',
900 'classpath' => 'lib/external/externallib.php',
901 'description' => 'Return some translated strings - like several core get_string() calls',
902 'type' => 'read',
903 ),
904
905 'core_get_component_strings' => array(
906 'classname' => 'core_external',
907 'methodname' => 'get_component_strings',
908 'classpath' => 'lib/external/externallib.php',
909 'description' => 'Return all raw strings (with {$a->xxx}) for a specific component
910 - similar to core get_component_strings() call',
911 'type' => 'read',
912 ),
5e1350ab
AA
913
914
915 // === Calendar related functions ===
916
917 'core_calendar_delete_calendar_events' => array(
918 'classname' => 'core_calendar_external',
919 'methodname' => 'delete_calendar_events',
920 'description' => 'Delete calendar events',
921 'classpath' => 'calendar/externallib.php',
922 'type' => 'write',
923 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
924 ),
925
793d3855
AA
926
927 'core_calendar_get_calendar_events' => array(
928 'classname' => 'core_calendar_external',
929 'methodname' => 'get_calendar_events',
930 'description' => 'Get calendar events',
931 'classpath' => 'calendar/externallib.php',
932 'type' => 'read',
933 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
934 ),
935
c66dc3df
AA
936 'core_calendar_create_calendar_events' => array(
937 'classname' => 'core_calendar_external',
938 'methodname' => 'create_calendar_events',
939 'description' => 'Create calendar events',
940 'classpath' => 'calendar/externallib.php',
941 'type' => 'write',
942 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries'
943 ),
9a0df45a 944);
c1b65883
JM
945
946$services = array(
96e0194c
SH
947 'Moodle mobile web service' => array(
948 'functions' => array (
949 'moodle_enrol_get_users_courses',
950 'moodle_enrol_get_enrolled_users',
f2806b9a
JM
951 'moodle_user_get_users_by_id',
952 'moodle_webservice_get_siteinfo',
953 'moodle_notes_create_notes',
ea4e96c2 954 'moodle_user_get_course_participants_by_id',
01479290 955 'moodle_user_get_users_by_courseid',
ec0d6ea2 956 'moodle_message_send_instantmessages',
11e76602 957 'core_course_get_contents',
6a403810 958 'core_get_component_strings',
925f4d6b 959 'core_user_add_user_device',
cb9d8257
JL
960 'core_calendar_get_calendar_events',
961 'core_enrol_get_users_courses',
962 'core_enrol_get_enrolled_users',
963 'core_user_get_users_by_id',
964 'core_webservice_get_site_info',
965 'core_notes_create_notes',
966 'core_user_get_course_user_profiles',
ba1dc597
JL
967 'core_message_send_instant_messages',
968 'mod_assign_get_grades',
969 'mod_assign_get_assignments',
970 'mod_assign_get_submissions',
971 'mod_assign_get_user_flags',
972 'mod_assign_set_user_flags',
973 'mod_assign_get_user_mappings',
974 'mod_assign_revert_submissions_to_draft',
975 'mod_assign_lock_submissions',
976 'mod_assign_unlock_submissions',
977 'mod_assign_save_submission',
978 'mod_assign_submit_for_grading',
979 'mod_assign_save_grade',
980 'mod_assign_save_user_extensions',
6acfacfa
JL
981 'mod_assign_reveal_identities',
982 'message_airnotifier_is_system_configured',
2e04d250 983 'message_airnotifier_are_notification_preferences_configured',
e2ede426
JL
984 'core_grades_update_grades',
985 'mod_forum_get_forums_by_courses',
2ce8934b 986 'mod_forum_get_forum_discussions_paginated',
feae0f9f 987 'mod_forum_get_forum_discussion_posts',
aff9da17 988 'core_files_get_files',
93872873
JL
989 'core_message_get_messages',
990 'core_message_create_contacts',
991 'core_message_delete_contacts',
992 'core_message_block_contacts',
993 'core_message_unblock_contacts',
994 'core_message_get_contacts',
60ab2e1b 995 'core_message_search_contacts',
3a2ba746 996 'core_message_get_blocked_users',
3221718e
JL
997 'gradereport_user_get_grades_table',
998 'core_user_remove_user_device'
60ab2e1b 999 ),
96e0194c
SH
1000 'enabled' => 0,
1001 'restrictedusers' => 0,
af03513f 1002 'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE,
106c55fb
DW
1003 'downloadfiles' => 1,
1004 'uploadfiles' => 1
96e0194c
SH
1005 ),
1006);