From 7463fd83b8a53c7e54d4d022bf6b36df2232b4ed Mon Sep 17 00:00:00 2001 From: Darko Luketic Date: Thu, 3 Nov 2022 15:52:11 +0100 Subject: [PATCH] added some utility functions --- keycloakclaims/utils.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/keycloakclaims/utils.go b/keycloakclaims/utils.go index 1f95c50..58a9ae3 100644 --- a/keycloakclaims/utils.go +++ b/keycloakclaims/utils.go @@ -1,5 +1,8 @@ package keycloakclaims +// RoleInRoles returns true if role is present in the claims. +// +// Deprecated: RoleInRoles will be replaced by HasRole func RoleInRoles(role string, claims *Claims) bool { for _, v := range claims.RealmAccess.Roles { if role == v { @@ -8,3 +11,25 @@ func RoleInRoles(role string, claims *Claims) bool { } return false } + +// HasRole returns true if role is present in the claims. +func HasRole(query string, claims *Claims) bool { + for _, role := range claims.RealmAccess.Roles { + if query == role { + return true + } + } + return false +} + +// HasAnyRole returns true if any of the given roles is present in the claims. +func HasAnyRole(query []string, claims *Claims) bool { + for _, q := range query { + for _, role := range claims.RealmAccess.Roles { + if q == role { + return true + } + } + } + return false +}