42 lines
1 KiB
Go
42 lines
1 KiB
Go
package models
|
|
|
|
// UserTable is the name of the table the [`User`] model is stored in.
|
|
const UserTable = "users"
|
|
|
|
// User represents a distillery user
|
|
type User struct {
|
|
Pk uint `gorm:"column:pk;primaryKey"`
|
|
|
|
User string `gorm:"column:user;not null;unique"` // name of the user
|
|
PasswordHash []byte `gorm:"column:password"` // password of the user, hashed
|
|
|
|
TOTPEnabled *bool `gorm:"column:totpenabled"` // is totp enabled for the user
|
|
TOTPURL string `gorm:"column:totp"` // the totp of the user
|
|
|
|
Enabled *bool `gorm:"enabled;not null"`
|
|
Admin *bool `gorm:"column:admin;not null"`
|
|
}
|
|
|
|
func (user *User) IsAdmin() bool {
|
|
return user.Admin != nil && *user.Admin
|
|
}
|
|
|
|
func (user *User) SetAdmin(v bool) {
|
|
user.Admin = &v
|
|
}
|
|
|
|
func (user *User) IsEnabled() bool {
|
|
return user.Enabled != nil && *user.Enabled
|
|
}
|
|
|
|
func (user *User) SetEnabled(v bool) {
|
|
user.Enabled = &v
|
|
}
|
|
|
|
func (user *User) IsTOTPEnabled() bool {
|
|
return user.TOTPEnabled != nil && *user.TOTPEnabled
|
|
}
|
|
|
|
func (user *User) SetTOTPEnabled(v bool) {
|
|
user.TOTPEnabled = &v
|
|
}
|