From a4574555235befb2ae0289c9cc26fea016da2b6b Mon Sep 17 00:00:00 2001 From: dartcafe Date: Mon, 14 Sep 2020 00:37:51 +0200 Subject: fixes after testing --- lib/Controller/PreferencesController.php | 1 - lib/Controller/SystemController.php | 12 ++++++++++-- lib/Exceptions/InvalidEmailAddress.php | 2 +- lib/Exceptions/NotAuthorizedException.php | 2 +- lib/Service/ShareService.php | 7 +++++-- lib/Service/SystemService.php | 2 -- 6 files changed, 17 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/Controller/PreferencesController.php b/lib/Controller/PreferencesController.php index 26d6832f..6474b0e0 100644 --- a/lib/Controller/PreferencesController.php +++ b/lib/Controller/PreferencesController.php @@ -96,5 +96,4 @@ class PreferencesController extends Controller { return new DataResponse($preferences, Http::STATUS_OK); } - } diff --git a/lib/Controller/SystemController.php b/lib/Controller/SystemController.php index ea3a0be1..defe24cf 100644 --- a/lib/Controller/SystemController.php +++ b/lib/Controller/SystemController.php @@ -129,7 +129,11 @@ class SystemController extends Controller { * @return DataResponse */ public function validatePublicUsername($pollId, $userName, $token) { - return new DataResponse(['result' => $this->systemService->validatePublicUsername($pollId, $userName, $token), 'name' => $userName], Http::STATUS_OK); + try { + return new DataResponse(['result' => $this->systemService->validatePublicUsername($pollId, $userName, $token), 'name' => $userName], Http::STATUS_OK); + } catch (\Exception $e) { + return new DataResponse(['error' => $e->getMessage()], $e->getStatus()); + } } /** @@ -139,6 +143,10 @@ class SystemController extends Controller { * @return DataResponse */ public function validateEmailAddress($emailAddress) { - return new DataResponse(['result' => $this->systemService->validateEmailAddress($emailAddress), 'emailAddress' => $emailAddress], Http::STATUS_OK); + try { + return new DataResponse(['result' => $this->systemService->validateEmailAddress($emailAddress), 'emailAddress' => $emailAddress], Http::STATUS_OK); + } catch (\Exception $e) { + return new DataResponse(['error' => $e->getMessage()], $e->getStatus()); + } } } diff --git a/lib/Exceptions/InvalidEmailAddress.php b/lib/Exceptions/InvalidEmailAddress.php index d622dac8..452cfe81 100644 --- a/lib/Exceptions/InvalidEmailAddress.php +++ b/lib/Exceptions/InvalidEmailAddress.php @@ -34,6 +34,6 @@ class InvalidEmailAddress extends \Exception { parent::__construct($e); } public function getStatus() { - return Http::STATUS_CONFLICT; + return Http::STATUS_FORBIDDEN; } } diff --git a/lib/Exceptions/NotAuthorizedException.php b/lib/Exceptions/NotAuthorizedException.php index 8e924610..ece69d8e 100644 --- a/lib/Exceptions/NotAuthorizedException.php +++ b/lib/Exceptions/NotAuthorizedException.php @@ -34,6 +34,6 @@ class NotAuthorizedException extends \Exception { parent::__construct($e); } public function getStatus() { - return Http::STATUS_FORBIDDEN; + return Http::STATUS_UNAUTHORIZED; } } diff --git a/lib/Service/ShareService.php b/lib/Service/ShareService.php index cba983d6..a72dd611 100644 --- a/lib/Service/ShareService.php +++ b/lib/Service/ShareService.php @@ -28,7 +28,6 @@ use OCA\Polls\Exceptions\InvalidShareType; use OCP\Security\ISecureRandom; -use OCA\Polls\Service\SystemService; use OCA\Polls\Db\ShareMapper; use OCA\Polls\Db\Share; use OCA\Polls\Model\Acl; @@ -188,7 +187,11 @@ class ShareService { $this->share->setUserEmail($emailAddress); $this->share->setInvitationSent(time()); $this->shareMapper->insert($this->share); - $this->mailService->sendInvitationMail($this->share->getToken()); + + if ($emailAddress) { + $this->mailService->sendInvitationMail($this->share->getToken()); + } + return $this->share; } elseif ($this->share->getType() === 'email') { $this->share->setType('external'); diff --git a/lib/Service/SystemService.php b/lib/Service/SystemService.php index 84355cb5..e52dafa9 100644 --- a/lib/Service/SystemService.php +++ b/lib/Service/SystemService.php @@ -334,8 +334,6 @@ class SystemService { * a participant of the poll * @NoAdminRequired * @return Boolean - * @throws NotAuthorizedException - * @throws TooShortException * @throws InvalidEmailAddress */ public function validateEmailAddress($emailAddress) { -- cgit v1.2.3