45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package models
|
|
|
|
import (
|
|
"encoding/gob"
|
|
"strconv"
|
|
"time"
|
|
|
|
"gitea.zokki.net/zokki/uni/web43-diary/context"
|
|
"gitea.zokki.net/zokki/uni/web43-diary/internal/database"
|
|
)
|
|
|
|
type User struct {
|
|
database.SQLTable
|
|
ID uint32 `json:"id,omitempty" db:"NOT NULL PRIMARY KEY AUTO_INCREMENT"`
|
|
CreationTime time.Time `json:"creationTime,omitempty" db:"NOT NULL DEFAULT CURRENT_TIMESTAMP"`
|
|
FirstName string `json:"firstName,omitempty" db:"NOT NULL"`
|
|
LastName string `json:"lastName,omitempty" db:"NOT NULL"`
|
|
Username string `json:"username,omitempty" db:"NOT NULL UNIQUE"`
|
|
Role UserRole `json:"role,omitempty" db:"NOT NULL DEFAULT 0"`
|
|
|
|
Password string `json:"password,omitempty" dbType:"VARCHAR(128)" db:"NOT NULL"` // Hashed password
|
|
Salt string `json:"salt,omitempty" dbType:"VARCHAR(64)" db:"NOT NULL"`
|
|
}
|
|
|
|
func init() {
|
|
database.AddCreateTableQueue(&User{})
|
|
gob.Register(&User{})
|
|
}
|
|
|
|
func (user *User) LoadForeignValues(ctx *context.Context) error {
|
|
return nil
|
|
}
|
|
|
|
func (user *User) IDString() string {
|
|
return strconv.FormatUint(uint64(user.ID), 10)
|
|
}
|
|
|
|
func (user *User) Initials() string {
|
|
return user.FirstName[:1] + user.LastName[:1]
|
|
}
|
|
|
|
func (user *User) FullName() string {
|
|
return user.FirstName + " " + user.LastName
|
|
}
|