Ae Beto,
já precisei fazer algo parecido, e no meu caso eu fiz o seguinte...
no *before* do controlador eu coloquei um array com os metodos e as
permissoes necessárias pra executar cada um deles, mais ou menos assim:
$permissoes = array(
'index' => array('basica'),
'noticias' => array('basica','administrador'),
);
depois eu capturo o nome do action que foi chamado e verifico se existe um
indice no array, se houver faço um foreach e verifico se o usuário tem cada
uma das roles necessárias, se não tiver é porque não precisa de permissão.
algo assim...
if ( array_key_exists($metodo,$permissoes) ){
foreach ( $permissoes[$metodo] as $p ){
if ( ! Auth::instance()->logged_in($p) ){
faz_alguma_coisa();
}
}
}
Não sei se ajudou.
valeu
Get
2010/8/23 Beto <[email protected]>
> Boas a todos,
>
> Hoje eu estava pensando sobre algumas coisas relacionadas a autenticacao do
> Kohana e me veio uma ideia a cabeça..
>
> Sabe-se que o KO tem um modulo de autenticacao, mas para algumas coisas eu
> acho ele meio embassado de usar, o fato de ter q verificar
> se o usuario esta em determinada regra por exemplo:
>
> Auth::instance()->logged_in('nome da role')
>
>
> e se eu crio uma nova role que tem acesso aquele metodo? tenho q ir em
> todos os controllers que faz essa verificacao e adicionar o nome dessa regra
> tbm?
>
> Entao foi que surgiu a ideia de criar um modulo de permissoes por metodos (
> fiz isso num projeto pessoal ) e funcionou bem.
> É mais ou menos gravar em uma tabela que grupos ( roles ) tem permissoes a
> determinados metodos do controler.
>
> por exemplo:
>
> role:admin ->controller_admin/action_index, controller_admin/action_form
> ...
> role:user -> controller_user/action_form
>
> e ai atraves dos eventos do KO, cria-se um metodo para verificar se o grupo
> que o usuario logado tem permissao para executar aquele metodo daquele
> controller, caso nao e redirecionado para uma pagina que informa o acesso
> negado.
>
> Enfim, alguem ja pensou ou desenvolveu algo parecido? Acham q isso é valido
> ou eu to viajando demais ?
>
> Na verdade eu ja fiz isso, resta a parte de verificar atraves dos eventos,
> e queria saber da opniao de vcs, pra talvez empacotar isso num modulo.
>
> Vamos debater, e movimentar a lista.
>
>
> []'s
>
>
>
>
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - -
>
>
> Luiz Alberto S. Ribeiro [ Beto ]
> http://beto.euqueroserummacaco.com
>
>
>
>
> --
> 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]<kohana-php%[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.