Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.

Differences Between: [Versions 310 and 403] [Versions 311 and 403] [Versions 39 and 403] [Versions 400 and 403] [Versions 401 and 403] [Versions 402 and 403]

   1  <?php
   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  /**
  17   * Chat external functions and service definitions.
  18   *
  19   * @package    tool_dataprivacy
  20   * @category   external
  21   * @copyright  2018 Jun Pataleta <jun@moodle.com>
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  defined('MOODLE_INTERNAL') || die;
  25  $functions = [
  26      'tool_dataprivacy_cancel_data_request' => [
  27          'classname'     => 'tool_dataprivacy\external',
  28          'methodname'    => 'cancel_data_request',
  29          'classpath'     => '',
  30          'description'   => 'Cancel the data request made by the user',
  31          'type'          => 'write',
  32          'capabilities'  => '',
  33          'ajax'          => true,
  34          'loginrequired' => true,
  35      ],
  36      'tool_dataprivacy_contact_dpo' => [
  37          'classname'     => 'tool_dataprivacy\external',
  38          'methodname'    => 'contact_dpo',
  39          'classpath'     => '',
  40          'description'   => 'Contact the site Data Protection Officer(s)',
  41          'type'          => 'write',
  42          'capabilities'  => '',
  43          'ajax'          => true,
  44          'loginrequired' => true,
  45      ],
  46      'tool_dataprivacy_mark_complete' => [
  47          'classname'     => 'tool_dataprivacy\external',
  48          'methodname'    => 'mark_complete',
  49          'classpath'     => '',
  50          'description'   => 'Mark a user\'s general enquiry as complete',
  51          'type'          => 'write',
  52          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  53          'ajax'          => true,
  54          'loginrequired' => true,
  55      ],
  56      'tool_dataprivacy_get_data_request' => [
  57          'classname'     => 'tool_dataprivacy\external',
  58          'methodname'    => 'get_data_request',
  59          'classpath'     => '',
  60          'description'   => 'Fetch the details of a user\'s data request',
  61          'type'          => 'read',
  62          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  63          'ajax'          => true,
  64          'loginrequired' => true,
  65      ],
  66      'tool_dataprivacy_approve_data_request' => [
  67          'classname'     => 'tool_dataprivacy\external',
  68          'methodname'    => 'approve_data_request',
  69          'classpath'     => '',
  70          'description'   => 'Approve a data request',
  71          'type'          => 'write',
  72          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  73          'ajax'          => true,
  74          'loginrequired' => true,
  75      ],
  76      'tool_dataprivacy_submit_selected_courses_form' => [
  77          'classname'     => 'tool_dataprivacy\external\submit_selected_courses_form',
  78          'description'   => 'Save list of selected courses for export',
  79          'type'          => 'write',
  80          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  81          'ajax'          => true,
  82          'loginrequired' => true,
  83      ],
  84      'tool_dataprivacy_bulk_approve_data_requests' => [
  85          'classname'     => 'tool_dataprivacy\external',
  86          'methodname'    => 'bulk_approve_data_requests',
  87          'classpath'     => '',
  88          'description'   => 'Bulk approve data requests',
  89          'type'          => 'write',
  90          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  91          'ajax'          => true,
  92          'loginrequired' => true,
  93      ],
  94      'tool_dataprivacy_deny_data_request' => [
  95          'classname'     => 'tool_dataprivacy\external',
  96          'methodname'    => 'deny_data_request',
  97          'classpath'     => '',
  98          'description'   => 'Deny a data request',
  99          'type'          => 'write',
 100          'capabilities'  => 'tool/dataprivacy:managedatarequests',
 101          'ajax'          => true,
 102          'loginrequired' => true,
 103      ],
 104      'tool_dataprivacy_bulk_deny_data_requests' => [
 105          'classname'     => 'tool_dataprivacy\external',
 106          'methodname'    => 'bulk_deny_data_requests',
 107          'classpath'     => '',
 108          'description'   => 'Bulk deny data requests',
 109          'type'          => 'write',
 110          'capabilities'  => 'tool/dataprivacy:managedatarequests',
 111          'ajax'          => true,
 112          'loginrequired' => true,
 113      ],
 114      'tool_dataprivacy_get_users' => [
 115          'classname'     => 'tool_dataprivacy\external',
 116          'methodname'    => 'get_users',
 117          'classpath'     => '',
 118          'description'   => 'Fetches a list of users',
 119          'type'          => 'read',
 120          'capabilities'  => 'tool/dataprivacy:managedatarequests',
 121          'ajax'          => true,
 122          'loginrequired' => true,
 123      ],
 124      'tool_dataprivacy_create_purpose_form' => [
 125          'classname'     => 'tool_dataprivacy\external',
 126          'methodname'    => 'create_purpose_form',
 127          'classpath'     => '',
 128          'description'   => 'Adds a data purpose',
 129          'type'          => 'write',
 130          'capabilities'  => '',
 131          'ajax'          => true,
 132          'loginrequired' => true,
 133      ],
 134      'tool_dataprivacy_create_category_form' => [
 135          'classname'     => 'tool_dataprivacy\external',
 136          'methodname'    => 'create_category_form',
 137          'classpath'     => '',
 138          'description'   => 'Adds a data category',
 139          'type'          => 'write',
 140          'capabilities'  => '',
 141          'ajax'          => true,
 142          'loginrequired' => true,
 143      ],
 144      'tool_dataprivacy_delete_purpose' => [
 145          'classname'     => 'tool_dataprivacy\external',
 146          'methodname'    => 'delete_purpose',
 147          'classpath'     => '',
 148          'description'   => 'Deletes an existing data purpose',
 149          'type'          => 'write',
 150          'capabilities'  => '',
 151          'ajax'          => true,
 152          'loginrequired' => true,
 153      ],
 154      'tool_dataprivacy_delete_category' => [
 155          'classname'     => 'tool_dataprivacy\external',
 156          'methodname'    => 'delete_category',
 157          'classpath'     => '',
 158          'description'   => 'Deletes an existing data category',
 159          'type'          => 'write',
 160          'capabilities'  => '',
 161          'ajax'          => true,
 162          'loginrequired' => true,
 163      ],
 164      'tool_dataprivacy_set_contextlevel_form' => [
 165          'classname'     => 'tool_dataprivacy\external',
 166          'methodname'    => 'set_contextlevel_form',
 167          'classpath'     => '',
 168          'description'   => 'Sets purpose and category across a context level',
 169          'type'          => 'write',
 170          'capabilities'  => '',
 171          'ajax'          => true,
 172          'loginrequired' => true,
 173      ],
 174      'tool_dataprivacy_set_context_form' => [
 175          'classname'     => 'tool_dataprivacy\external',
 176          'methodname'    => 'set_context_form',
 177          'classpath'     => '',
 178          'description'   => 'Sets purpose and category for a specific context',
 179          'type'          => 'write',
 180          'capabilities'  => '',
 181          'ajax'          => true,
 182          'loginrequired' => true,
 183      ],
 184      'tool_dataprivacy_tree_extra_branches' => [
 185          'classname'     => 'tool_dataprivacy\external',
 186          'methodname'    => 'tree_extra_branches',
 187          'classpath'     => '',
 188          'description'   => 'Return branches for the context tree',
 189          'type'          => 'write',
 190          'capabilities'  => '',
 191          'ajax'          => true,
 192          'loginrequired' => true,
 193      ],
 194      'tool_dataprivacy_confirm_contexts_for_deletion' => [
 195          'classname'     => 'tool_dataprivacy\external',
 196          'methodname'    => 'confirm_contexts_for_deletion',
 197          'classpath'     => '',
 198          'description'   => 'Mark the selected expired contexts as confirmed for deletion',
 199          'type'          => 'write',
 200          'capabilities'  => '',
 201          'ajax'          => true,
 202          'loginrequired' => true,
 203      ],
 204      'tool_dataprivacy_set_context_defaults' => [
 205          'classname'     => 'tool_dataprivacy\external',
 206          'methodname'    => 'set_context_defaults',
 207          'classpath'     => '',
 208          'description'   => 'Updates the default category and purpose for a given context level (and optionally, a plugin)',
 209          'type'          => 'write',
 210          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 211          'ajax'          => true,
 212          'loginrequired' => true,
 213      ],
 214      'tool_dataprivacy_get_category_options' => [
 215          'classname'     => 'tool_dataprivacy\external',
 216          'methodname'    => 'get_category_options',
 217          'classpath'     => '',
 218          'description'   => 'Fetches a list of data category options',
 219          'type'          => 'read',
 220          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 221          'ajax'          => true,
 222          'loginrequired' => true,
 223      ],
 224      'tool_dataprivacy_get_purpose_options' => [
 225          'classname'     => 'tool_dataprivacy\external',
 226          'methodname'    => 'get_purpose_options',
 227          'classpath'     => '',
 228          'description'   => 'Fetches a list of data storage purpose options',
 229          'type'          => 'read',
 230          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 231          'ajax'          => true,
 232          'loginrequired' => true,
 233      ],
 234      'tool_dataprivacy_get_activity_options' => [
 235          'classname'     => 'tool_dataprivacy\external',
 236          'methodname'    => 'get_activity_options',
 237          'classpath'     => '',
 238          'description'   => 'Fetches a list of activity options',
 239          'type'          => 'read',
 240          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 241          'ajax'          => true,
 242          'loginrequired' => true,
 243      ],
 244  ];