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.