Fixed creation of users + better frontend handling of permissions

This commit is contained in:
cdricms
2025-03-06 17:34:52 +01:00
parent 3c6038bce1
commit 7cb633b4c6
46 changed files with 1511 additions and 909 deletions

View File

@@ -8,9 +8,11 @@ import (
core "fr.latosa-escrima/core"
"fr.latosa-escrima/core/models"
"fr.latosa-escrima/utils"
)
func HandleNew(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
var user models.User
err := json.NewDecoder(r.Body).Decode(&user)
if err != nil {
@@ -22,15 +24,8 @@ func HandleNew(w http.ResponseWriter, r *http.Request) {
}
log.Println("User : ", user)
res, err := user.Insert(core.DB, context.Background())
res, err := user.Insert(core.DB, ctx)
log.Println(res)
// if res == nil {
// core.JSONError{
// Status: core.Error,
// Message: "The user couldn't be inserted.",
// }.Respond(w, http.StatusNotAcceptable)
// return
// }
if err != nil {
core.JSONError{
@@ -40,6 +35,24 @@ func HandleNew(w http.ResponseWriter, r *http.Request) {
return
}
userRoles := utils.Map(user.Roles, func(role models.Role) models.UserToRole {
return models.UserToRole{
UserID: user.UserID,
RoleID: role.ID,
}
})
for _, userRole := range userRoles {
_, err := core.DB.NewInsert().Model(&userRole).Ignore().Exec(ctx)
if err != nil {
core.JSONError{
Status: core.Error,
Message: err.Error(),
}.Respond(w, http.StatusInternalServerError)
return
}
}
core.JSONSuccess{
Status: core.Success,
Message: "User inserted successfully.",