Diretiva de permissões para mostrar os elementos que dependem dos direitos de acesso no angularjs

Esta é uma diretiva angular que mostra os elementos dependendo do privilégio de acesso do usuário

 //ls is loginService
angular
.module('app.directives')
.directive('accessLevel', function() {
return {
restrict: 'A',
link
: function($scope, element, attrs) {
var prevDisp = element.css('display')
, currUserRole
, accessLevel;

$scope
.$watch('ls', function(ls) {
currUserRole
= ls.userRole;
updateCSS
();
}, true);

attrs
.$observe('accessLevel', function(al) {
if(al) {
accessLevel
= accessLevels[al];
}
updateCSS
();
});

function updateCSS() {
if(currUserRole && accessLevel) {
if($scope.ls.hasAccess(accessLevel, currUserRole)) {
element
.css('display', prevDisp);
}
else {
element
.css('display', 'none');
}
}
}

}
};
});

Lembre-se de que isso é apenas para experiência do usuário, não um recurso de segurança. Tenha uma verificação adequada do lado do servidor.