"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); } }; }]); })();