From 92d2fb8771bbdeddda0f9593bf36b854729bbb40 Mon Sep 17 00:00:00 2001 From: Knut Ahlers Date: Fri, 30 Jun 2017 13:32:11 +0200 Subject: Allow group backend to declare users as admins Signed-off-by: Knut Ahlers --- lib/private/Group/Backend.php | 1 + lib/private/Group/Manager.php | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'lib/private/Group') diff --git a/lib/private/Group/Backend.php b/lib/private/Group/Backend.php index 1e8d62f5e42..001d8d9da66 100644 --- a/lib/private/Group/Backend.php +++ b/lib/private/Group/Backend.php @@ -38,6 +38,7 @@ abstract class Backend implements \OCP\GroupInterface { self::REMOVE_FROM_GOUP => 'removeFromGroup', self::COUNT_USERS => 'countUsersInGroup', self::GROUP_DETAILS => 'getGroupDetails', + self::IS_ADMIN => 'isAdmin', ]; /** diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php index 61b47fdd448..dad6ee18471 100644 --- a/lib/private/Group/Manager.php +++ b/lib/private/Group/Manager.php @@ -288,6 +288,11 @@ class Manager extends PublicEmitter implements IGroupManager { * @return bool if admin */ public function isAdmin($userId) { + foreach ($this->backends as $backend) { + if ($backend->implementsActions(\OC\Group\Backend::IS_ADMIN) && $backend->isAdmin($userId)) { + return true; + } + } return $this->isInGroup($userId, 'admin'); } -- cgit v1.2.3