mirror of https://github.com/portainer/portainer
fix: ensure no non-admin users have access to system namespaces (#499)
parent
8b7aef883a
commit
417891675d
|
@ -265,9 +265,12 @@ func isSystemNamespace(namespace *corev1.Namespace) bool {
|
||||||
return systemLabelValue == "true"
|
return systemLabelValue == "true"
|
||||||
}
|
}
|
||||||
|
|
||||||
systemNamespaces := defaultSystemNamespaces()
|
return isSystemDefaultNamespace(namespace.Name)
|
||||||
|
}
|
||||||
|
|
||||||
_, isSystem := systemNamespaces[namespace.Name]
|
func isSystemDefaultNamespace(namespace string) bool {
|
||||||
|
systemNamespaces := defaultSystemNamespaces()
|
||||||
|
_, isSystem := systemNamespaces[namespace]
|
||||||
return isSystem
|
return isSystem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -390,8 +393,10 @@ func (kcl *KubeClient) CombineNamespaceWithResourceQuota(namespace portainer.K8s
|
||||||
func (kcl *KubeClient) buildNonAdminNamespacesMap() map[string]struct{} {
|
func (kcl *KubeClient) buildNonAdminNamespacesMap() map[string]struct{} {
|
||||||
nonAdminNamespaceSet := make(map[string]struct{}, len(kcl.NonAdminNamespaces))
|
nonAdminNamespaceSet := make(map[string]struct{}, len(kcl.NonAdminNamespaces))
|
||||||
for _, namespace := range kcl.NonAdminNamespaces {
|
for _, namespace := range kcl.NonAdminNamespaces {
|
||||||
|
if !isSystemDefaultNamespace(namespace) {
|
||||||
nonAdminNamespaceSet[namespace] = struct{}{}
|
nonAdminNamespaceSet[namespace] = struct{}{}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nonAdminNamespaceSet
|
return nonAdminNamespaceSet
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue