func Post(c *echo.Context) error { u := users.User{} err := utils.ParseJSONBody(c, &u) if err != nil { return err } if u.Email == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "email is missing", }, }, }) } if u.FirstName == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "first-name is missing", }, }, }) } if u.LastName == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "last-name is missing", }, }, }) } if u.Password == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "password is missing", }, }, }) } newUser, err := users.CreateUser( true, u.Email, u.FirstName, u.LastName, u.Password, false, ) switch err { case users.UserDuplicated: return c.JSON(http.StatusConflict, hash{ "error": [1]hash{ hash{ "detail": err.Error(), }, }, }) case users.UserNotCreated: return err } winpass := utils.RandomString(8) + "s4D+" sam, err := ldap.AddUser(newUser.Id, winpass) if err != nil { return err } err = users.UpdateUserAd(newUser.Id, sam, winpass, "intra.localdomain.com") if err != nil { return err } return utils.JSON(c, http.StatusCreated, newUser) }
func Post(c *echo.Context) error { var attr hash err := utils.ParseJSONBody(c, &attr) if err != nil { return err } data, ok := attr["data"].(map[string]interface{}) if ok == false { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "data is missing", }, }, }) } attributes, ok := data["attributes"].(map[string]interface{}) if ok == false { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "attributes is missing", }, }, }) } email, ok := attributes["email"].(string) if ok == false || email == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "email is missing", }, }, }) } firstName, ok := attributes["first_name"].(string) if ok == false || firstName == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "first_name is missing", }, }, }) } lastName, ok := attributes["last_name"].(string) if ok == false || lastName == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "last_name is missing", }, }, }) } password, ok := attributes["password"].(string) if ok == false || password == "" { return c.JSON(http.StatusBadRequest, hash{ "error": [1]hash{ hash{ "detail": "password is missing", }, }, }) } newUser, err := users.CreateUser( true, email, firstName, lastName, password, false, ) switch err { case users.UserDuplicated: return c.JSON(http.StatusConflict, hash{ "error": [1]hash{ hash{ "detail": err.Error(), }, }, }) case users.UserNotCreated: return err } winpass := utils.RandomString(8) + "s4D+" sam, err := ldap.AddUser(newUser.Id, winpass) if err != nil { return err } err = users.UpdateUserAd(newUser.Id, sam, winpass) if err != nil { return err } return c.JSON(http.StatusCreated, hash{ "data": hash{ "id": newUser.Id, }, }) }