MDL-63919 tool_dataprivacy: admin & notify fixes
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Sat, 10 Nov 2018 01:22:12 +0000 (02:22 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Sat, 10 Nov 2018 01:22:12 +0000 (02:22 +0100)
This includes the following:

1) Replace $ADMIN->id by get_admin()->id. The former doesn't exist.
2) Only change the notify parameter when it has not been specified
   at creation time (null). If specified, observe it.
3) Set the current user in tests to admin, able to create those
   requests.

admin/tool/dataprivacy/classes/api.php
admin/tool/dataprivacy/tests/user_deleted_observer_test.php

index 82b78b0..9f1177f 100644 (file)
@@ -234,13 +234,16 @@ class api {
             $creationmethod = data_request::DATAREQUEST_CREATION_MANUAL,
             $notify = null
         ) {
-        global $USER, $ADMIN;
+        global $USER;
 
-        if (null === $notify && data_request::DATAREQUEST_CREATION_AUTO == $creationmethod) {
-            // If the request was automatically created, then do not notify unless explicitly set.
-            $notify = false;
-        } else {
-            $notify = true;
+        if (null === $notify) {
+            // Only if notifications have not been decided by caller.
+            if ( data_request::DATAREQUEST_CREATION_AUTO == $creationmethod) {
+                // If the request was automatically created, then do not notify unless explicitly set.
+                $notify = false;
+            } else {
+                $notify = true;
+            }
         }
 
         $datarequest = new data_request();
@@ -251,7 +254,7 @@ class api {
         // NOTE: This should probably be changed. We should leave the default value for $requestinguser if
         // the request is not explicitly created by a specific user.
         $requestinguser = (isguestuser() && $creationmethod == data_request::DATAREQUEST_CREATION_AUTO) ?
-                $ADMIN->id : $USER->id;
+                get_admin()->id : $USER->id;
         // The user making the request.
         $datarequest->set('requestedby', $requestinguser);
         // Set status.
index 64a49cb..5a8b208 100644 (file)
@@ -81,6 +81,7 @@ class tool_dataprivacy_user_deleted_observer_testcase extends advanced_testcase
      */
     public function test_create_delete_data_request_export_data_request_preexists() {
         $this->resetAfterTest();
+        $this->setAdminUser();
 
         // Enable automatic creation of delete data requests.
         set_config('automaticdeletionrequests', 1, 'tool_dataprivacy');
@@ -106,6 +107,7 @@ class tool_dataprivacy_user_deleted_observer_testcase extends advanced_testcase
      */
     public function test_create_delete_data_request_ongoing_delete_data_request_preexists() {
         $this->resetAfterTest();
+        $this->setAdminUser();
 
         // Enable automatic creation of delete data requests.
         set_config('automaticdeletionrequests', 1, 'tool_dataprivacy');
@@ -130,6 +132,7 @@ class tool_dataprivacy_user_deleted_observer_testcase extends advanced_testcase
      */
     public function test_create_delete_data_request_canceled_delete_data_request_preexists() {
         $this->resetAfterTest();
+        $this->setAdminUser();
 
         // Enable automatic creation of delete data requests.
         set_config('automaticdeletionrequests', 1, 'tool_dataprivacy');
@@ -159,6 +162,7 @@ class tool_dataprivacy_user_deleted_observer_testcase extends advanced_testcase
      */
     public function test_create_delete_data_request_completed_delete_data_request_preexists() {
         $this->resetAfterTest();
+        $this->setAdminUser();
 
         // Enable automatic creation of delete data requests.
         set_config('automaticdeletionrequests', 1, 'tool_dataprivacy');