feat(namespace): Hide Default Namespace for non-admins (#25)

* feat(namespace): Hide Default Namespace for non-admins

* feat(namespace): fix expected behavior when turning on the setting

* feat(resourcePool): Handle when user doesn't have access to any resource pool

* Update app/kubernetes/views/applications/create/createApplication.html

* Update app/kubernetes/views/configurations/create/createConfiguration.html

* Update app/kubernetes/views/applications/create/createApplication.html

* Update app/kubernetes/views/configurations/create/createConfiguration.html

Co-authored-by: Anthony Lapenna <anthony.lapenna@portainer.io>
This commit is contained in:
Maxime Bajeux
2020-10-15 03:02:29 +02:00
committed by GitHub
parent 96c6fbf1ed
commit 1f26bc6e8b
17 changed files with 1517 additions and 1388 deletions
@@ -4,7 +4,8 @@ angular.module('portainer.docker').controller('KubernetesResourcePoolsDatatableC
'Authentication',
'KubernetesNamespaceHelper',
'DatatableService',
function ($scope, $controller, Authentication, KubernetesNamespaceHelper, DatatableService) {
'EndpointProvider',
function ($scope, $controller, Authentication, KubernetesNamespaceHelper, DatatableService, EndpointProvider) {
angular.extend(this, $controller('GenericDatatableController', { $scope: $scope }));
var ctrl = this;
@@ -18,7 +19,11 @@ angular.module('portainer.docker').controller('KubernetesResourcePoolsDatatableC
};
this.canManageAccess = function (item) {
return item.Namespace.Name !== 'default' && !this.isSystemNamespace(item);
if (!this.endpoint.Kubernetes.Configuration.RestrictDefaultNamespace) {
return item.Namespace.Name !== 'default' && !this.isSystemNamespace(item);
} else {
return !this.isSystemNamespace(item);
}
};
this.disableRemove = function (item) {
@@ -41,6 +46,7 @@ angular.module('portainer.docker').controller('KubernetesResourcePoolsDatatableC
};
this.$onInit = function () {
this.endpoint = EndpointProvider.currentEndpoint();
this.isAdmin = Authentication.isAdmin();
this.setDefaults();
this.prepareTableFromDataset();