Files
proxui/backend/internal/auth/principal.go
T
2026-06-10 16:32:46 +02:00

28 lines
575 B
Go

package auth
import (
"context"
"net/http"
)
type Principal struct {
Subject string
Email string
Role string
}
type principalContextKey struct{}
func PrincipalFromContext(ctx context.Context) (Principal, bool) {
principal, ok := ctx.Value(principalContextKey{}).(Principal)
return principal, ok
}
func ContextWithPrincipal(ctx context.Context, principal Principal) context.Context {
return context.WithValue(ctx, principalContextKey{}, principal)
}
func PrincipalFromRequest(r *http.Request) (Principal, bool) {
return PrincipalFromContext(r.Context())
}