mirror of
https://github.com/owncast/owncast.git
synced 2025-11-02 03:54:54 +08:00
User repository (#3795)
* It builds with the new user repository * fix(test): fix broken test * fix(api): fix registration endpoint that was broken after the change * fix(test): update test to reflect new user repository * fix: use interface type instead of concrete type * fix: restore commented out code
This commit is contained in:
36
models/user.go
Normal file
36
models/user.go
Normal file
@ -0,0 +1,36 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/owncast/owncast/utils"
|
||||
)
|
||||
|
||||
const (
|
||||
moderatorScopeKey = "MODERATOR"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
CreatedAt time.Time `json:"createdAt"`
|
||||
DisabledAt *time.Time `json:"disabledAt,omitempty"`
|
||||
NameChangedAt *time.Time `json:"nameChangedAt,omitempty"`
|
||||
AuthenticatedAt *time.Time `json:"-"`
|
||||
ID string `json:"id"`
|
||||
DisplayName string `json:"displayName"`
|
||||
PreviousNames []string `json:"previousNames"`
|
||||
Scopes []string `json:"scopes,omitempty"`
|
||||
DisplayColor int `json:"displayColor"`
|
||||
IsBot bool `json:"isBot"`
|
||||
Authenticated bool `json:"authenticated"`
|
||||
}
|
||||
|
||||
// IsEnabled will return if this single user is enabled.
|
||||
func (u *User) IsEnabled() bool {
|
||||
return u.DisabledAt == nil
|
||||
}
|
||||
|
||||
// IsModerator will return if the user has moderation privileges.
|
||||
func (u *User) IsModerator() bool {
|
||||
_, hasModerationScope := utils.FindInSlice(u.Scopes, moderatorScopeKey)
|
||||
return hasModerationScope
|
||||
}
|
||||
Reference in New Issue
Block a user