text: angular.module('portainer.extensions.rbac').directive('authorization', [
    'Authentication',
    'ExtensionService',
    '$async',
    function (Authentication, ExtensionService, $async) {
      async function linkAsync(scope, elem, attrs) {
        elem.hide();
        try {
          const rbacEnabled = await ExtensionService.extensionEnabled(ExtensionService.EXTENSIONS.RBAC);
          if (!rbacEnabled) {
            elem.show();
            return;
          }
        } catch (err) {
          elem.show();
          return;
        }
        var authorizations = attrs.authorization.split(',');
        for (var i = 0; i < authorizations.length; i++) {
          authorizations[i] = authorizations[i].trim();
        }
  
        var hasAuthorizations = Authentication.hasAuthorizations(authorizations);
  
        if (hasAuthorizations) {
          elem.show();
        } else if (!hasAuthorizations && elem[0].tagName === 'A') {
          elem.show();
          elem.addClass('portainer-disabled-link');
        }
      }
  
      return {
        restrict: 'A',
        link: function (scope, elem, attrs) {
          return $async(linkAsync, scope, elem, attrs);
        },
      };
    },
  ]);
  