40 lines
817 B
Go
40 lines
817 B
Go
package httphandlers
|
|
|
|
import (
|
|
"context"
|
|
|
|
"fiskerinc.com/modules/adminroles"
|
|
"fiskerinc.com/modules/common/authproviders"
|
|
c "fiskerinc.com/modules/common/context"
|
|
)
|
|
|
|
type AuthBase struct {
|
|
}
|
|
|
|
func (a AuthBase) hasRoles(requiredRoles map[string][]adminroles.RoleID) bool {
|
|
if len(requiredRoles) == 0 {
|
|
return false
|
|
}
|
|
|
|
for _, roles := range requiredRoles {
|
|
if len(roles) > 0 {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func (a AuthBase) getRolesForProvider(provider string, required map[string][]adminroles.RoleID) (roles []adminroles.RoleID, ok bool) {
|
|
if roles, ok = required[provider]; ok {
|
|
return
|
|
}
|
|
|
|
roles, ok = required[authproviders.Default]
|
|
return
|
|
}
|
|
|
|
func (a AuthBase) addContext(ctx context.Context, key c.ContextType, value string) context.Context {
|
|
return context.WithValue(ctx, key, value)
|
|
}
|