Re: othAuth...

2007-11-09 Por tôpico Josenivaldo Benito Junior
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...

2007-11-09 Por tôpico Josenivaldo Benito Junior
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

2007-11-09 Por tôpico Josenivaldo Benito Junior
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...

2007-11-09 Por tôpico Josenivaldo Benito Junior
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