Khyquer 0 Denunciar post Postado Outubro 18, 2011 Boa tarde senhores, Estou analisando e modelando um ACL para nosso sistema, que utiliza Oracle. Atualmente temos as seguintes tabelas: Recurso ( id*, nome, parent_id) Acao ( id*, nome, recurso_id) Grupo (id*, nome) Usuário (id*, nome) Loja (id*, nome) Usuário_recurso (recurso_id, usuario_id, loja_id) Grupo Recurso (grupo_id, recurso_id) Grupo_usuario (grupo_id, usuario) Nosso objetivo é controlar as permissões dos usuários por grupos, por lojas e individual. Ou seja, eu posso ter acesso a um recurso por pertencer a uma loja, um grupo ou receber este acesso de forma direta. Quanto a loja existe uma particularidade. Todas as permissões que eu tenho valem por padrão apenas para a minha filial, para eu ver outra filial, terei todas as minhas permissões em outra filial também. Consegui obter ações dos recursos filho --selecionar ações dos recursos filho select UNIQUE * from recurso rec LEFT JOIN acao ac on (rec.id = ac.recurso_id) CONNECT BY PRIOR rec.id = rec.parent_id START WITH rec.id = 1 e também Ações dos recursos que meu usuário e seus grupos tem acesso --Ações dos recursos que meu usuário e seus grupos tem acesso SELECT UNIQUE --Caso não tenha definicação de um recurso, ele poderá visualizá-lo (case when ac.id is null then 3 else ac.id end) id, (case when ac.nome is null then 'Visualizar' else ac.nome end) acao, rec.id recurso_id, rec.nome recurso_nome FROM recurso rec LEFT JOIN CRM.acao ac on (ac.recurso_id = rec.id), usuario_recurso_map usrec, grupo_recurso grur WHERE usrec.recurso_id = rec.id OR grur.recurso_id = rec.id and grur.grupo_id in ( --Selecionar grupos do usuário select id FROM grupo gr, grupo_usuario grus WHERE grusgrupo_id = gr.id and grus.usuario_id = 1628 ) Mas preciso ter ainda os recursos que meus recursos filhos tem acesso! =/ Se puderem ajudar agradeço, mas creio que essa modelagem está errada! Compartilhar este post Link para o post Compartilhar em outros sites
alphamek 2 Denunciar post Postado Novembro 20, 2011 Khyquer, A melhor coisa para ajudar seria ter a imagem do seu MER para saber como está modelado as suas entidades. Abraços, Compartilhar este post Link para o post Compartilhar em outros sites