feat: Users API, ownership transfer and removal of the legacy role string
This commit is contained in:
1 parent
094df63a7f
commit
80f7037d3a
124 files changed
+4644
-824
No files matched your search
@@ -19,6 +19,9 @@ var ErrUsernameTaken = errors.New("username taken")
|
||||
var ErrInvalidLookup = errors.New("invalid user lookup")
|
||||
var ErrVerificationEmailNotSent = errors.New("verification email not sent")
|
||||
var ErrPasswordTooLong = errors.New("password too long")
|
||||
var ErrRoleChanged = errors.New("user role changed concurrently")
|
||||
var ErrInvalidTransfer = errors.New("invalid ownership transfer")
|
||||
var ErrConfirmationMismatch = errors.New("confirmation email does not match")
|
||||
|
||||
const MaxLookupIDs = 100
|
||||
|
||||
@@ -31,13 +34,6 @@ func ValidatePassword(password string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
type Role string
|
||||
|
||||
const (
|
||||
RoleOwner Role = "owner"
|
||||
RoleAdmin Role = "admin"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
ID uint32 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
@@ -46,7 +42,6 @@ type User struct {
|
||||
Email string `json:"email"`
|
||||
DisplayName string `json:"display_name"`
|
||||
IsVerified bool `json:"is_verified"`
|
||||
Role Role `json:"role"`
|
||||
RoleID uint32 `json:"role_id"`
|
||||
VerificationCode string `json:"verification_code"`
|
||||
VerificationExpiration time.Time `json:"verification_expiration"`
|
||||
|
||||
@@ -16,4 +16,6 @@ type Repository interface {
|
||||
ClearVerificationCode(userId uint32) (User, error)
|
||||
ResetPassword(userId uint32, hashedPassword string) (User, error)
|
||||
UpdateDisplayName(userId uint32, displayName string) (User, error)
|
||||
UpdateRole(id uint32, from uint32, to uint32) (User, error)
|
||||
TransferOwnership(from uint32, to uint32, ownerRoleID uint32, formerRoleID uint32) error
|
||||
}
|
||||
Reference in new issue
Block a user