# HG changeset patch # User Peter Sanchez # Date 1684269154 21600 # Tue May 16 14:32:34 2023 -0600 # Node ID 3cf82cd459f520c13b886469caa2e5c94149f139 # Parent cc9a5fb3df753336f775ec2eb82eb970ff782035 Displaying scope access in metadata diff --git a/routes.go b/routes.go --- a/routes.go +++ b/routes.go @@ -674,6 +674,24 @@ return err } + var scopes []string + for _, scope := range s.config.Scopes { + parts := strings.Split(scope, ":") + if len(parts) > 1 { + access := parts[1] + if access != "RO" && access != "RW" { + parts = parts[:1] // Invalid access, reset + scope = parts[0] + } else { + scopes = append(scopes, fmt.Sprintf("%s:%s", parts[0], parts[1])) + } + } + if len(parts) == 1 { + scopes = append(scopes, fmt.Sprintf("%s:RO", scope)) + scopes = append(scopes, fmt.Sprintf("%s:RW", scope)) + } + } + ret := struct { Issuer string `json:"issuer"` AuthEndpoint string `json:"authorization_endpoint"` @@ -688,7 +706,7 @@ Issuer: origin, AuthEndpoint: aURL, TokenEndpoint: tURL, - Scopes: s.config.Scopes, + Scopes: scopes, Responses: []string{"code"}, Grants: []string{"authorization_code"}, Doc: s.config.DocumentationURL,