feat: quiz and rbac
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package model
|
||||
|
||||
import "time"
|
||||
|
||||
// AdminRole is a named set of admin-panel permissions.
|
||||
type AdminRole struct {
|
||||
ID string `json:"id"`
|
||||
Key string `json:"key"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
IsSystem bool `json:"is_system"`
|
||||
Permissions []string `json:"permissions"`
|
||||
// MemberCount is how many staff hold the role, for the roles screen.
|
||||
MemberCount int `json:"member_count"`
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
// StaffMember is one account with admin-panel access.
|
||||
type StaffMember struct {
|
||||
UserID string `json:"user_id"`
|
||||
Handle string `json:"handle"`
|
||||
Name string `json:"name"`
|
||||
Email *string `json:"email,omitempty"`
|
||||
AvatarURL *string `json:"avatar_url,omitempty"`
|
||||
RoleID string `json:"role_id"`
|
||||
RoleKey string `json:"role_key"`
|
||||
RoleName string `json:"role_name"`
|
||||
BlockedAt *time.Time `json:"blocked_at,omitempty"`
|
||||
}
|
||||
|
||||
// StaffAccess is what the admin middleware needs about the caller.
|
||||
type StaffAccess struct {
|
||||
RoleKey string
|
||||
RoleName string
|
||||
Permissions []string
|
||||
Blocked bool
|
||||
}
|
||||
Reference in New Issue
Block a user