é, é bem parecido com a ideia q eu tenho ...

mas por exemplo, se uma nova permissao e criada, faz-se necessario ir nos
controllers adiciona-la ao array de permissoes ne? Era isso q eu queria
evitar, definir as permissoes via aplicacao e nao codigo, saca?

Obrigado por responder, vamo q vamo movimentar essa lista.


[]'s
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -


Luiz Alberto S. Ribeiro [ Beto ]
http://beto.euqueroserummacaco.com






2010/8/23 Get <[email protected]>

> 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]<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.

Responder a