MDL-62474 theme_boost: Fix Boost privacy provider
[moodle.git] / theme / boost / classes / privacy / provider.php
CommitLineData
0984abda
AN
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 theme_boost.
19 *
20 * @package theme_boost
21 * @copyright 2018 Andrew Nicols <andrew@nicols.co.uk>
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23 */
24
25namespace theme_boost\privacy;
26
dfcbcfc3
WM
27use \core_privacy\local\request\writer;
28use \core_privacy\local\metadata\collection;
29
0984abda
AN
30defined('MOODLE_INTERNAL') || die();
31
32/**
dfcbcfc3 33 * The boost theme stores a user preference data.
0984abda
AN
34 *
35 * @copyright 2018 Andrew Nicols <andrew@nicols.co.uk>
36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
37 */
dfcbcfc3
WM
38class provider implements
39 // This plugin has data.
40 \core_privacy\local\metadata\provider,
41
42 \core_privacy\local\request\data_provider,
43
44 // This plugin has some sitewide user preferences to export.
45 \core_privacy\local\request\user_preference_provider
46{
47
48 const DRAWER_OPEN_NAV = 'drawer-open-nav';
0984abda
AN
49
50 /**
dfcbcfc3 51 * Returns meta data about this system.
0984abda 52 *
dfcbcfc3
WM
53 * @param collection $itemcollection The initialised item collection to add items to.
54 * @return collection A listing of user data stored through this system.
0984abda 55 */
dfcbcfc3
WM
56 public static function get_metadata(collection $items) : collection {
57 $items->add_user_preference(self::DRAWER_OPEN_NAV, 'privacy:metadata:preference:draweropennav');
58
59 return $items;
60 }
61
62 /**
63 * Store all user preferences for the plugin.
64 *
65 * @param int $userid The userid of the user whose data is to be exported.
66 */
67 public static function export_user_preferences(int $userid) {
68 $draweropennavpref = get_user_preferences(self::DRAWER_OPEN_NAV, null, $userid);
69
70 if (isset($draweropennavpref)) {
71 writer::export_user_preference(
72 'theme_boost',
73 self::DRAWER_OPEN_NAV,
74 $draweropennavpref,
75 get_string('privacy:request:preference:draweropennav', 'theme_boost')
76 );
77 }
0984abda
AN
78 }
79}