Set files_sharing:hide_disabled_user_shares to 'yes' to hide shares from disabled users

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/40332/head
Côme Chilliet 10 months ago committed by Andy Scherzinger
parent 822e763704
commit 603c0d00e4

@ -1318,7 +1318,7 @@ class Manager implements IManager {
$added = 0;
foreach ($shares as $share) {
try {
$this->checkExpireDate($share);
$this->checkShare($share);
} catch (ShareNotFound $e) {
//Ignore since this basically means the share is deleted
continue;
@ -1377,7 +1377,7 @@ class Manager implements IManager {
// remove all shares which are already expired
foreach ($shares as $key => $share) {
try {
$this->checkExpireDate($share);
$this->checkShare($share);
} catch (ShareNotFound $e) {
unset($shares[$key]);
}
@ -1423,7 +1423,7 @@ class Manager implements IManager {
$share = $provider->getShareById($id, $recipient);
$this->checkExpireDate($share);
$this->checkShare($share);
return $share;
}
@ -1507,7 +1507,7 @@ class Manager implements IManager {
throw new ShareNotFound($this->l->t('The requested share does not exist anymore'));
}
$this->checkExpireDate($share);
$this->checkShare($share);
/*
* Reduce the permissions for link or email shares if public upload is not enabled
@ -1520,11 +1520,25 @@ class Manager implements IManager {
return $share;
}
protected function checkExpireDate($share) {
/**
* Check expire date and disabled owner
*
* @throws ShareNotFound
*/
protected function checkShare(IShare $share): void {
if ($share->isExpired()) {
$this->deleteShare($share);
throw new ShareNotFound($this->l->t('The requested share does not exist anymore'));
}
if ($this->config->getAppValue('files_sharing', 'hide_disabled_user_shares', 'no') === 'yes') {
$uids = array_unique([$share->getShareOwner(),$share->getSharedBy()]);
foreach ($uids as $uid) {
$user = $this->userManager->get($uid);
if (($user !== null) && !$user->isEnabled()) {
throw new ShareNotFound($this->l->t('The requested share comes from a disabled user'));
}
}
}
}
/**

Loading…
Cancel
Save