From baf3fd4177dd5cb3263dbe46c51c5fc5c8aee81d Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Sat, 10 Nov 2018 02:22:12 +0100 Subject: [PATCH] MDL-63919 tool_dataprivacy: admin & notify fixes 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 | 17 ++++++++++------- .../tests/user_deleted_observer_test.php | 4 ++++ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/admin/tool/dataprivacy/classes/api.php b/admin/tool/dataprivacy/classes/api.php index 82b78b05f05..9f1177f0ce0 100644 --- a/admin/tool/dataprivacy/classes/api.php +++ b/admin/tool/dataprivacy/classes/api.php @@ -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. diff --git a/admin/tool/dataprivacy/tests/user_deleted_observer_test.php b/admin/tool/dataprivacy/tests/user_deleted_observer_test.php index 64a49cb9e90..5a8b2083d9a 100644 --- a/admin/tool/dataprivacy/tests/user_deleted_observer_test.php +++ b/admin/tool/dataprivacy/tests/user_deleted_observer_test.php @@ -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');