// EditMyOrganizationMembership edit your organization membership for the authenticated user // // PATCH /user/memberships/orgs/:org // func (c *UsersController) EditMyOrganizationMembership(ctx *gin.Context) { var json bindings.EditMyMembership err := ctx.Bind(&json) if err != nil { helpers.JSONResponseValidationFailed(ctx, err) } user := getCurrentUser(ctx) accountService, err := services.NewAccountService(user) if err != nil { if c.WriteTrace { c.Logger.Printf("Failed to create AccountService for user: %v", user) } helpers.JSONResponseInternalServerError(ctx, err) return } org := getOrganizationFromContext(ctx) member, err := accountService.EditMyMembership(org.ID, json) if err != nil { if err == ErrNotFound { helpers.JSONErrorf(ctx, http.StatusNotFound, "No membership found for this organization") return } helpers.JSONResponseInternalServerError(ctx, err) return } helpers.JSONResponseObject(ctx, presenters.MemberPresenter(member)) }
// ChangePassword updates the password for authenticated user // // POST /change/password // // Params: // // type ChangePassword struct { // OldPassword string `json:"old_password" binding:"required"` // NewPassword string `json:"new_password" binding:"required"` // } // func (c *UsersController) ChangePassword(ctx *gin.Context) { var json bindings.ChangePassword if err := ctx.Bind(&json); err != nil { helpers.JSONResponseValidationFailed(ctx, err) return } user := getCurrentUser(ctx) accountService, err := services.NewAccountService(user) if err != nil { if c.WriteTrace { c.Logger.Printf("Failed to create AccountService for user: %v", user) } helpers.JSONResponseInternalServerError(ctx, err) return } ok, err := accountService.ChangePassword(json) if err != nil { helpers.JSONResponseInternalServerError(ctx, err) return } if !ok { helpers.JSONErrorf(ctx, http.StatusBadRequest, "Failed to change password for user: %s", user.Username) return } helpers.JSONResponseOK(ctx) }
// RegisterNewUser creates a new user account // // POST /users // func (c *UsersController) RegisterNewUser(ctx *gin.Context) { var json bindings.RegisterNewUser err := ctx.Bind(&json) if err != nil { helpers.JSONResponseValidationFailed(ctx, err) return } user, err := services.RegisterNewUser(json) if err != nil { if err == services.ErrNamespaceAlreadyExists { helpers.JSONErrorf(ctx, http.StatusBadRequest, "Username already exists") } else { helpers.JSONResponseInternalServerError(ctx, err) } return } helpers.JSONResponseObject(ctx, presenters.UserPresenter(user)) }
// CreateOrganization creates a new Organization and makes the current authenticated user the owner // // POST /orgs // func (c *OrganizationsController) CreateOrganization(ctx *gin.Context) { var json bindings.CreateOrganization err := ctx.Bind(&json) if err != nil { helpers.JSONResponseValidationFailed(ctx, err) return } // creates the organization and set the current user as part of Owners Team org, err := services.CreateOrganization(json, getCurrentUser(ctx)) if err != nil { if err == services.ErrNamespaceAlreadyExists { helpers.JSONErrorf(ctx, http.StatusBadRequest, "Organization name already exists") } else { helpers.JSONResponseInternalServerError(ctx, err) } return } helpers.JSONResponseObject(ctx, presenters.OrganizationPresenter(org)) }