angular.module('portainer.extensions.rbac') .directive('disableAuthorization', ['Authentication', 'ExtensionService', '$async', function(Authentication, ExtensionService, $async) { async function linkAsync(scope, elem, attrs) { try { const rbacEnabled = await ExtensionService.extensionEnabled(ExtensionService.EXTENSIONS.RBAC); if (!rbacEnabled) { return; } } catch (err) { return; } var authorizations = attrs.disableAuthorization.split(","); for (var i = 0; i < authorizations.length; i++) { authorizations[i] = authorizations[i].trim(); } if (!Authentication.hasAuthorizations(authorizations)) { elem.attr('disabled', true); if (elem.is('Slider')) { elem.css('pointer-events', 'none'); } } } return { restrict: 'A', link: function (scope, elem, attrs) { return $async(linkAsync, scope, elem, attrs); } } }]);