mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-09 22:55:02 +08:00
remove deleted users from acl policy
This commit is contained in:
parent
ed1f48a4b4
commit
9812b5c428
2 changed files with 31 additions and 0 deletions
|
@ -654,6 +654,36 @@ func IsPeerAllowed(node, peer models.Node, checkDefaultPolicy bool) bool {
|
|||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func RemoveUserFromAclPolicy(userName string) {
|
||||
acls := ListAcls()
|
||||
for _, acl := range acls {
|
||||
delete := false
|
||||
update := false
|
||||
if acl.RuleType == models.UserPolicy {
|
||||
for i, srcI := range acl.Src {
|
||||
if srcI.ID == models.UserAclID && srcI.Value == userName {
|
||||
if len(acl.Src) == 1 {
|
||||
// delete policy
|
||||
delete = true
|
||||
break
|
||||
} else {
|
||||
acl.Src = append(acl.Src[:i], acl.Src[i+1:]...)
|
||||
update = true
|
||||
}
|
||||
}
|
||||
}
|
||||
if delete {
|
||||
DeleteAcl(acl)
|
||||
continue
|
||||
}
|
||||
if update {
|
||||
UpsertAcl(acl)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func RemoveNodeFromAclPolicy(node models.Node) {
|
||||
var nodeID string
|
||||
if node.IsStatic {
|
||||
|
|
|
@ -359,6 +359,7 @@ func DeleteUser(user string) (bool, error) {
|
|||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
go RemoveUserFromAclPolicy(user)
|
||||
|
||||
return true, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue