|
@@ -50,6 +50,7 @@ func UserHandlers(r *mux.Router) {
|
|
|
r.HandleFunc("/api/v1/users/group", logic.SecurityCheck(true, http.HandlerFunc(updateUserGroup))).Methods(http.MethodPut)
|
|
|
r.HandleFunc("/api/v1/users/group", logic.SecurityCheck(true, http.HandlerFunc(deleteUserGroup))).Methods(http.MethodDelete)
|
|
|
r.HandleFunc("/api/v1/users/add_network_user", logic.SecurityCheck(true, http.HandlerFunc(addUsertoNetwork))).Methods(http.MethodPut)
|
|
|
+ r.HandleFunc("/api/v1/users/remove_network_user", logic.SecurityCheck(true, http.HandlerFunc(removeUserfromNetwork))).Methods(http.MethodPut)
|
|
|
|
|
|
// User Invite Handlers
|
|
|
r.HandleFunc("/api/v1/users/invite", userInviteVerify).Methods(http.MethodGet)
|
|
@@ -695,7 +696,7 @@ func updateUserGroup(w http.ResponseWriter, r *http.Request) {
|
|
|
logic.ReturnSuccessResponseWithJson(w, r, userGroup, "updated user group")
|
|
|
}
|
|
|
|
|
|
-// swagger:route PUT /api/v1/user/group user addUsertoNetwork
|
|
|
+// swagger:route PUT /api/v1/users/add_network_user user addUsertoNetwork
|
|
|
//
|
|
|
// add user to network.
|
|
|
//
|
|
@@ -752,6 +753,63 @@ func addUsertoNetwork(w http.ResponseWriter, r *http.Request) {
|
|
|
logic.ReturnSuccessResponseWithJson(w, r, user, "updated user group")
|
|
|
}
|
|
|
|
|
|
+// swagger:route PUT /api/v1/users/remove_network_user user removeUserfromNetwork
|
|
|
+//
|
|
|
+// add user to network.
|
|
|
+//
|
|
|
+// Schemes: https
|
|
|
+//
|
|
|
+// Security:
|
|
|
+// oauth
|
|
|
+//
|
|
|
+// Responses:
|
|
|
+// 200: userBodyResponse
|
|
|
+func removeUserfromNetwork(w http.ResponseWriter, r *http.Request) {
|
|
|
+ username := r.URL.Query().Get("username")
|
|
|
+ if username == "" {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("username is required"), logic.BadReq))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ netID := r.URL.Query().Get("network_id")
|
|
|
+ if netID == "" {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("network is required"), logic.BadReq))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ user, err := logic.GetUser(username)
|
|
|
+ if err != nil {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(err, logic.BadReq))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if user.PlatformRoleID != models.ServiceUser {
|
|
|
+ logic.ReturnErrorResponse(w, r, logic.FormatError(errors.New("can only add service users"), logic.BadReq))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ oldUser := *user
|
|
|
+ delete(user.UserGroups, proLogic.GetDefaultNetworkUserGroupID(models.NetworkID(netID)))
|
|
|
+ logic.UpsertUser(*user)
|
|
|
+ logic.LogEvent(&models.Event{
|
|
|
+ Action: models.Update,
|
|
|
+ Source: models.Subject{
|
|
|
+ ID: r.Header.Get("user"),
|
|
|
+ Name: r.Header.Get("user"),
|
|
|
+ Type: models.UserSub,
|
|
|
+ },
|
|
|
+ TriggeredBy: r.Header.Get("user"),
|
|
|
+ Target: models.Subject{
|
|
|
+ ID: user.UserName,
|
|
|
+ Name: user.UserName,
|
|
|
+ Type: models.UserSub,
|
|
|
+ },
|
|
|
+ Diff: models.Diff{
|
|
|
+ Old: oldUser,
|
|
|
+ New: user,
|
|
|
+ },
|
|
|
+ Origin: models.Dashboard,
|
|
|
+ })
|
|
|
+
|
|
|
+ logic.ReturnSuccessResponseWithJson(w, r, user, "updated user group")
|
|
|
+}
|
|
|
+
|
|
|
// swagger:route DELETE /api/v1/user/group user deleteUserGroup
|
|
|
//
|
|
|
// delete user group.
|