MDL-61751 core_plagiarism: add polyfill for plagiarism provider
[moodle.git] / plagiarism / classes / privacy / legacy_polyfill.php
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/>.
17 /**
18  * This file contains the polyfill to allow a plugin to operate with Moodle 3.3 up.
19  *
20  * @package core_plagiarism
21  * @copyright 2018 Jake Dallimore <jrhdallimore@gmail.com>
22  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
24 namespace core_plagiarism\privacy;
26 defined('MOODLE_INTERNAL') || die();
28 use \core_privacy\local\metadata\collection;
30 /**
31  * The trait used to provide a backwards compatibility for third-party plugins.
32  *
33  * @copyright 2018 Jake Dallimore <jrhdallimore@gmail.com>
34  * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35  */
36 trait legacy_polyfill {
38     /**
39      * Export all plagiarism data from each plagiarism plugin for the specified userid and context.
40      *
41      * @param   int         $userid The user to export.
42      * @param   \context    $context The context to export.
43      * @param   array       $subcontext The subcontext within the context to export this information to.
44      * @param   array       $linkarray The weird and wonderful link array used to display information for a specific item
45      */
46     public static function export_plagiarism_user_data(int $userid, \context $context, array $subcontext, array $linkarray) {
47         static::_export_plagiarism_user_data($userid, $context, $subcontext, $linkarray);
48     }
50     /**
51      * Delete all user information for the provided context.
52      *
53      * @param  \context $context The context to delete user data for.
54      */
55     public static function delete_plagiarism_for_context(\context $context) {
56         static::_delete_plagiarism_for_context($context);
57     }
59     /**
60      * Delete all user information for the provided user and context.
61      *
62      * @param  int      $userid    The user to delete
63      * @param  \context $context   The context to refine the deletion.
64      */
65     public static function delete_plagiarism_for_user(int $userid, \context $context) {
66         static::_delete_plagiarism_for_user($userid, $context);
67     }
68 }