diff --git a/plagiarism/classes/privacy/plagiarims_user_provider.php b/plagiarism/classes/privacy/plagiarims_user_provider.php new file mode 100644 index 00000000000..64036966134 --- /dev/null +++ b/plagiarism/classes/privacy/plagiarims_user_provider.php @@ -0,0 +1,46 @@ +. + +/** + * Interface for deleting users related to a context. + * + * @package core_plagiarism + * @copyright 2018 Adrian Greeve + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace core_plagiarism\privacy; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Interface for the plagiarism system. + * + * @copyright 2018 Adrian Greeve + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +interface plagiarism_user_provider extends + // The plagiarism_provider should be implemented by plugins which only provide information to a subsystem. + \core_privacy\local\request\plugin\subsystem_provider { + + /** + * Delete all user information for the provided users and context. + * + * @param array $userids The users to delete + * @param \context $context The context to refine the deletion. + */ + public static function delete_plagiarism_for_users(array $userids, \context $context); +} diff --git a/plagiarism/classes/privacy/provider.php b/plagiarism/classes/privacy/provider.php index 9aeff044cc9..e1b08c779ed 100644 --- a/plagiarism/classes/privacy/provider.php +++ b/plagiarism/classes/privacy/provider.php @@ -85,6 +85,16 @@ class provider implements static::call_plugin_method('delete_plagiarism_for_user', [$userid, $context]); } + /** + * Deletes all user content for a user in a context in all plagiarism plugins. + * + * @param array $userids The users to delete + * @param \context $context The context to refine the deletion. + */ + public static function delete_plagiarism_for_users(array $userids, \context $context) { + static::call_plugin_method('delete_plagiarism_for_users', [$userids, $context]); + } + /** * Internal method for looping through all of the plagiarism plugins and calling a method. *