acho q agora estou entendendo...ao menos um pouco mais..rs

no meu app_controller deixei o seguinte

var $othAuthRestrictions = null;

e no controller, eu seto novamente esta opção

var $othAuthRestrictions = array('view', 'index');

no caso acima, o grupo 1 acessa o view, o 2 acessa o index. Isto defini no 
banco de dados e esta funcionando.

Como meu site terá 1 parte para registrados e outra aberta, não precisarei 
fazer o que vc está tentando, de setar uma autenticação automática para 
usuários anonimos.

Caso tenha alguma dica ai do othAuth, algo q ta descobrindo, vai postando pra 
montarmos uma documentação melhor pra ele.

Abraços

> Olá Bill e lista, bom dia.
>
> Então Bill, não sei se você lembra eu disse que estava trabalhando
> em dois projetos, um pessoal e um para a comunidade
> radioamadorística. Estou usando meu projeto pessoal como
> laboratório e o outro estou tentando fazer da melhor forma possível
> (conhece aquela história sobre "santo de casa não fazer
> milagres"?). Porém, no quesito controle de usuários minha aplicação
> pessoal é muito pobre. Só deve haver um usuário (eu!! hihi) que
> pode tudo (modesto eu né?) e qualquer visitante não logado que terá
> acesso a uma view de pesquisa. Dessa forma basta que eu proteja
> tudo menos aquela view. Também não tenho nenhuma página (por
> enquanto pelo menos) que não seja gerada por um controler e precise
> ser protegida. Assim basta proteger todos os controller menos a
> view de pesquisa. Ainda não fiz a view de pesquisa mas acho que vai
> funcionar redefinindo, naquele controller, o
>
> var $othAuthRestrictions = array( 'add','edit','delete');
>
> Assim que testar eu digo se funcionou.
>
> Já na outra aplicação vou ter muitos usuários (todos que desejarem
> usar parte protegidas do sistema). Terei três bases de dados
> (modelos) onde qualquer um pode registrar informações, logado ou
> não (funcionará como um painel de divulgação, cada um do modelos
> estará divulgando algo diferente, público, portanto não precisa
> estar logado). Depois eu tenho o profile de cada estação de
> radioamador e um sistema de impressão on-line dos certificados de
> participação e diplomas das competições organizadas pelo grupo.
> Nesses casos é fundamental estar logado. Nas divulgações públicas,
> se o usuário estiver logado, vou oferecer um "add-on" onde alguns
> campos aparecerão pré populados (evitando a necessidade de
> digitação). Meu plano é proteger tudo no AppController e redefinir
> a variável othAuthRestrictions nos controllers onde não precisar de
> proteção (como disse ainda não sei se funciona). Também tenho um
> plano B (que não faço mínima idéia se funcionará) onde, no
> appController, caso não estaja logado (via othAuth), definir o
> user_id e group_id na session como 999 (user/grupo anonymous por
> exemplo) e setar as permissões para esse grupo na base. Estaria
> tentando forçar um "login" do user anonymous do grupo anonymous.
> Então, se eu não estiver pensando besteira, quando o usuário
> acessar uma área protegida (onde anonymous não tem direito de ir),
> será redirecionado para o login page onde fará um "re-login" com um
> usuário válido (setando as vars User e Group da session para outros
> valores).
>
> Será que funciona?
>
> Spark, como funciona no Cake 1.2?
>
> Abraço,
> Benito
>
> On 11/13/07, Bill wrote:>  no meu arquivo
> users_controller.php faço isto da seguinte maneira
>
>> coloco o redirect dentro da function login
>>
>> function login()
>>    {
>>        if(isset($this->params['data']))
>>        {
>>            $auth_num = $this->othAuth->login($this-
>> >params['data']['User']);
>>
>>            $this->set('auth_msg', $this->othAuth-
>> >getMsg($auth_num));
>>
>>            $this->redirect('users/painel', null, true);         }
>>     }     Agora deixa eu te perguntar algo Benito...como está
>> protegendo suas páginas, de começo estava avançando bem com o
>> othAuth, mas agora ja to apanhando.  
>> Vi que no arquivo app_controller.php tem uma linha q serve pra
>> proteger os controllers
>>
>> var $othAuthRestrictions = array( 'add','edit','delete');
>>
>> no caso ela impede acesso a qualquer pagina q chame estes add,
>> edit e delete.
>>
>> Como vc está fazendo para proteger as páginas? vc protege o
>> controller inteiro? apenas algum método dele?
>> Você apenas configura via banco a permissão das páginas X grupos?
>>
>> Se puder dar umas dicas, serão bem vindas!
>>
>> Abraços
>>
>>
>>> Obrigado Bill.
>>>
>>> O mesmo está funcionando, apenas estou enfretando um
>>> probleminha que ainda estou debugando sem muito sucesso.
>>>
>>> Seu eu tento fazer algo protegido ele me direciona para a
>>> página de login (ótimo!). Tudo ocorre bem agora. Mas, se eu sou
>>> um usuário esperto e savei a URL: localhost/app/users/login e
>>> uso ela para entrar no site (ou seja, não sou redirecionado
>>> para o login, vou direto a ele como primeira atividade do
>>> site), após o login o "auto redirect" me joga para
>>>
>>> localhost/app/allow
>>>
>>> que obviamente não é um controller válido. Me parece que allow
>>> é lixo dentro da variável "from" que não está setada. Mas já
>>> estou correndo atrás para descobrir onde se origina o problema.
>>> Assim que souber eu posto aqui.
>>>
>>> Abraço
>>> Benito
>>>
>>> On 11/9/07, Bill wrote:>  Vamos a algumas
>>> dicas do padeiro aqui..rsrsrsrs
>>>
>>>> no arquivo app_controller.php, dentro da função beforeFilter,
>>>> insira esta linha
>>>>
>>>>      $this->othAuthRestrictions[] =
>>>> Configure::read('Routing.admin');
>>>>
>>>> Ficando desta maneira
>>>>
>>>> function beforeFilter()
>>>>  {
>>>>
>>>>      $this->othAuthRestrictions[] =
>>>> Configure::read('Routing.admin');
>>>>
>>>>
>>>> Agora, no component oth_auth.php, troque todas referências:
>>>>
>>>> defined('CAKE_ADMIN')
>>>>
>>>> Por:
>>>>
>>>> Configure::read('Routing.admin')
>>>>
>>>>
>>>> e todas ocorrencias de:
>>>>
>>>> CAKE_ADMIN
>>>>
>>>> Por:
>>>> Configure::read('Routing.admin')
>>>>
>>>>
>>>> e tb troque neste arquivo a linha:
>>>> $res = $UserModel->save($row,true,array($this-
>>>>
>>>>> user_table_last_visit));
>>>>>
>>>>
>>>> Por estas 2 linhas:
>>>> $UserModel->id = $row[$this->user_model]['id']; $res =
>>>> $UserModel-
>>>>
>>>>> saveField($this->user_table_last_visit,$row[$this-
>>>>> user_model][$this->user_table_last_visit],true);
>>>>
>>>>
>>>> Estas dicas foram extraidas deste blog:
>>>> http://www.ancientwisdom.cc/news/archives/111
>>>>
>>>> Espero q te ajude
>>>>
>>>>
>>>>> Boa noite Bill, Gustavo e lista,
>>>>>
>>>>> Bill, funcionou, agora ele não tenta mais criar um registro
>>>>> novo na tabela de usuários e atualiza os dados de last
>>>>> visit e modified corretamente. Porém continua  o notice:
>>>>>
>>>>> Notice: Only variables should be assigned by reference in
>>>>> C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php on lin
>>>>> e 301
>>>>>
>>>>> Obviamente seguido de um "Cannot modify headers" já que
>>>>> isso acontece em um redirecionamento.
>>>>>
>>>>> Algum outro ajuste no oth_auth.php?
>>>>>
>>>>> Grato.
>>>>> Benito
>>>>>
>>>>> On 11/8/07, Bill wrote:>  Bom, vamos lá,
>>>>> instalei aqui o othAuth e funcionou perfeito, mas tem
>>>>> alguns ajustes necessários, primeiro, vamos tratar deste
>>>>> erro:
>>>>>
>>>>>> + ou - na linha 323 do component oth_auth.php, temos o
>>>>>> seguinte trecho de código:
>>>>>>
>>>>>> // Update the last visit date to now
>>>>>>        if(isset($this->user_table_last_visit))            
>>>>>>  {                     $row[$this->user_model][$this-
>>>>>>
>>>>>>> user_table_last_visit] = date('Y-m-d H:i:s');          
>>>>>>>    
>>>>>>>
>>>>>>>
>>>>>> $res = $UserModel->save($row,true,array($this-
>>>>>>
>>>>>>> user_table_last_visit));             }     Substitua
>>>>>>> por isto:  
>>>>>>>
>>>>>> // Update the last visit date to now
>>>>>>        if(isset($this->user_table_last_visit))            
>>>>>>  {                 $row[$this->user_model][$this-
>>>>>>
>>>>>>> user_table_last_visit] = date('Y-m-d H:i:s');
>>>>>>>
>>>>>>            $UserModel->id = $row[$this-
>>>>>> >user_model]['id'];                 $res = $UserModel-
>>>>>> >saveField($this-
>>>>>>
>>>>>>> user_table_last_visit,$row[$this->user_model][$this-
>>>>>>> user_table_last_visit],true);             }
>>>>>>
>>>>>>
>>>>>> Na linha ($res = $UserModel->saveField($this-
>>>>>>
>>>>>>> user_table_last_visit,$row[$this->user_model][$this-
>>>>>>> user_table_last_visit],true); ) eu troquei o $UserModel-
>>>>>>>
>>>>>>>> save
>>>>>>>>
>>>>>> por $UserModel->saveField, que atualiza o registro,
>>>>>> atualizando assim a data de autenticação do usuário,
>>>>>> quando o save, apenas está tentando isnerir um novo
>>>>>> registro, por isto dá erro
>>>>>>
>>>>>>
>>>>>> Ah, acessa a tabela de usuários do othAuth e deleta um
>>>>>> registro em branco q tem lá, ele foi criado por este save
>>>>>> besta ai de cima..rs
>>>>>>
>>>>>> Qquer coisa so perguntar
>>>>>>
>>>>>>
>>>>>>> Bom dia,
>>>>>>>
>>>>>>> Não falei que iria começar a fazer perguntas? Seguindo
>>>>>>> a documentação do othAuth consegui por para funcionar
>>>>>>> (ainda tem bugs) mas estou tendo dois problemas:
>>>>>>>
>>>>>>> 1) Recebo a mensagem: Notice: Only variables should be
>>>>>>> assigned by reference in
>>>>>>> C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php on lin
>>>>>>>  e 301 logo depois de logar com usuário correto. A
>>>>>>> linha 301 está, se não me engano, fazendo o save do
>>>>>>> LoginAttempt model. Como dá esse Notice, não grava o
>>>>>>> login attempt e, obviamente, não faz o redirect
>>>>>>> corretamente.
>>>>>>>
>>>>>>> 2) Se apago o cookie de sessão (para forçar um login),
>>>>>>> recebo, além do item um acima, um
>>>>>>>
>>>>>>>
>>>>>>> Query: INSERT INTO `users`
>>>>>>> (`last_visit`,`created`,`modified`) VALUES ('2007-11-08
>>>>>>> 02:05:27','2007-11-08 02:05:27','2007-11-08 02:05:27')
>>>>>>> Warning: SQL Error: 1062: Duplicate entry '' for key 2
>>>>>>> in
>>>>>>> C:\xampp\htdocs\cake_core\cake\libs\model\datasources\dbo_source.php o
>>>>>>>    n line 440 que, neste caso, está tentando dar INSERT
>>>>>>> de valores na tabela users para uma key 2. O detalhe é
>>>>>>> que só tenho um usuário na tabela users e ele tem key
>>>>>>> (Id) 1. Os campos create e modified e last_visit do
>>>>>>> user (id=1) não são mexidos, mas a entrada 2 é criada
>>>>>>> (caso não exista) e depois recebo esse erro. Pergunta,
>>>>>>> o othAuth não deveria tentar um "UPDATE" ao invés de
>>>>>>> INSERT? Alguém sabe o que está causando isso? Grato
>>>>>>> Benito
>
>
> 
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a