34 lines
826 B
Go
34 lines
826 B
Go
package auth
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
types "github.com/OliveTin/OliveTin/internal/auth/authpublic"
|
|
)
|
|
|
|
//gocyclo:ignore
|
|
func checkUserFromHeaders(context *types.AuthCheckingContext) *types.AuthenticatedUser {
|
|
u := &types.AuthenticatedUser{}
|
|
|
|
if context.Config.AuthHttpHeaderUsername != "" {
|
|
u.Username = getHeaderKeyOrEmpty(context.Request.Header, context.Config.AuthHttpHeaderUsername)
|
|
}
|
|
|
|
if context.Config.AuthHttpHeaderUserGroup != "" {
|
|
u.UsergroupLine = getHeaderKeyOrEmpty(context.Request.Header, context.Config.AuthHttpHeaderUserGroup)
|
|
}
|
|
|
|
if prov := getHeaderKeyOrEmpty(context.Request.Header, "provider"); prov != "" {
|
|
u.Provider = prov
|
|
}
|
|
return u
|
|
}
|
|
|
|
func getHeaderKeyOrEmpty(headers http.Header, key string) string {
|
|
values := headers.Values(key)
|
|
if len(values) > 0 {
|
|
return values[0]
|
|
}
|
|
return ""
|
|
}
|