mirror of
https://github.com/gravitl/netmaker.git
synced 2025-12-24 13:28:22 +08:00
check if default user policy is enabled
This commit is contained in:
@@ -37,7 +37,6 @@ func ValidateEgressReq(e *schema.Egress) error {
|
||||
}
|
||||
|
||||
func DoesUserHaveAccessToEgress(user *models.User, e *schema.Egress, acls []models.Acl) bool {
|
||||
|
||||
if !e.Status {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -73,6 +73,8 @@ func GetEgressRangesOnNetwork(client *models.ExtClient) ([]string, error) {
|
||||
eli, _ := (&schema.Egress{Network: client.Network}).ListByNetwork(db.WithContext(context.TODO()))
|
||||
staticNode := client.ConvertToStaticNode()
|
||||
userPolicies := ListUserPolicies(models.NetworkID(client.Network))
|
||||
defaultUserPolicy, _ := GetDefaultPolicy(models.NetworkID(client.Network), models.UserPolicy)
|
||||
|
||||
for _, eI := range eli {
|
||||
if !eI.Status {
|
||||
continue
|
||||
@@ -89,17 +91,22 @@ func GetEgressRangesOnNetwork(client *models.ExtClient) ([]string, error) {
|
||||
} else {
|
||||
rangesToBeAdded = append(rangesToBeAdded, eI.Range)
|
||||
}
|
||||
if staticNode.IsUserNode && staticNode.StaticNode.OwnerID != "" {
|
||||
user, err := GetUser(staticNode.StaticNode.OwnerID)
|
||||
if err != nil {
|
||||
return []string{}, errors.New("user not found")
|
||||
}
|
||||
if DoesUserHaveAccessToEgress(user, &eI, userPolicies) {
|
||||
if defaultUserPolicy.Enabled {
|
||||
result = append(result, rangesToBeAdded...)
|
||||
} else {
|
||||
if staticNode.IsUserNode && staticNode.StaticNode.OwnerID != "" {
|
||||
user, err := GetUser(staticNode.StaticNode.OwnerID)
|
||||
if err != nil {
|
||||
return []string{}, errors.New("user not found")
|
||||
}
|
||||
if DoesUserHaveAccessToEgress(user, &eI, userPolicies) {
|
||||
result = append(result, rangesToBeAdded...)
|
||||
}
|
||||
} else {
|
||||
result = append(result, rangesToBeAdded...)
|
||||
}
|
||||
} else {
|
||||
result = append(result, rangesToBeAdded...)
|
||||
}
|
||||
|
||||
}
|
||||
extclients, _ := GetNetworkExtClients(client.Network)
|
||||
for _, extclient := range extclients {
|
||||
|
||||
Reference in New Issue
Block a user