backend/db_handler/user_pass_auth.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)
}