User center page

This commit is contained in:
2024-04-21 12:20:06 +08:00
parent ee6e7324b2
commit 6b26cad796
23 changed files with 353 additions and 61 deletions

View File

@ -23,8 +23,8 @@ type Account struct {
PersonalPage AccountPage `json:"personal_page"`
Contacts []AccountContact `json:"contacts"`
Sessions []AuthTicket `json:"sessions"`
Factors []AuthFactor `json:"factors"`
Tickets []AuthTicket `json:"tickets"`
Factors []AuthFactor `json:"factors"`
Events []ActionEvent `json:"events"`
MagicTokens []MagicToken `json:"-" gorm:"foreignKey:AssignTo"`

View File

@ -45,20 +45,20 @@ type AuthTicket struct {
func (v AuthTicket) IsAvailable() error {
if v.RequireMFA || v.RequireAuthenticate {
return fmt.Errorf("session isn't authenticated yet")
return fmt.Errorf("ticket isn't authenticated yet")
}
if v.AvailableAt != nil && time.Now().Unix() < v.AvailableAt.Unix() {
return fmt.Errorf("session isn't available yet")
return fmt.Errorf("ticket isn't available yet")
}
if v.ExpiredAt != nil && time.Now().Unix() > v.ExpiredAt.Unix() {
return fmt.Errorf("session expired")
return fmt.Errorf("ticket expired")
}
return nil
}
type AuthContext struct {
Ticket AuthTicket `json:"session"`
Ticket AuthTicket `json:"ticket"`
Account Account `json:"account"`
ExpiredAt time.Time `json:"expired_at"`
}

View File

@ -11,7 +11,7 @@ type ThirdClient struct {
Secret string `json:"secret"`
Urls datatypes.JSONSlice[string] `json:"urls"`
Callbacks datatypes.JSONSlice[string] `json:"callbacks"`
Sessions []AuthTicket `json:"sessions" gorm:"foreignKey:ClientID"`
Sessions []AuthTicket `json:"tickets" gorm:"foreignKey:ClientID"`
Notifications []Notification `json:"notifications" gorm:"foreignKey:SenderID"`
IsDraft bool `json:"is_draft"`
AccountID *uint `json:"account_id"`