você tem de verificar qual tipo de autenticação é mais viável.

Por Perfil/Grupo - Acho que deseja fazer por este. Acesso liberado se for do
mesmo grupo ou perfil.

Por Perfil e Nível - Quando não é do mesmo grupo verifica se o nível é
maior.

Por Permissão - Verifica, além das anteriores, se o usuário tem permissão
para executar a tarefa.

Devem existir outros, mas não recordo agora.

No caso de permissão, só vai criar uma nova tarefa se for fazer manutenção
no módulo ou criar um novo. Não vejo por que ficar editando código.

Talvez o que esteja faltando é modularizar o sistema.

Em 23 de agosto de 2010 20:21, Beto <[email protected]> escreveu:

> é, é 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]<kohana-php%[email protected]>
> .
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>



-- 
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb

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