From faea890b874857f2ff144c7eb26dec58a3661005 Mon Sep 17 00:00:00 2001 From: Daniel Calviño Sánchez Date: Sun, 23 Apr 2017 19:47:28 +0200 Subject: Extract updateSharePasswordIfNeeded function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- lib/private/Share20/Manager.php | 52 ++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'lib/private/Share20') diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 3e4d5cc3813..1407d89d112 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -715,16 +715,7 @@ class Manager implements IManager { } else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK) { $this->linkCreateChecks($share); - // Password updated. - if ($share->getPassword() !== $originalShare->getPassword()) { - //Verify the password - $this->verifyPassword($share->getPassword()); - - // If a password is set. Hash it! - if ($share->getPassword() !== null) { - $share->setPassword($this->hasher->hash($share->getPassword())); - } - } + $this->updateSharePasswordIfNeeded($share, $originalShare); if ($share->getExpirationDate() != $originalShare->getExpirationDate()) { //Verify the expiration date @@ -732,18 +723,9 @@ class Manager implements IManager { $expirationDateUpdated = true; } } else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_EMAIL) { - $plainTextPassword = null; - - // Password updated. - if ($share->getPassword() !== $originalShare->getPassword()) { - //Verify the password - $this->verifyPassword($share->getPassword()); - - // If a password is set. Hash it! - if ($share->getPassword() !== null) { - $plainTextPassword = $share->getPassword(); - $share->setPassword($this->hasher->hash($plainTextPassword)); - } + $plainTextPassword = $share->getPassword(); + if (!$this->updateSharePasswordIfNeeded($share, $originalShare)) { + $plainTextPassword = null; } } @@ -796,6 +778,32 @@ class Manager implements IManager { return $share; } + /** + * Updates the password of the given share if it is not the same as the + * password of the original share. + * + * @param \OCP\Share\IShare $share the share to update its password. + * @param \OCP\Share\IShare $originalShare the original share to compare its + * password with. + * @return boolean whether the password was updated or not. + */ + private function updateSharePasswordIfNeeded(\OCP\Share\IShare $share, \OCP\Share\IShare $originalShare) { + // Password updated. + if ($share->getPassword() !== $originalShare->getPassword()) { + //Verify the password + $this->verifyPassword($share->getPassword()); + + // If a password is set. Hash it! + if ($share->getPassword() !== null) { + $share->setPassword($this->hasher->hash($share->getPassword())); + + return true; + } + } + + return false; + } + /** * Delete all the children of this share * FIXME: remove once https://github.com/owncloud/core/pull/21660 is in -- cgit v1.2.3