Merge branch 'MDL-63867-master' of git://github.com/mickhawkins/moodle
authorJun Pataleta <jun@moodle.com>
Fri, 9 Nov 2018 07:31:28 +0000 (15:31 +0800)
committerJun Pataleta <jun@moodle.com>
Fri, 9 Nov 2018 07:31:28 +0000 (15:31 +0800)
1  2 
admin/tool/dataprivacy/classes/expired_contexts_manager.php
admin/tool/dataprivacy/classes/task/process_data_request_task.php
admin/tool/dataprivacy/tests/behat/datadelete.feature
admin/tool/dataprivacy/tests/behat/dataexport.feature
admin/tool/dataprivacy/tests/expired_data_requests_test.php

@@@ -74,24 -74,20 +74,31 @@@ class process_data_request_task extend
              return;
          }
  
+         // If no site purpose is defined, reject requests since they cannot be processed.
+         if (!\tool_dataprivacy\data_registry::defaults_set()) {
+             api::update_request_status($requestid, api::DATAREQUEST_STATUS_REJECTED);
+             mtrace('No site purpose defined. Request ' . $requestid . ' rejected.');
+             return;
+         }
 +        // Grab the manager.
 +        // We set an observer against it to handle failures.
 +        $manager = new \core_privacy\manager();
 +        $manager->set_observer(new \tool_dataprivacy\manager_observer());
 +
          // Get the user details now. We might not be able to retrieve it later if it's a deletion processing.
          $foruser = core_user::get_user($request->userid);
 -        $usercontext = \context_user::instance($foruser->id);
  
          // Update the status of this request as pre-processing.
 -        mtrace('Processing request...');
 +        mtrace('Pre-processing request...');
          api::update_request_status($requestid, api::DATAREQUEST_STATUS_PROCESSING);
 +        $contextlistcollection = $manager->get_contexts_for_userid($requestpersistent->get('userid'));
 +
 +        mtrace('Fetching approved contextlists from collection');
 +        $approvedclcollection = api::get_approved_contextlist_collection_for_collection(
 +                $contextlistcollection, $foruser, $request->type);
 +
 +        mtrace('Processing request...');
          $completestatus = api::DATAREQUEST_STATUS_COMPLETE;
  
          if ($request->type == api::DATAREQUEST_TYPE_EXPORT) {