From f420647add0f5ffc917301335d82d951a1df502e Mon Sep 17 00:00:00 2001 From: Leon Klingele Date: Wed, 6 Mar 2019 13:07:41 +0100 Subject: [PATCH] lib/private/User: do not change user properties if value has not changed Signed-off-by: Morris Jobke --- lib/private/User/User.php | 12 ++++++------ tests/lib/User/UserTest.php | 20 ++++---------------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/lib/private/User/User.php b/lib/private/User/User.php index a47ef8dc543..48c913db2a9 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -158,12 +158,12 @@ class User implements IUser { */ public function setEMailAddress($mailAddress) { $oldMailAddress = $this->getEMailAddress(); - if($mailAddress === '') { - $this->config->deleteUserValue($this->uid, 'settings', 'email'); - } else { - $this->config->setUserValue($this->uid, 'settings', 'email', $mailAddress); - } if($oldMailAddress !== $mailAddress) { + if($mailAddress === '') { + $this->config->deleteUserValue($this->uid, 'settings', 'email'); + } else { + $this->config->setUserValue($this->uid, 'settings', 'email', $mailAddress); + } $this->triggerChange('eMailAddress', $mailAddress, $oldMailAddress); } } @@ -407,8 +407,8 @@ class User implements IUser { $quota = OC_Helper::computerFileSize($quota); $quota = OC_Helper::humanFileSize($quota); } - $this->config->setUserValue($this->uid, 'files', 'quota', $quota); if($quota !== $oldQuota) { + $this->config->setUserValue($this->uid, 'files', 'quota', $quota); $this->triggerChange('quota', $quota, $oldQuota); } } diff --git a/tests/lib/User/UserTest.php b/tests/lib/User/UserTest.php index 16fde814b85..a800e790370 100644 --- a/tests/lib/User/UserTest.php +++ b/tests/lib/User/UserTest.php @@ -676,14 +676,8 @@ class UserTest extends TestCase { $config->expects($this->any()) ->method('getUserValue') ->willReturn('foo@bar.com'); - $config->expects($this->once()) - ->method('setUserValue') - ->with( - 'foo', - 'settings', - 'email', - 'foo@bar.com' - ); + $config->expects($this->never()) + ->method('setUserValue'); $user = new User('foo', $backend, $this->dispatcher, $emitter, $config); $user->setEMailAddress('foo@bar.com'); @@ -741,14 +735,8 @@ class UserTest extends TestCase { $config->expects($this->any()) ->method('getUserValue') ->willReturn('23 TB'); - $config->expects($this->once()) - ->method('setUserValue') - ->with( - 'foo', - 'files', - 'quota', - '23 TB' - ); + $config->expects($this->never()) + ->method('setUserValue'); $user = new User('foo', $backend, $this->dispatcher, $emitter, $config); $user->setQuota('23 TB'); -- 2.39.5