Vc criou um esquema usuario x grupo_usuario x permissao?
Inicialmente, eu faria diretorios diferentes... controller/ e
controller/admin
E views diferentes ... views/ e views/admin
E criaria o diretorio classes/filter e criaria filtros de permissao a serem
verificados na view, de acordo com o escopo da applicacao ..
Filter::factory("admin")-as_permission("permissao");
Se for uma verificacao mais complexa
as_permission_and_is_owner("permissao", $object);
E assim por diante.
Se for o caso .. criar o diretorio classes/view e criar um objeto view
personalizado para aquela view
View_Product_Index extends View
Colocar alguns metodos .. e executar o metodo na view html
Em 19/10/2012 14:49, "Kaléu Caminha" <[email protected]> escreveu:
> Uma opção que usei em casos semelhantes é a seguinte:
>
> - Classe Abstrata User
> - Classe Concreta User1
> - Classe Concreta User2
>
> Na abstrata ficam métodos que trazem dados dos pontos de flexibilização do
> sistema.
> Ex:
>
> Classe Abstrata
> - getButtons(): mixed
>
> a view receberia um objeto da classe User e chamaria o método getButtons
> para pegar os botóes necessários.
>
> Desvantagens:
> - Trabalho inicial um pouco maior
> - Risco da classe ter muitos métodos com o tempo (mas ainda acho melhor do
> que o código ter muitos ifs, e além do mais, a classe pode ser subdivida
> posteriormente)
>
> Vantagens:
> - Adicionar novos tipos de usuários vai ser batata.!!!
> - Você sempre sabe onde modificar dados específicos de um usuário.
> - É ótimo se existem dados dependentes do usuário em mais de um lugar pois
> a sua arquitetura já está pronta para receber os métodos.
>
> Conclusão
> Usamos na Meritt essa estratégia para apresentar páginas muito
> semelhantes, mas para diferentes localidades. E queríamos um jeito de poder
> adicionar novos tipos de localidades no futuro e tenho gostado bastante do
> resultado.
>
>
>
> Em 19 de outubro de 2012 14:42, Douglas J.A.M <[email protected]>escreveu:
>
>> Acho eu que se a diferença é bem pequena, não custa nada apenas um if na
>> view, isso até sobrecarregará menos o sistema.
>> Porém apenas ocultar o botão não impede de um hacking, lembre-se de
>> tratar na action que processa tal url também tal permissão.
>>
>>
>> Em 19 de outubro de 2012 14:38, Everton Zamignan Pabon <[email protected]
>> > escreveu:
>>
>> Olá pessoal, boa tarde.
>>>
>>> Estou trabalhando num sistema onde em meu escopo de autorização os
>>> usuários podem assumir os seguintes papeis: "Administrador" ou "Normal".
>>> (haverá mais papeis futuramente).
>>> Pelo perfil do sistema, as páginas (leia-se views) são praticamente
>>> iguais tanto para o Administrador como para o usuário Normal.
>>> Geralmente o Administrador tem apenas um ou dois botões a mais na View
>>> então eu uso a mesma View para ambos, exceto quando essa View for muito
>>> diferente/complexa.
>>>
>>> Acontece que a todo momento as Actions tem que ficar decidindo o que
>>> fazer de acordo com o papel do usuário.
>>>
>>> Essa minha introdução é pra perguntar se essa forma de trabalhar está
>>> correta ou
>>> eu devo criar Actions e Views (e até Controllers) distintas de acordo
>>> com a papel, não importando o fato de serem bem semelhantes.
>>>
>>> Agradeço qualquer opinião.
>>>
>>> --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>> --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.