mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-08-23 19:02:34 +02:00
Initial open source release
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
const (
|
||||
USER_TABLE = "users"
|
||||
)
|
||||
|
||||
// User is a database user
|
||||
type User struct {
|
||||
ID *uuid.UUID `gorm:"primary_key;not null;unique;type:uuid"`
|
||||
CreatedAt *time.Time `gorm:"not null;index;"`
|
||||
UpdatedAt *time.Time `gorm:"not null;index"`
|
||||
DeletedAt gorm.DeletedAt `gorm:"index;"`
|
||||
|
||||
Name string `gorm:"not null;"`
|
||||
Username string `gorm:"not null;unique;"`
|
||||
Email string `gorm:"unique;"`
|
||||
PasswordHash string `gorm:"type:varchar(255);"`
|
||||
RequirePasswordRenew bool `gorm:"default:false;"`
|
||||
|
||||
// MFA
|
||||
TOTPEnabled bool `gorm:"default:false;"`
|
||||
TOTPSecret string
|
||||
TOTPAuthURL string
|
||||
// TODO rename to MFARecoveryCode
|
||||
TOTPRecoveryCode string `gorm:"type:varchar(64);"`
|
||||
|
||||
// SSO id
|
||||
SSOID string
|
||||
|
||||
// maybe has one
|
||||
CompanyID *uuid.UUID `gorm:"type:uuid;index;"`
|
||||
Company *Company
|
||||
// has one
|
||||
RoleID *uuid.UUID `gorm:"not null;type:uuid;index"`
|
||||
Role *Role
|
||||
// APIKey
|
||||
APIKey string `gorm:"index"`
|
||||
}
|
||||
|
||||
func (User) TableName() string {
|
||||
return USER_TABLE
|
||||
}
|
||||
Reference in New Issue
Block a user