From 6442cf75ee0db5775bb75a22801f00cb65311582 Mon Sep 17 00:00:00 2001 From: Paul Holden Date: Mon, 30 Sep 2019 23:02:50 +0100 Subject: [PATCH] MDL-66804 user: consistent user access times in privacy export. --- user/classes/privacy/provider.php | 8 ++++---- user/tests/privacy_test.php | 12 +++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/user/classes/privacy/provider.php b/user/classes/privacy/provider.php index cffa3aa2813..13a2fe9f760 100644 --- a/user/classes/privacy/provider.php +++ b/user/classes/privacy/provider.php @@ -394,10 +394,10 @@ class provider implements 'calendartype' => $user->calendartype, 'theme' => $user->theme, 'timezone' => $user->timezone, - 'firstaccess' => transform::datetime($user->firstaccess), - 'lastaccess' => transform::datetime($user->lastaccess), - 'lastlogin' => transform::datetime($user->lastlogin), - 'currentlogin' => $user->currentlogin, + 'firstaccess' => $user->firstaccess ? transform::datetime($user->firstaccess) : null, + 'lastaccess' => $user->lastaccess ? transform::datetime($user->lastaccess) : null, + 'lastlogin' => $user->lastlogin ? transform::datetime($user->lastlogin) : null, + 'currentlogin' => $user->currentlogin ? transform::datetime($user->currentlogin) : null, 'lastip' => $user->lastip, 'secret' => $user->secret, 'picture' => $user->picture, diff --git a/user/tests/privacy_test.php b/user/tests/privacy_test.php index bd630f163ca..8a1a9f8b1f3 100644 --- a/user/tests/privacy_test.php +++ b/user/tests/privacy_test.php @@ -28,6 +28,7 @@ global $CFG; use \core_privacy\tests\provider_testcase; use \core_user\privacy\provider; use \core_privacy\local\request\approved_userlist; +use \core_privacy\local\request\transform; require_once($CFG->dirroot . "/user/lib.php"); @@ -59,7 +60,11 @@ class core_user_privacy_testcase extends provider_testcase { */ public function test_export_user_data() { $this->resetAfterTest(); - $user = $this->getDataGenerator()->create_user(); + $user = $this->getDataGenerator()->create_user([ + 'firstaccess' => 1535760000, + 'lastaccess' => 1541030400, + 'currentlogin' => 1541030400, + ]); $course = $this->getDataGenerator()->create_course(); $context = \context_user::instance($user->id); @@ -125,6 +130,11 @@ class core_user_privacy_testcase extends provider_testcase { $this->assertTrue(array_key_exists('firstname', $userdata)); $this->assertTrue(array_key_exists('lastname', $userdata)); $this->assertTrue(array_key_exists('email', $userdata)); + // Check access times. + $this->assertEquals(transform::datetime($user->firstaccess), $userdata['firstaccess']); + $this->assertEquals(transform::datetime($user->lastaccess), $userdata['lastaccess']); + $this->assertNull($userdata['lastlogin']); + $this->assertEquals(transform::datetime($user->currentlogin), $userdata['currentlogin']); } /**