Re: othAuth...
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 [EMAIL PROTECTED] 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 line 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 cake-php-pt@googlegroups.com 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 -~--~~~~--~~--~--~---
Re: othAuth...
Olá, Melhorando: A linha 301 tem: $UserModel = $this-_createModel(); Se eu trocar por: $UserModel = $this-_createModel(); Funciona sem notices e sem erro. Porém, eu entendo que na primeira notação estou pegando endereço para o objeto criado e na segunda estou igualando ao conteúdo desse objeto criado. Aqui, se entendi bem, não vai fazer diferença, mas e no resto do ambiente? Parece-me um erro de conceito do othAuth para com a versão do PHP 4.4.7, mas a correção que fiz é válida? Obrigado, Benito On 11/9/07, Josenivaldo Benito Junior [EMAIL PROTECTED] wrote: 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 [EMAIL PROTECTED] 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 line 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 cake-php-pt@googlegroups.com 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 -~--~~~~--~~--~--~---
mais dúvidas sobre othAuth
Olá, Agora que está tudo mais ou menos meia boca capengamente funcionando hihih, O que aconteceria se o usuário tentasse o login novamente (já estando logado)? O cake trata disso? Imaginem a situação onde um usuário tem um profile, dando permissão ao grupo users para editar profile ele terá acesso a editar todos os profiles. Consigo imaginar algumas soluções para isso, mas qual seria a solução elegante (leia-se usando cake como se deve) para limitar o acesso do usuário X ao perfil X e não a todos os perfis do modelo profile? Valeu gente, meu ramp up em Cake está sendo rápido e suave graças a ajuda da galera aqui. Abração, 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 cake-php-pt@googlegroups.com 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 -~--~~~~--~~--~--~---
Re: othAuth...
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 [EMAIL PROTECTED] 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 line 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