From fc43bf0581706350014269eede38a8576e8c9e40 Mon Sep 17 00:00:00 2001 From: Ruzette Tanyag Date: Sun, 5 Feb 2017 12:20:17 -0500 Subject: Implement DELETE /users/{user_id endpoint for APIv4 - rebase cleanup (#5307) * added delete user endpoint * added unit test for delete user endpoint * added delete user driver --- api4/user.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'api4/user.go') diff --git a/api4/user.go b/api4/user.go index 74983aa54..14067bdf5 100644 --- a/api4/user.go +++ b/api4/user.go @@ -21,6 +21,7 @@ func InitUser() { BaseRoutes.User.Handle("", ApiSessionRequired(getUser)).Methods("GET") BaseRoutes.User.Handle("", ApiSessionRequired(updateUser)).Methods("PUT") + BaseRoutes.User.Handle("", ApiSessionRequired(deleteUser)).Methods("DELETE") BaseRoutes.User.Handle("/roles", ApiSessionRequired(updateUserRoles)).Methods("PUT") BaseRoutes.Users.Handle("/login", ApiHandler(login)).Methods("POST") @@ -192,6 +193,35 @@ func updateUser(c *Context, w http.ResponseWriter, r *http.Request) { } } +func deleteUser(c *Context, w http.ResponseWriter, r *http.Request){ + c.RequireUserId() + if c.Err != nil { + return + } + + userId := c.Params.UserId + + if !app.SessionHasPermissionToUser(c.Session, userId) { + c.SetPermissionError(model.PERMISSION_EDIT_OTHER_USERS) + return + } + + var user *model.User + var err *model.AppError + + if user, err = app.GetUser(userId); err != nil { + c.Err = err + return + } + + if _, err := app.UpdateActive(user, false); err != nil { + c.Err = err + return + } + + ReturnStatusOK(w) +} + func updateUserRoles(c *Context, w http.ResponseWriter, r *http.Request) { c.RequireUserId() if c.Err != nil { -- cgit v1.2.3-1-g7c22