Release Fixes: v1.2.0 (#3713)

* feat(go): allow put and post requests to self;

* feat(go): add old objects to delete events;

* feat(go): add search domains to UserRemoteGws;
This commit is contained in:
Vishal Dalwadi
2025-11-04 13:16:16 +05:30
committed by GitHub
parent 94770a911d
commit b1e4d1158b
12 changed files with 72 additions and 0 deletions
+4
View File
@@ -426,6 +426,10 @@ func deleteAcl(w http.ResponseWriter, r *http.Request) {
},
NetworkID: acl.NetworkID,
Origin: models.Dashboard,
Diff: models.Diff{
Old: acl,
New: nil,
},
})
go mq.PublishPeerUpdate(true)
logic.ReturnSuccessResponse(w, r, "deleted acl "+acl.Name)
+4
View File
@@ -316,6 +316,10 @@ func deleteNs(w http.ResponseWriter, r *http.Request) {
},
NetworkID: models.NetworkID(ns.NetworkID),
Origin: models.Dashboard,
Diff: models.Diff{
Old: ns,
New: nil,
},
})
go mq.PublishPeerUpdate(false)
+4
View File
@@ -400,6 +400,10 @@ func deleteEgress(w http.ResponseWriter, r *http.Request) {
},
NetworkID: models.NetworkID(e.Network),
Origin: models.Dashboard,
Diff: models.Diff{
Old: e,
New: nil,
},
})
// delete related acl policies
acls := logic.ListAcls()
+4
View File
@@ -97,6 +97,10 @@ func deleteEnrollmentKey(w http.ResponseWriter, r *http.Request) {
Type: models.EnrollmentKeySub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: key,
New: nil,
},
})
logger.Log(2, r.Header.Get("user"), "deleted enrollment key", keyID)
w.WriteHeader(http.StatusOK)
+4
View File
@@ -278,6 +278,10 @@ func deleteGateway(w http.ResponseWriter, r *http.Request) {
Type: models.GatewaySub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: node,
New: node,
},
})
logic.GetNodeStatus(&node, false)
apiNode := node.ConvertToAPINode()
+4
View File
@@ -498,6 +498,10 @@ func deleteHost(w http.ResponseWriter, r *http.Request) {
Type: models.DeviceSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: currHost,
New: nil,
},
})
apiHostData := currHost.ConvertNMHostToAPI()
logger.Log(2, r.Header.Get("user"), "removed host", currHost.Name)
+4
View File
@@ -565,6 +565,10 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) {
Type: models.NetworkSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: network,
New: nil,
},
})
logger.Log(1, r.Header.Get("user"), "deleted network", network)
w.WriteHeader(http.StatusOK)
+8
View File
@@ -244,6 +244,10 @@ func deleteUserAccessTokens(w http.ResponseWriter, r *http.Request) {
Info: a,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: a,
New: nil,
},
})
logic.ReturnSuccessResponseWithJson(w, r, nil, "revoked access token")
}
@@ -1580,6 +1584,10 @@ func deleteUser(w http.ResponseWriter, r *http.Request) {
Type: models.UserSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: user,
New: nil,
},
})
// check and delete extclient with this ownerID
go func() {
+1
View File
@@ -56,6 +56,7 @@ type UserRemoteGws struct {
DnsAddress string `json:"dns_address"`
Addresses string `json:"addresses"`
MatchDomains []string `json:"match_domains"`
SearchDomains []string `json:"search_domains"`
}
// UserRAGs - struct for user access gws
+4
View File
@@ -293,6 +293,10 @@ func deleteTag(w http.ResponseWriter, r *http.Request) {
},
NetworkID: tag.Network,
Origin: models.Dashboard,
Diff: models.Diff{
Old: tag,
New: nil,
},
})
logic.ReturnSuccessResponse(w, r, "deleted tag "+tagID)
}
+26
View File
@@ -352,6 +352,12 @@ func deleteUserInvite(w http.ResponseWriter, r *http.Request) {
Type: models.UserInviteSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: models.UserInvite{
Email: email,
},
New: nil,
},
})
logic.ReturnSuccessResponse(w, r, "deleted user invite")
}
@@ -872,6 +878,10 @@ func deleteUserGroup(w http.ResponseWriter, r *http.Request) {
Type: models.UserGroupSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: userG,
New: nil,
},
})
logic.ReturnSuccessResponseWithJson(w, r, nil, "deleted user group")
@@ -1063,6 +1073,10 @@ func deleteRole(w http.ResponseWriter, r *http.Request) {
Type: models.UserRoleSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: role,
New: nil,
},
})
go proLogic.UpdatesUserGwAccessOnRoleUpdates(role.NetworkLevelAccess, make(map[models.RsrcType]map[models.RsrcID]models.RsrcPermissionScope), role.NetworkID.String())
logic.ReturnSuccessResponseWithJson(w, r, nil, "deleted user role")
@@ -1602,6 +1616,9 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
hNs := logic.GetNameserversForNode(&node)
for _, nsI := range hNs {
gw.MatchDomains = append(gw.MatchDomains, nsI.MatchDomain)
if nsI.IsSearchDomain {
gw.SearchDomains = append(gw.SearchDomains, nsI.MatchDomain)
}
}
}
gw.MatchDomains = append(gw.MatchDomains, logic.GetEgressDomainsByAccess(user, models.NetworkID(node.Network))...)
@@ -1654,6 +1671,9 @@ func getUserRemoteAccessGwsV1(w http.ResponseWriter, r *http.Request) {
hNs := logic.GetNameserversForNode(&node)
for _, nsI := range hNs {
gw.MatchDomains = append(gw.MatchDomains, nsI.MatchDomain)
if nsI.IsSearchDomain {
gw.SearchDomains = append(gw.SearchDomains, nsI.MatchDomain)
}
}
}
gw.MatchDomains = append(gw.MatchDomains, logic.GetEgressDomainsByAccess(user, models.NetworkID(node.Network))...)
@@ -1854,6 +1874,12 @@ func deletePendingUser(w http.ResponseWriter, r *http.Request) {
Type: models.PendingUserSub,
},
Origin: models.Dashboard,
Diff: models.Diff{
Old: models.User{
UserName: username,
},
New: nil,
},
})
logic.ReturnSuccessResponse(w, r, "deleted pending "+username)
}
+5
View File
@@ -174,6 +174,11 @@ func GlobalPermissionsCheck(username string, r *http.Request) error {
if r.Method == http.MethodGet {
return nil
} else {
if (r.Method == http.MethodPut || r.Method == http.MethodPost) &&
strings.Contains(r.URL.Path, "/api/users/"+username) {
return nil
}
return errors.New("access denied")
}
}