mirror of
https://github.com/nextcloud/server.git
synced 2026-06-10 09:13:19 -04:00
fix: Use HintException instead of InvalidArgumentException
To carry translated error messages intended for the end user, HintException is the correct class. Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
parent
21e5f6e6d1
commit
a648715edc
1 changed files with 17 additions and 8 deletions
|
|
@ -9,7 +9,6 @@ declare(strict_types=1);
|
|||
|
||||
namespace OCA\Provisioning_API\Controller;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use OC\Security\Crypto;
|
||||
use OCP\Accounts\IAccountManager;
|
||||
use OCP\AppFramework\Controller;
|
||||
|
|
@ -18,6 +17,7 @@ use OCP\AppFramework\Http\Attribute\NoAdminRequired;
|
|||
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
|
||||
use OCP\AppFramework\Http\Attribute\OpenAPI;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\HintException;
|
||||
use OCP\IL10N;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserManager;
|
||||
|
|
@ -54,13 +54,16 @@ class VerificationController extends Controller {
|
|||
try {
|
||||
if ($this->userSession->getUser()?->getUID() !== $userId) {
|
||||
// not a public page, hence getUser() must return an IUser
|
||||
throw new InvalidArgumentException($this->l10n->t('Logged in account is not mail address owner'));
|
||||
throw new HintException(
|
||||
'Logged in account is not mail address owner',
|
||||
$this->l10n->t('Logged in account is not mail address owner'),
|
||||
);
|
||||
}
|
||||
$email = $this->crypto->decrypt($key);
|
||||
} catch (\Exception $e) {
|
||||
} catch (HintException $e) {
|
||||
return new TemplateResponse(
|
||||
'core', 'error', [
|
||||
'errors' => [['error' => $e->getMessage()]]
|
||||
'errors' => [['error' => $e->getHint()]]
|
||||
], TemplateResponse::RENDER_AS_GUEST);
|
||||
}
|
||||
|
||||
|
|
@ -81,7 +84,10 @@ class VerificationController extends Controller {
|
|||
$throttle = false;
|
||||
try {
|
||||
if ($this->userSession->getUser()?->getUID() !== $userId) {
|
||||
throw new InvalidArgumentException($this->l10n->t('Logged in account is not mail address owner'));
|
||||
throw new HintException(
|
||||
'Logged in account is not mail address owner',
|
||||
$this->l10n->t('Logged in account is not mail address owner'),
|
||||
);
|
||||
}
|
||||
$email = $this->crypto->decrypt($key);
|
||||
$ref = \substr(hash('sha256', $email), 0, 8);
|
||||
|
|
@ -94,7 +100,10 @@ class VerificationController extends Controller {
|
|||
->getPropertyByValue($email);
|
||||
|
||||
if ($emailProperty === null) {
|
||||
throw new InvalidArgumentException($this->l10n->t('Email was already removed from account and cannot be confirmed anymore.'));
|
||||
throw new HintException(
|
||||
'Email was already removed from account and cannot be confirmed anymore.',
|
||||
$this->l10n->t('Email was already removed from account and cannot be confirmed anymore.'),
|
||||
);
|
||||
}
|
||||
$emailProperty->setLocallyVerified(IAccountManager::VERIFIED);
|
||||
$this->accountManager->updateAccount($userAccount);
|
||||
|
|
@ -106,8 +115,8 @@ class VerificationController extends Controller {
|
|||
$throttle = true;
|
||||
$error = $this->l10n->t('Could not verify mail because the token is invalid.');
|
||||
}
|
||||
} catch (InvalidArgumentException $e) {
|
||||
$error = $e->getMessage();
|
||||
} catch (HintException $e) {
|
||||
$error = $e->getHint();
|
||||
} catch (\Exception $e) {
|
||||
$error = $this->l10n->t('An unexpected error occurred. Please contact your admin.');
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue