Fixed creation of users + better frontend handling of permissions
This commit is contained in:
@@ -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.",
|
||||
|
||||
Reference in New Issue
Block a user