2019-05-06 01:40:41 +03:00
|
|
|
package models
|
|
|
|
|
|
|
|
type User struct {
|
2020-05-30 23:19:05 +03:00
|
|
|
ID string `json:"id" gorm:"primary_key"`
|
|
|
|
ApiKey string `json:"api_key" gorm:"unique"`
|
|
|
|
Password string `json:"-"`
|
|
|
|
CreatedAt CustomTime `gorm:"type:timestamp; default:CURRENT_TIMESTAMP"`
|
|
|
|
LastLoggedInAt CustomTime `gorm:"type:timestamp; default:CURRENT_TIMESTAMP"`
|
2020-09-12 17:09:23 +03:00
|
|
|
BadgesEnabled bool `json:"-" gorm:"not null; default:false; type: bool"`
|
2019-05-06 01:40:41 +03:00
|
|
|
}
|
2020-05-24 14:41:19 +03:00
|
|
|
|
|
|
|
type Login struct {
|
2020-05-24 17:34:32 +03:00
|
|
|
Username string `schema:"username"`
|
|
|
|
Password string `schema:"password"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type Signup struct {
|
|
|
|
Username string `schema:"username"`
|
|
|
|
Password string `schema:"password"`
|
|
|
|
PasswordRepeat string `schema:"password_repeat"`
|
2020-05-24 14:41:19 +03:00
|
|
|
}
|
2020-05-24 22:42:15 +03:00
|
|
|
|
2020-06-07 20:28:32 +03:00
|
|
|
type CredentialsReset struct {
|
|
|
|
PasswordOld string `schema:"password_old"`
|
|
|
|
PasswordNew string `schema:"password_new"`
|
|
|
|
PasswordRepeat string `schema:"password_repeat"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *CredentialsReset) IsValid() bool {
|
|
|
|
return validatePassword(c.PasswordNew) &&
|
|
|
|
c.PasswordNew == c.PasswordRepeat
|
|
|
|
}
|
|
|
|
|
2020-05-24 22:42:15 +03:00
|
|
|
func (s *Signup) IsValid() bool {
|
2020-06-07 20:28:32 +03:00
|
|
|
return validateUsername(s.Username) &&
|
|
|
|
validatePassword(s.Password) &&
|
2020-05-24 22:42:15 +03:00
|
|
|
s.Password == s.PasswordRepeat
|
|
|
|
}
|
2020-06-07 20:28:32 +03:00
|
|
|
|
|
|
|
func validateUsername(username string) bool {
|
2020-08-30 02:24:27 +03:00
|
|
|
return len(username) >= 3 && username != "current"
|
2020-06-07 20:28:32 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
func validatePassword(password string) bool {
|
|
|
|
return len(password) >= 6
|
|
|
|
}
|