config

package
v0.0.0-...-0953be8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 6, 2023 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SessionKey            = "kitsquid_session"
	UserKey               = "user"
	TemplateContextKey    = "tplCtx"
	RemoteIPKey           = "remoteIp"
	KitVvzBaseURL         = "https://campus.kit.edu/sp/campus/all"
	FacultyIdx            = 0
	OverallRatingKey      = "overall"
	DeletedUserName       = "(gelöschter Benutzer)"
	MaxEventSearchResults = 25
	EventAccountDelete    = "account.delete"
)

Variables

View Source
var Messages = map[string]string{
	"signup_success":         "Du hast dich erfolgreich registriert. Eine Bestätigungsmail ist auf dem Weg in dein Postfach",
	"logout_success":         "Du hast dich erfolgreich ausgeloggt",
	"activate_failure":       "Dein Account konnte nicht aktiviert werden. Bitte wende dich an den Admin",
	"activate_success":       "Dein Account ist aktiviert. Du kannst dich jetzt einloggen",
	"account_change_success": "Deine Angaben wurden aktualisiert",
	"account_delete_success": "Dein Account wurde gelöscht",
}

Messages is a set of messages displayed to the user

TODO: Use proper i18n

Functions

func Db

func Db() *bolthold.Store

func EventBus

func EventBus() *hub.Hub

func Init

func Init()

Init loads a config and performs all related initializations

Types

type Config

type Config struct {
	Env        string `default:"development" env:"KITSQUID_ENV"`
	Version    string
	QuickStart bool   `default:"false" env:"KITSQUID_QUICK_START"`
	Port       int    `default:"8080" env:"KITSQUID_PORT"`
	Addr       string `default:"" env:"KITSQUID_ADDR"`
	URL        string `env:"KITSQUID_URL"`
	Rate       string `default:"60-M" env:"KITSQUID_RATE_LIMIT"`
	TLS        struct {
		Enable   bool   `default:"false" env:"KITSQUID_TLS"`
		KeyPath  string `default:"etc/key.pem" yaml:"key" env:"KITSQUID_TLS_KEY"`
		CertPath string `default:"etc/cert.pem" yaml:"cert" env:"KITSQUID_TLS_CERT"`
	}
	Db struct {
		Path     string `default:"kitsquid.db" env:"KITSQUID_DB_FILE"`
		Encoding string `default:"gob" env:"KITSQUID_DB_ENCODING"`
	}
	Mail struct {
		From string `default:"no-reply@kitsquid.de" env:"KITSQUID_MAIL_SENDER"`
		SMTP struct {
			Host     string `env:"SMTP_HOST"`
			Port     int    `default:"25" env:"SMTP_PORT"`
			User     string `env:"SMTP_USER"`
			Password string `env:"SMTP_PASSWORD"`
		}
	}
	Cache map[string]string
	Auth  struct {
		Salt    string `default:"0" env:"KITSQUID_AUTH_SALT"`
		Session struct {
			Timeout string `default:"1d" env:"KITSQUID_AUTH_SESSION_TIMEOUT"`
		}
		Admin struct {
			User     string `env:"KITSQUID_ADMIN_USER"`
			Password string `env:"KITSQUID_ADMIN_PASSWORD"`
			Gender   string `env:"KITSQUID_ADMIN_GENDER"`
			Major    string `env:"KITSQUID_ADMIN_MAJOR"`
			Degree   string `env:"KITSQUID_ADMIN_DEGREE"`
		}
		Whitelist []common.UserWhitelistItem
	}
	Recaptcha struct {
		ClientID     string `yaml:"client_id" env:"KITSQUAD_RECAPTCHA_ID"`
		ClientSecret string `yaml:"client_secret" env:"KITSQUAD_RECAPTCHA_SECRET"`
	}
	Misc struct {
		Pagesize int `default:"50"`
	}
	University struct {
		Majors               []string
		Degrees              []string
		WinterSemesterPrefix string `default:"WS"`
		SummerSemesterPrefix string `default:"SS"`
	}
}

Config contains all configurable and derived properties in this application

func Get

func Get() *Config
func (c *Config) ActivationLink(token string) string

ActivationLink generates an activation link Url from a given activation token

func (*Config) CacheDuration

func (c *Config) CacheDuration(key string, defaultVal time.Duration) time.Duration

CacheDuration returns a duration corresponding to the TTL of the cache with the given key

func (*Config) IsDev

func (c *Config) IsDev() bool

IsDev returns whether or not the application is supposed to run in development mode

func (*Config) ListenAddr

func (c *Config) ListenAddr() string

ListenAddr returns the address + port string for the web server to listen on

func (*Config) SMTPAuth

func (c *Config) SMTPAuth() smtp.Auth

SMTPAuth returns an SMTP authentication object

func (*Config) SMTPHost

func (c *Config) SMTPHost() string

SMTPHost returns the address + port string of the SMTP server to be used

func (*Config) SessionTimeout

func (c *Config) SessionTimeout() time.Duration

SessionTimeout returns a duration corresponding to a session's timeout

func (*Config) Validate

func (c *Config) Validate() error

Validate checks whether the loaded config is valid

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL