diff options
author | provokateurin <kate@provokateurin.de> | 2025-02-24 11:28:28 +0100 |
---|---|---|
committer | provokateurin <kate@provokateurin.de> | 2025-03-03 12:49:01 +0100 |
commit | 0df4817be1eb04c78fd83380fb97f4c2cea65380 (patch) | |
tree | 28426ff7364a1bfd5963d3494881549c7f9b48b4 /lib | |
parent | dd47daa4a8bc21dd478b034ca1ffe9a3626b57b4 (diff) | |
download | nextcloud-server-0df4817be1eb04c78fd83380fb97f4c2cea65380.tar.gz nextcloud-server-0df4817be1eb04c78fd83380fb97f4c2cea65380.zip |
fix(Share20\Manager): Propagate user and group deletion to remote share providers
Signed-off-by: provokateurin <kate@provokateurin.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Share20/Manager.php | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index a84481730c4..1749783bc51 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -1540,8 +1540,14 @@ class Manager implements IManager { * @inheritdoc */ public function groupDeleted($gid) { - $provider = $this->factory->getProviderForType(IShare::TYPE_GROUP); - $provider->groupDeleted($gid); + foreach ([IShare::TYPE_GROUP, IShare::TYPE_REMOTE_GROUP] as $type) { + try { + $provider = $this->factory->getProviderForType($type); + } catch (ProviderException $e) { + continue; + } + $provider->groupDeleted($gid); + } $excludedGroups = $this->config->getAppValue('core', 'shareapi_exclude_groups_list', ''); if ($excludedGroups === '') { @@ -1561,8 +1567,14 @@ class Manager implements IManager { * @inheritdoc */ public function userDeletedFromGroup($uid, $gid) { - $provider = $this->factory->getProviderForType(IShare::TYPE_GROUP); - $provider->userDeletedFromGroup($uid, $gid); + foreach ([IShare::TYPE_GROUP, IShare::TYPE_REMOTE_GROUP] as $type) { + try { + $provider = $this->factory->getProviderForType($type); + } catch (ProviderException $e) { + continue; + } + $provider->userDeletedFromGroup($uid, $gid); + } } /** |