. /** * Privacy class for requesting user data. * * @package core_portfolio * @copyright 2018 Jake Dallimore * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace core_portfolio\privacy; defined('MOODLE_INTERNAL') || die(); /** * Provider for the portfolio API. * * @copyright 2018 Jake Dallimore * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ interface portfolio_provider extends // The portfolio_provider should be implemented by plugins which only provide information to a subsystem. \core_privacy\local\request\plugin\subsystem_provider, // The implementation for prtfolios is handled in the subsystem itself. \core_privacy\local\request\shared_userlist_provider { /** * Export all portfolio data from each portfolio plugin for the specified userid and context. * * @param int $userid The user to export. * @param \context $context The context to export. * @param array $subcontext The subcontext within the context to export this information to. * @param array $linkarray The weird and wonderful link array used to display information for a specific item */ public static function export_portfolio_user_data(int $userid, \context $context, array $subcontext, array $linkarray); /** * Delete all user information for the provided context. * * @param \context $context The context to delete user data for. */ public static function delete_portfolio_for_context(\context $context); /** * Delete all user information for the provided user and context. * * @param int $userid The user to delete * @param \context $context The context to refine the deletion. */ public static function delete_portfolio_for_user(int $userid, \context $context); }