package settings import ( "strings" "github.com/filebrowser/filebrowser/v2/rules" ) // AuthMethod describes an authentication method. type AuthMethod string // Settings contain the main settings of the application. type Settings struct { Key []byte `json:"key"` Signup bool `json:"signup"` Defaults UserDefaults `json:"defaults"` AuthMethod AuthMethod `json:"authMethod"` Branding Branding `json:"branding"` Commands map[string][]string `json:"commands"` Shell []string `json:"shell"` Rules []rules.Rule `json:"rules"` } // GetRules implements rules.Provider. func (s *Settings) GetRules() []rules.Rule { return s.Rules } // Server specific settings. type Server struct { Root string `json:"root"` BaseURL string `json:"baseURL"` TLSKey string `json:"tlsKey"` TLSCert string `json:"tlsCert"` Port string `json:"port"` Address string `json:"address"` Log string `json:"log"` } // Clean cleans any variables that might need cleaning. func (s *Server) Clean() { s.BaseURL = strings.TrimSuffix(s.BaseURL, "/") }