From 4ea810db8784efc35fb35aa27a605c471eafc0ad Mon Sep 17 00:00:00 2001 From: Nicholas Thompson Date: Tue, 29 Oct 2024 08:45:54 +0200 Subject: [PATCH] Add support for get client scope permissions Add the permissions request for a client scope --- client.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/client.go b/client.go index ccff45fc..0efe0ff8 100644 --- a/client.go +++ b/client.go @@ -3721,6 +3721,21 @@ func (g *GoCloak) GetPermissionResources(ctx context.Context, token, realm, idOf return result, nil } +// GetScopePermissions returns permissions associated with the client scope +func (g *GoCloak) GetScopePermissions(ctx context.Context, token, realm, idOfClient, idOfScope string) ([]*PolicyRepresentation, error) { + const errMessage = "could not get scope permissions" + + var result []*PolicyRepresentation + resp, err := g.GetRequestWithBearerAuth(ctx, token). + SetResult(&result). + Get(g.getAdminRealmURL(realm, "clients", idOfClient, "authz", "resource-server", "scope", idOfScope, "permissions")) + if err := checkForError(resp, err, errMessage); err != nil { + return nil, err + } + + return result, nil +} + // GetPermissionScopes returns a client's scopes configured for the given permission id func (g *GoCloak) GetPermissionScopes(ctx context.Context, token, realm, idOfClient, permissionID string) ([]*PermissionScope, error) { const errMessage = "could not get permission scopes"