43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
package dbhandler
|
|
|
|
import (
|
|
"git.acooldomain.co/server-manager/backend-kubernetes-go/models"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
func HashPassword(password string) (string, error) {
|
|
bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
|
|
return string(bytes), err
|
|
}
|
|
|
|
type InviteUserRequest struct {
|
|
Email string `json:"email"`
|
|
InvitingUser string `json:"inviting_user"`
|
|
Permissions models.Permission `json:"permissions"`
|
|
}
|
|
|
|
type InviteToken struct {
|
|
Email string `json:"email"`
|
|
Permissions models.Permission `json:"permissions"`
|
|
Token string `json:"token"`
|
|
}
|
|
|
|
type UserSignupRequest struct {
|
|
Token InviteToken `json:"token"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password"`
|
|
}
|
|
|
|
type UserPassAuthanticationDbHandler interface {
|
|
AuthenticateUser(username string, password string) (models.Permission, error)
|
|
CreateUser(username string, password string, permissions models.Permission) error
|
|
RemoveUser(username string) error
|
|
SetPermissions(username string, permissions models.Permission) error
|
|
SetPassword(username string, password string) error
|
|
}
|
|
|
|
type InviteTokenDbHandler interface {
|
|
SaveInviteToken(token string, email string, permissions models.Permission) error
|
|
GetInviteToken(token string) (*InviteToken, error)
|
|
}
|