diff --git a/cache/classes/privacy/provider.php b/cache/classes/privacy/provider.php new file mode 100644 index 0000000000000..9deb37264430b --- /dev/null +++ b/cache/classes/privacy/provider.php @@ -0,0 +1,66 @@ +. + +/** + * Privacy Subsystem implementation for core_cache. + * + * @package core_cache + * @copyright 2018 Andrew Nicols + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace core_cache\privacy; + +defined('MOODLE_INTERNAL') || die(); + +use \core_privacy\local\metadata\collection; + +/** + * Privacy Subsystem implementation for core_cache. + * + * @copyright 2018 Andrew Nicols + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class provider implements + // Caches store data. + \core_privacy\local\metadata\provider, + + // The cache subsystem stores data on behalf of other components. + \core_privacy\local\request\subsystem\plugin_provider { + + /** + * Returns meta data about this system. + * + * Note, although this plugin does store user data, it is not able to + * identify it, and that user data is typically very short lived. + * + * Therefore it is not realistically possible to export any of this + * data as it is only identifiable by the plugin storing it, and that + * plugin should already be exporting the data as part of it's own + * implementation. + * + * @param collection $collection The initialised collection to add items to. + * @return collection A listing of user data stored through this system. + */ + public static function get_metadata(collection $collection) { + // Data is stored in cache stores. + $collection->add_plugintype_link('cachestore', [], 'privacy:metadata:cachestore'); + + // Cache locks do not store any personal user data. + + return $collection; + } +} diff --git a/lang/en/cache.php b/lang/en/cache.php index 3f9969d66991c..518a1918defe5 100644 --- a/lang/en/cache.php +++ b/lang/en/cache.php @@ -134,6 +134,7 @@ $string['none'] = 'None'; $string['plugin'] = 'Plugin'; $string['pluginsummaries'] = 'Installed cache stores'; +$string['privacy:metadata:cachestore'] = 'The Cache subsystem stores data temporarily on behalf of other parts of Moodle. This data is not easily identifiable, and is very short lived. It serves as a cache of data stored elsewhere in Moodle, and should therefore already be handled by those Moodle components.'; $string['purge'] = 'Purge'; $string['purgedefinitionsuccess'] = 'Successfully purged the requested definition.'; $string['purgestoresuccess'] = 'Successfully purged the requested store.';