From: Daniel Calviño Sánchez Date: Sun, 23 Apr 2017 17:47:28 +0000 (+0200) Subject: Extract updateSharePasswordIfNeeded function X-Git-Tag: v12.0.0beta1~80^2~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=faea890b874857f2ff144c7eb26dec58a3661005;p=nextcloud-server.git Extract updateSharePasswordIfNeeded function Signed-off-by: Daniel Calviño Sánchez --- 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