mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-07 08:57:12 +00:00
37 lines
872 B
Go
37 lines
872 B
Go
package api
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/pkg/extensions"
|
|
)
|
|
|
|
var (
|
|
ssoAdminBindMu sync.RWMutex
|
|
ssoAdminEndpointsBinder extensions.BindSSOAdminEndpointsFunc
|
|
)
|
|
|
|
// SetSSOAdminEndpointsBinder registers a binder that can replace or decorate
|
|
// default SSO admin endpoint handlers.
|
|
func SetSSOAdminEndpointsBinder(binder extensions.BindSSOAdminEndpointsFunc) {
|
|
ssoAdminBindMu.Lock()
|
|
defer ssoAdminBindMu.Unlock()
|
|
ssoAdminEndpointsBinder = binder
|
|
}
|
|
|
|
func resolveSSOAdminEndpoints(defaults extensions.SSOAdminEndpoints, runtime extensions.SSOAdminRuntime) extensions.SSOAdminEndpoints {
|
|
ssoAdminBindMu.RLock()
|
|
binder := ssoAdminEndpointsBinder
|
|
ssoAdminBindMu.RUnlock()
|
|
|
|
if binder == nil || defaults == nil {
|
|
return defaults
|
|
}
|
|
|
|
resolved := binder(defaults, runtime)
|
|
if resolved == nil {
|
|
return defaults
|
|
}
|
|
|
|
return resolved
|
|
}
|