config = $config; $this->groupManager = $groupManager; $this->dbConnection = $dbConnection; } /** * @NoAdminRequired * * @return JSONResponse */ public function getAdmins():JSONResponse { $adminGroup = $this->groupManager->get('admin'); // Admin Group should always exist, just catch for safety's sake if (!$adminGroup) { return new JSONResponse([]); } $adminUsers = $adminGroup->getUsers(); $uids = []; foreach ($adminUsers as $adminUser) { if (!$adminUser->isEnabled()) { continue; } $uids[] = [ 'id' => $adminUser->getUID(), 'displayname' => $adminUser->getDisplayName(), 'internal' => true, ]; } $query = $this->dbConnection->getQueryBuilder(); $query->select(['id', 'displayname']) ->from('privacy_admins'); $stmt = $query->execute(); foreach ($stmt->fetchAll(\PDO::FETCH_ASSOC) as $row) { $uids[] = [ 'id' => (int)$row['id'], 'displayname' => (string)$row['displayname'], 'internal' => false, ]; } return new JSONResponse($uids, Http::STATUS_OK); } }