Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Lista de grupos e suas devidas permissões
- var grupos = {
- ADMIN: {
- post: [
- 'cadastrar',
- 'editar',
- 'visulaizar',
- 'remover',
- ],
- comentario: [
- 'cadastrar',
- 'editar',
- 'visulaizar',
- 'remover',
- ]
- },
- EDITOR: {
- post: [
- 'cadastrar',
- 'editar',
- 'visulaizar',
- ],
- comentario: [
- 'cadastrar',
- 'visulaizar',
- ],
- },
- ASSINANTE: {
- post: [
- 'cadastrar',
- 'visulaizar',
- ],
- comentario: [
- 'cadastrar',
- 'visulaizar',
- ]
- }
- };
- // Função para verificar se o usuário pode efetuar devida ação sobre um objeto
- function podeFazerDevidaAcao(usuario, acao, objeto) {
- try {
- // Verifica se o usuário pode efetuar uma determianda ação
- return grupos[usuario.grupo][objeto].indexOf(acao) >= 0;
- } catch( e ) {
- // Exibe a mensagem qual foi o erro, não deve usar algo do tipo para sites em produção
- console.log( e );
- // retorna false por padrão, caso ocorra algum erro ou o mesmo não tenha a permissão
- return false;
- }
- }
- // usuário
- var joao = {
- nome: 'João',
- grupo: 'ADMIN'
- };
- // podeFazerDevidaAcao(joao, 'cadastrar', 'post') => Verificar se o João pode cadastrar novos posts
- if (podeFazerDevidaAcao(joao, 'cadastrar', 'post')) {
- alert('O usuário ' + joao.nome + ' pode cadastrar novos posts!');
- } else {
- alert('O usuário ' + joao.nome + ' não pode cadastrar novos posts!');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement