mirror of
https://github.com/DJSundog/wg-portal.git
synced 2024-11-27 09:00:03 -05:00
37 lines
977 B
Go
37 lines
977 B
Go
package users
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type UserSource string
|
|
|
|
const (
|
|
UserSourceLdap UserSource = "ldap" // LDAP / ActiveDirectory
|
|
UserSourceDatabase UserSource = "db" // sqlite / mysql database
|
|
UserSourceOIDC UserSource = "oidc" // open id connect, TODO: implement
|
|
)
|
|
|
|
// User is the user model that gets linked to peer entries, by default an empty usermodel with only the email address is created
|
|
type User struct {
|
|
// required fields
|
|
Email string `gorm:"primaryKey" form:"email" binding:"required,email"`
|
|
Source UserSource
|
|
IsAdmin bool
|
|
|
|
// optional fields
|
|
Firstname string `form:"firstname" binding:"required"`
|
|
Lastname string `form:"lastname" binding:"required"`
|
|
Phone string `form:"phone" binding:"omitempty"`
|
|
|
|
// optional, integrated password authentication
|
|
Password string `form:"password" binding:"omitempty"`
|
|
|
|
// database internal fields
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
DeletedAt gorm.DeletedAt `gorm:"index"`
|
|
}
|