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