package admin import ( "fmt" "math/rand" "os" "time" "arimelody-web/global" ) type ( Session struct { Token string UserID string Expires time.Time } ) const TOKEN_LENGTH = 64 const TOKEN_CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" var ADMIN_BYPASS = func() bool { if global.Args["adminBypass"] == "true" { fmt.Println("WARN: Admin login is currently BYPASSED. (-adminBypass)") return true } return false }() var ADMIN_ID_DISCORD = func() string { id := os.Getenv("DISCORD_ADMIN") if id == "" { // fmt.Printf("WARN: Discord admin ID (DISCORD_ADMIN) was not provided.\n") } return id }() var sessions []*Session func createSession(username string, expires time.Time) Session { return Session{ Token: string(generateToken()), UserID: username, Expires: expires, } } func generateToken() string { var token []byte for i := 0; i < TOKEN_LENGTH; i++ { token = append(token, TOKEN_CHARS[rand.Intn(len(TOKEN_CHARS))]) } return string(token) }