MDL-63867 tool_dataprivacy: Fix context expired/unprotected user check
authorMichael Hawkins <michaelh@moodle.com>
Wed, 7 Nov 2018 05:53:52 +0000 (13:53 +0800)
committerMichael Hawkins <michaelh@moodle.com>
Fri, 9 Nov 2018 06:19:31 +0000 (14:19 +0800)
It now checks the system context has been defined, since that is
required for data privacy to be set up correctly, and the check
to be valid. This also fixes an error being thrown when checking
pending delete requests in cron.

admin/tool/dataprivacy/classes/expired_contexts_manager.php

index c2dc169..751ee1a 100644 (file)
@@ -887,6 +887,11 @@ class expired_contexts_manager {
      * @return  bool
      */
     public static function is_context_expired_or_unprotected_for_user(\context $context, \stdClass $user) : bool {
+        // User/course contexts can't expire if no purpose is set in the system context.
+        if (!data_registry::defaults_set()) {
+            return false;
+        }
+
         $parents = $context->get_parent_contexts(true);
         foreach ($parents as $parent) {
             if ($parent instanceof \context_course) {