mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-11 23:54:22 +08:00
add remove network user api
This commit is contained in:
parent
ac35c46278
commit
5019ecf934
2 changed files with 60 additions and 2 deletions
|
@ -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.
|
||||
|
|
|
@ -175,7 +175,7 @@ func GlobalPermissionsCheck(username string, r *http.Request) error {
|
|||
return nil
|
||||
}
|
||||
if targetRsrc == models.UserRsrc.String() && user.PlatformRoleID == models.PlatformUser && r.Method == http.MethodPut &&
|
||||
strings.Contains(r.URL.Path, "/api/v1/users/add_network_user") {
|
||||
strings.Contains(r.URL.Path, "/api/v1/users/add_network_user") || strings.Contains(r.URL.Path, "/api/v1/users/remove_network_user") {
|
||||
return nil
|
||||
}
|
||||
if targetRsrc == models.UserRsrc.String() && username == targetRsrcID && (r.Method != http.MethodDelete) {
|
||||
|
|
Loading…
Add table
Reference in a new issue