mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-23 22:29:59 -05:00
23 lines
522 B
Go
23 lines
522 B
Go
package roles
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
|
|
"github.com/opencloud-eu/opencloud/pkg/middleware"
|
|
"go-micro.dev/v4/metadata"
|
|
)
|
|
|
|
// ReadRoleIDsFromContext extracts roleIDs from the metadata context and returns them as []string
|
|
func ReadRoleIDsFromContext(ctx context.Context) (roleIDs []string, ok bool) {
|
|
roleIDsJSON, ok := metadata.Get(ctx, middleware.RoleIDs)
|
|
if !ok {
|
|
return nil, false
|
|
}
|
|
err := json.Unmarshal([]byte(roleIDsJSON), &roleIDs)
|
|
if err != nil {
|
|
return nil, false
|
|
}
|
|
return roleIDs, true
|
|
}
|