From 397e04ebd9802d711a109822c3304bdf87b3a1ce Mon Sep 17 00:00:00 2001 From: Robin Lambertz Date: Fri, 27 Mar 2020 18:10:51 +0100 Subject: caddyauth: Add Metadata field to caddyauth.User (#3174) * caddyauth: Add Metadata field to caddyauth.User * Apply gofmt * Tidy it up a bit Co-authored-by: Matthew Holt --- modules/caddyhttp/caddyauth/caddyauth.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'modules') diff --git a/modules/caddyhttp/caddyauth/caddyauth.go b/modules/caddyhttp/caddyauth/caddyauth.go index dc1dc99..a6165d4 100644 --- a/modules/caddyhttp/caddyauth/caddyauth.go +++ b/modules/caddyhttp/caddyauth/caddyauth.go @@ -77,7 +77,10 @@ func (a Authentication) ServeHTTP(w http.ResponseWriter, r *http.Request, next c } repl := r.Context().Value(caddy.ReplacerCtxKey).(*caddy.Replacer) - repl.Set("http.authentication.user.id", user.ID) + repl.Set("http.auth.user.id", user.ID) + for k, v := range user.Metadata { + repl.Set("http.auth.user."+k, v) + } return next.ServeHTTP(w, r) } @@ -92,7 +95,15 @@ type Authenticator interface { // User represents an authenticated user. type User struct { + // The ID of the authenticated user. ID string + + // Any other relevant data about this + // user. Keys should be adhere to Caddy + // conventions (snake_casing), as all + // keys will be made available as + // placeholders. + Metadata map[string]string } // Interface guards -- cgit v1.2.3