diff options
Diffstat (limited to 'api4/user.go')
-rw-r--r-- | api4/user.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/api4/user.go b/api4/user.go index f68d01d33..19d3446fb 100644 --- a/api4/user.go +++ b/api4/user.go @@ -16,6 +16,8 @@ func InitUser() { l4g.Debug(utils.T("api.user.init.debug")) BaseRoutes.Users.Handle("", ApiHandler(createUser)).Methods("POST") + BaseRoutes.Users.Handle("/ids", ApiSessionRequired(getUsersByIds)).Methods("POST") + BaseRoutes.User.Handle("", ApiSessionRequired(getUser)).Methods("GET") BaseRoutes.User.Handle("", ApiSessionRequired(updateUser)).Methods("PUT") BaseRoutes.User.Handle("/roles", ApiSessionRequired(updateUserRoles)).Methods("PUT") @@ -84,6 +86,24 @@ func getUser(c *Context, w http.ResponseWriter, r *http.Request) { } } +func getUsersByIds(c *Context, w http.ResponseWriter, r *http.Request) { + userIds := model.ArrayFromJson(r.Body) + + if len(userIds) == 0 { + c.SetInvalidParam("user_ids") + return + } + + // No permission check required + + if users, err := app.GetUsersByIds(userIds, c.IsSystemAdmin()); err != nil { + c.Err = err + return + } else { + w.Write([]byte(model.UserListToJson(users))) + } +} + func updateUser(c *Context, w http.ResponseWriter, r *http.Request) { c.RequireUserId() if c.Err != nil { |