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 * The quizaccess_provider interface provides the expected interface for all 'quizaccess' quizaccesss. 19 * 20 * @package mod_quiz 21 * @copyright 2018 Andrew Nicols <andrew@nicols.co.uk> 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24namespace mod_quiz\privacy; 25 26defined('MOODLE_INTERNAL') || die(); 27 28use \core_privacy\local\request\contextlist; 29use \core_privacy\local\request\approved_contextlist; 30 31/** 32 * The quizaccess_provider interface provides the expected interface for all 'quizaccess' quizaccesss. 33 * 34 * @package mod_quiz 35 * @copyright 2018 Andrew Nicols <andrew@nicols.co.uk> 36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 */ 38interface quizaccess_provider extends \core_privacy\local\request\plugin\subplugin_provider { 39 40 /** 41 * Export all user data for the specified user, for the specified quiz. 42 * 43 * @param \quiz $quiz The quiz being exported 44 * @param \stdClass $user The user to export data for 45 * @return \stdClass The data to be exported for this access rule. 46 */ 47 public static function export_quizaccess_user_data(\quiz $quiz, \stdClass $user) : \stdClass; 48 49 /** 50 * Delete all data for all users in the specified quiz. 51 * 52 * @param \quiz $quiz The quiz being deleted 53 */ 54 public static function delete_quizaccess_data_for_all_users_in_context(\quiz $quiz); 55 56 /** 57 * Delete all user data for the specified user, in the specified quiz. 58 * 59 * @param \quiz $quiz The quiz being deleted 60 * @param \stdClass $user The user to export data for 61 */ 62 public static function delete_quizaccess_data_for_user(\quiz $quiz, \stdClass $user); 63} 64