craban/server/app/user.go

46 lines
1 KiB
Go
Raw Permalink Normal View History

2021-09-13 11:16:25 +01:00
package app
import (
"fmt"
"git.ctrlz.es/mgdelacroix/craban/model"
"git.ctrlz.es/mgdelacroix/craban/utils"
)
func (a *App) CreateUser(username, password, name, mail string, admin bool) (*model.User, error) {
2021-09-13 11:16:25 +01:00
hashedPassword, err := utils.Encrypt(password)
if err != nil {
return nil, fmt.Errorf("cannot create user: %w", err)
}
newUser := &model.User{
Username: username,
Password: hashedPassword,
Name: name,
Mail: mail,
Admin: admin,
2021-09-13 11:16:25 +01:00
}
if err := newUser.IsValid(); err != nil {
return nil, fmt.Errorf("invalid user for creation: %w", err)
}
return a.Store.User().Create(newUser)
2021-09-13 11:16:25 +01:00
}
func (a *App) ListUsers() ([]*model.User, error) {
return a.Store.User().List()
2021-09-13 11:16:25 +01:00
}
func (a *App) DeleteUserByUsername(username string) error {
return a.Store.User().DeleteByUsername(username)
}
2021-09-13 21:59:52 +01:00
func (a *App) GetUserByUsername(username string) (*model.User, error) {
return a.Store.User().GetByUsername(username)
}
func (a *App) GetUserByID(userID int) (*model.User, error) {
return a.Store.User().GetByID(userID)
2021-09-13 11:16:25 +01:00
}