fix(files_sharing): Fix error messages from password policy

Exceptions thrown from password_policy may bubble up in share creation
 or update when a password is used. Their message is meant to be shown
 to the user. This always the case for HintException so we catch that
 instead of the subclass GenericShareException.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
Côme Chilliet 2024-11-19 09:40:26 +01:00
parent 899b65111d
commit f44a192613
No known key found for this signature in database
GPG key ID: A3E2F658B28C760A

View file

@ -37,6 +37,7 @@ use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\HintException;
use OCP\IConfig;
use OCP\IDateTimeZone;
use OCP\IGroupManager;
@ -49,7 +50,6 @@ use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
use OCP\Mail\IMailer;
use OCP\Server;
use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IProviderFactory;
@ -811,7 +811,7 @@ class ShareAPIController extends OCSController {
try {
$share = $this->shareManager->createShare($share);
} catch (GenericShareException $e) {
} catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), $code);
} catch (\Exception $e) {
@ -1357,7 +1357,7 @@ class ShareAPIController extends OCSController {
try {
$share = $this->shareManager->updateShare($share);
} catch (GenericShareException $e) {
} catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {
@ -1445,7 +1445,7 @@ class ShareAPIController extends OCSController {
try {
$this->shareManager->acceptShare($share, $this->userId);
} catch (GenericShareException $e) {
} catch (HintException $e) {
$code = $e->getCode() === 0 ? 403 : $e->getCode();
throw new OCSException($e->getHint(), (int)$code);
} catch (\Exception $e) {