You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1008 B
36 lines
1008 B
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 |
|
}
|
|
|