Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.

Differences Between: [Versions 400 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_bulk_approve_data_requests' => [
  77          'classname'     => 'tool_dataprivacy\external',
  78          'methodname'    => 'bulk_approve_data_requests',
  79          'classpath'     => '',
  80          'description'   => 'Bulk approve data requests',
  81          'type'          => 'write',
  82          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  83          'ajax'          => true,
  84          'loginrequired' => true,
  85      ],
  86      'tool_dataprivacy_deny_data_request' => [
  87          'classname'     => 'tool_dataprivacy\external',
  88          'methodname'    => 'deny_data_request',
  89          'classpath'     => '',
  90          'description'   => 'Deny a data request',
  91          'type'          => 'write',
  92          'capabilities'  => 'tool/dataprivacy:managedatarequests',
  93          'ajax'          => true,
  94          'loginrequired' => true,
  95      ],
  96      'tool_dataprivacy_bulk_deny_data_requests' => [
  97          'classname'     => 'tool_dataprivacy\external',
  98          'methodname'    => 'bulk_deny_data_requests',
  99          'classpath'     => '',
 100          'description'   => 'Bulk deny data requests',
 101          'type'          => 'write',
 102          'capabilities'  => 'tool/dataprivacy:managedatarequests',
 103          'ajax'          => true,
 104          'loginrequired' => true,
 105      ],
 106      'tool_dataprivacy_get_users' => [
 107          'classname'     => 'tool_dataprivacy\external',
 108          'methodname'    => 'get_users',
 109          'classpath'     => '',
 110          'description'   => 'Fetches a list of users',
 111          'type'          => 'read',
 112          'capabilities'  => 'tool/dataprivacy:managedatarequests',
 113          'ajax'          => true,
 114          'loginrequired' => true,
 115      ],
 116      'tool_dataprivacy_create_purpose_form' => [
 117          'classname'     => 'tool_dataprivacy\external',
 118          'methodname'    => 'create_purpose_form',
 119          'classpath'     => '',
 120          'description'   => 'Adds a data purpose',
 121          'type'          => 'write',
 122          'capabilities'  => '',
 123          'ajax'          => true,
 124          'loginrequired' => true,
 125      ],
 126      'tool_dataprivacy_create_category_form' => [
 127          'classname'     => 'tool_dataprivacy\external',
 128          'methodname'    => 'create_category_form',
 129          'classpath'     => '',
 130          'description'   => 'Adds a data category',
 131          'type'          => 'write',
 132          'capabilities'  => '',
 133          'ajax'          => true,
 134          'loginrequired' => true,
 135      ],
 136      'tool_dataprivacy_delete_purpose' => [
 137          'classname'     => 'tool_dataprivacy\external',
 138          'methodname'    => 'delete_purpose',
 139          'classpath'     => '',
 140          'description'   => 'Deletes an existing data purpose',
 141          'type'          => 'write',
 142          'capabilities'  => '',
 143          'ajax'          => true,
 144          'loginrequired' => true,
 145      ],
 146      'tool_dataprivacy_delete_category' => [
 147          'classname'     => 'tool_dataprivacy\external',
 148          'methodname'    => 'delete_category',
 149          'classpath'     => '',
 150          'description'   => 'Deletes an existing data category',
 151          'type'          => 'write',
 152          'capabilities'  => '',
 153          'ajax'          => true,
 154          'loginrequired' => true,
 155      ],
 156      'tool_dataprivacy_set_contextlevel_form' => [
 157          'classname'     => 'tool_dataprivacy\external',
 158          'methodname'    => 'set_contextlevel_form',
 159          'classpath'     => '',
 160          'description'   => 'Sets purpose and category across a context level',
 161          'type'          => 'write',
 162          'capabilities'  => '',
 163          'ajax'          => true,
 164          'loginrequired' => true,
 165      ],
 166      'tool_dataprivacy_set_context_form' => [
 167          'classname'     => 'tool_dataprivacy\external',
 168          'methodname'    => 'set_context_form',
 169          'classpath'     => '',
 170          'description'   => 'Sets purpose and category for a specific context',
 171          'type'          => 'write',
 172          'capabilities'  => '',
 173          'ajax'          => true,
 174          'loginrequired' => true,
 175      ],
 176      'tool_dataprivacy_tree_extra_branches' => [
 177          'classname'     => 'tool_dataprivacy\external',
 178          'methodname'    => 'tree_extra_branches',
 179          'classpath'     => '',
 180          'description'   => 'Return branches for the context tree',
 181          'type'          => 'write',
 182          'capabilities'  => '',
 183          'ajax'          => true,
 184          'loginrequired' => true,
 185      ],
 186      'tool_dataprivacy_confirm_contexts_for_deletion' => [
 187          'classname'     => 'tool_dataprivacy\external',
 188          'methodname'    => 'confirm_contexts_for_deletion',
 189          'classpath'     => '',
 190          'description'   => 'Mark the selected expired contexts as confirmed for deletion',
 191          'type'          => 'write',
 192          'capabilities'  => '',
 193          'ajax'          => true,
 194          'loginrequired' => true,
 195      ],
 196      'tool_dataprivacy_set_context_defaults' => [
 197          'classname'     => 'tool_dataprivacy\external',
 198          'methodname'    => 'set_context_defaults',
 199          'classpath'     => '',
 200          'description'   => 'Updates the default category and purpose for a given context level (and optionally, a plugin)',
 201          'type'          => 'write',
 202          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 203          'ajax'          => true,
 204          'loginrequired' => true,
 205      ],
 206      'tool_dataprivacy_get_category_options' => [
 207          'classname'     => 'tool_dataprivacy\external',
 208          'methodname'    => 'get_category_options',
 209          'classpath'     => '',
 210          'description'   => 'Fetches a list of data category options',
 211          'type'          => 'read',
 212          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 213          'ajax'          => true,
 214          'loginrequired' => true,
 215      ],
 216      'tool_dataprivacy_get_purpose_options' => [
 217          'classname'     => 'tool_dataprivacy\external',
 218          'methodname'    => 'get_purpose_options',
 219          'classpath'     => '',
 220          'description'   => 'Fetches a list of data storage purpose options',
 221          'type'          => 'read',
 222          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 223          'ajax'          => true,
 224          'loginrequired' => true,
 225      ],
 226      'tool_dataprivacy_get_activity_options' => [
 227          'classname'     => 'tool_dataprivacy\external',
 228          'methodname'    => 'get_activity_options',
 229          'classpath'     => '',
 230          'description'   => 'Fetches a list of activity options',
 231          'type'          => 'read',
 232          'capabilities'  => 'tool/dataprivacy:managedataregistry',
 233          'ajax'          => true,
 234          'loginrequired' => true,
 235      ],
 236  ];