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