diff --git a/lib/Controller/UserInfoController.php b/lib/Controller/UserInfoController.php index 2a536efd..71522927 100644 --- a/lib/Controller/UserInfoController.php +++ b/lib/Controller/UserInfoController.php @@ -189,17 +189,28 @@ public function getInfo(): JSONResponse ]; + // Check for scopes + $scopeArray = preg_split('/ +/', $accessToken->getScope()); + $roles = []; foreach ($groups as $group) { array_push($roles, $group->getGID()); } - $rolesPayload = [ - 'roles' => $roles - ]; - $userInfoPayload = array_merge($userInfoPayload, $rolesPayload); - // Check for scopes - $scopeArray = preg_split('/ +/', $accessToken->getScope()); + if (in_array("roles", $scopeArray)) { + $rolesPayload = [ + 'roles' => $roles + ]; + $userInfoPayload = array_merge($userInfoPayload, $rolesPayload); + } + + if (in_array("groups", $scopeArray)) { + $groupsPayload = [ + 'groups' => $roles + ]; + $userInfoPayload = array_merge($userInfoPayload, $groupsPayload); + } + if (in_array("profile", $scopeArray)) { $profile = [ 'updated_at' => $user->getLastLogin(),