Basic provisioning api
Includes: login, logout, and ping.
This commit is contained in:
43
config/provisioning.go
Normal file
43
config/provisioning.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
as "maunium.net/go/mautrix/appservice"
|
||||
)
|
||||
|
||||
type provisioning struct {
|
||||
Prefix string `yaml:"prefix"`
|
||||
SharedSecret string `yaml:"shared_secret"`
|
||||
}
|
||||
|
||||
func (p *provisioning) validate() error {
|
||||
if p.Prefix == "" {
|
||||
p.Prefix = "/_matrix/provision/v1"
|
||||
}
|
||||
|
||||
if strings.ToLower(p.SharedSecret) == "generate" {
|
||||
p.SharedSecret = as.RandomString(64)
|
||||
|
||||
configUpdated = true
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *provisioning) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
type rawProvisioning provisioning
|
||||
|
||||
raw := rawProvisioning{}
|
||||
if err := unmarshal(&raw); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
*p = provisioning(raw)
|
||||
|
||||
return p.validate()
|
||||
}
|
||||
|
||||
func (p *provisioning) Enabled() bool {
|
||||
return strings.ToLower(p.SharedSecret) != "disable"
|
||||
}
|
||||
Reference in New Issue
Block a user