mirror of
https://github.com/SigNoz/signoz.git
synced 2026-02-03 08:33:26 +00:00
44 lines
958 B
Go
44 lines
958 B
Go
package user
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/SigNoz/signoz/pkg/errors"
|
|
"github.com/SigNoz/signoz/pkg/factory"
|
|
)
|
|
|
|
type Config struct {
|
|
Password PasswordConfig `mapstructure:"password"`
|
|
}
|
|
type PasswordConfig struct {
|
|
Reset ResetConfig `mapstructure:"reset"`
|
|
}
|
|
|
|
type ResetConfig struct {
|
|
AllowSelf bool `mapstructure:"allow_self"`
|
|
MaxTokenLifetime time.Duration `mapstructure:"max_token_lifetime"`
|
|
}
|
|
|
|
func NewConfigFactory() factory.ConfigFactory {
|
|
return factory.NewConfigFactory(factory.MustNewName("user"), newConfig)
|
|
}
|
|
|
|
func newConfig() factory.Config {
|
|
return &Config{
|
|
Password: PasswordConfig{
|
|
Reset: ResetConfig{
|
|
AllowSelf: false,
|
|
MaxTokenLifetime: 6 * time.Hour,
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
func (c Config) Validate() error {
|
|
if c.Password.Reset.MaxTokenLifetime <= 0 {
|
|
return errors.New(errors.TypeInvalidInput, errors.CodeInvalidInput, "user::password::reset::max_token_lifetime must be positive")
|
|
}
|
|
|
|
return nil
|
|
}
|