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/**
18 * Privacy Subsystem implementation for customfield_checkbox.
19 *
20 * @package    customfield_checkbox
21 * @copyright  2018 Daniel Neis Araujo <danielneis@gmail.com>
22 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24namespace customfield_checkbox\privacy;
25
26use core_customfield\data_controller;
27use core_customfield\privacy\customfield_provider;
28use core_privacy\local\request\writer;
29
30defined('MOODLE_INTERNAL') || die();
31
32/**
33 * Privacy Subsystem for customfield_checkbox implementing null_provider.
34 *
35 * @copyright  2018 Daniel Neis Araujo <danielneis@gmail.com>
36 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
37 */
38class provider implements \core_privacy\local\metadata\null_provider, customfield_provider {
39
40    /**
41     * Get the language string identifier with the component's language
42     * file to explain why this plugin stores no data.
43     *
44     * @return  string
45     */
46    public static function get_reason() : string {
47        return 'privacy:metadata';
48    }
49
50    /**
51     * Preprocesses data object that is going to be exported
52     *
53     * @param data_controller $data
54     * @param \stdClass $exportdata
55     * @param array $subcontext
56     */
57    public static function export_customfield_data(data_controller $data, \stdClass $exportdata, array $subcontext) {
58        writer::with_context($data->get_context())->export_data($subcontext, $exportdata);
59    }
60
61    /**
62     * Allows plugins to delete everything they store related to the data (usually files)
63     *
64     * @param string $dataidstest
65     * @param array $params
66     * @param array $contextids
67     * @return mixed|void
68     */
69    public static function before_delete_data(string $dataidstest, array $params, array $contextids) {
70    }
71
72    /**
73     * Allows plugins to delete everything they store related to the field configuration (usually files)
74     *
75     * @param string $fieldidstest
76     * @param array $params
77     * @param array $contextids
78     */
79    public static function before_delete_fields(string $fieldidstest, array $params, array $contextids) {
80    }
81}
82