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