From c98b0462e33011a99aeaba582d82e52fdb14c3ae Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 11 Jan 2024 13:28:25 +0100 Subject: fix(admin role): fix old and wrong way to determine whether user is admin - fixes Settings knowing who is an admin of non-local group backend groups - obsoletes and removes a little old, deprecated code - double checks proper parameter type on Group\Manager::isAdmin - also fixes legacy OC_User code to check whether user is an admin Signed-off-by: Arthur Schiwon --- lib/private/Group/Manager.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/private/Group') diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php index eb9daebb222..dafbe4295a4 100644 --- a/lib/private/Group/Manager.php +++ b/lib/private/Group/Manager.php @@ -52,6 +52,7 @@ use OCP\IGroup; use OCP\IGroupManager; use OCP\IUser; use Psr\Log\LoggerInterface; +use function is_string; /** * Class Manager @@ -356,7 +357,7 @@ class Manager extends PublicEmitter implements IGroupManager { */ public function isAdmin($userId) { foreach ($this->backends as $backend) { - if ($backend->implementsActions(Backend::IS_ADMIN) && $backend->isAdmin($userId)) { + if (is_string($userId) && $backend->implementsActions(Backend::IS_ADMIN) && $backend->isAdmin($userId)) { return true; } } -- cgit v1.2.3