mirror of
https://github.com/openziti/zrok.git
synced 2024-12-01 20:43:51 +01:00
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/go-openapi/runtime/middleware"
|
|
"github.com/openziti/zrok/build"
|
|
"github.com/openziti/zrok/controller/config"
|
|
"github.com/openziti/zrok/rest_model_zrok"
|
|
"github.com/openziti/zrok/rest_server_zrok/operations/metadata"
|
|
)
|
|
|
|
type configurationHandler struct {
|
|
cfg *config.Config
|
|
}
|
|
|
|
func newConfigurationHandler(cfg *config.Config) *configurationHandler {
|
|
return &configurationHandler{
|
|
cfg: cfg,
|
|
}
|
|
}
|
|
|
|
func (ch *configurationHandler) Handle(_ metadata.ConfigurationParams) middleware.Responder {
|
|
data := &rest_model_zrok.Configuration{
|
|
Version: build.String(),
|
|
InvitesOpen: cfg.Invites != nil && cfg.Invites.InvitesOpen,
|
|
RequiresInviteToken: cfg.Invites != nil && cfg.Invites.TokenStrategy == "store",
|
|
}
|
|
if cfg.Admin != nil {
|
|
data.TouLink = cfg.Admin.TouLink
|
|
}
|
|
if cfg.Invites != nil {
|
|
data.InviteTokenContact = cfg.Invites.TokenContact
|
|
}
|
|
if cfg.Passwords != nil {
|
|
data.PasswordRequirements = &rest_model_zrok.PasswordRequirements{
|
|
Length: int64(cfg.Passwords.Length),
|
|
RequireCapital: cfg.Passwords.RequireCapital,
|
|
RequireNumeric: cfg.Passwords.RequireNumeric,
|
|
RequireSpecial: cfg.Passwords.RequireSpecial,
|
|
ValidSpecialCharacters: cfg.Passwords.ValidSpecialCharacters,
|
|
}
|
|
}
|
|
return metadata.NewConfigurationOK().WithPayload(data)
|
|
}
|