SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/security/has-permission-directive.js

29 lines
1.1 KiB
JavaScript

"use strict";
/**
* Created by igor.samulenko on 5/20/2014.
*/
(function () {
'use strict';
angular.module('securityModule').directive('hasPermission', ['permissionModel', 'events', function (permissionModel, events) {
return {
link: function (scope, element, attrs) {
if (!_.isString(attrs.hasPermission)) {
throw 'hasPermission value must be a string';
}
var value = attrs.hasPermission.trim();
function toggleVisibilityBasedOnPermission() {
var hasPermission = permissionModel.hasPermission(value);
if (hasPermission) {
element.show();
}
else {
element.hide();
}
}
toggleVisibilityBasedOnPermission();
scope.$on(events.PERMISSIONS_CHANGED, toggleVisibilityBasedOnPermission);
}
};
}]);
})();