Auth: loginCallback and loginFailedCallback pass a copy of auth instead of a reference
| From: | Herman Sinte Maartensdijk | Date: | Mon, 15 Mar 2004 13:04:00 +0000 |
| Subject: | Auth: loginCallback and loginFailedCallback pass a copy of auth instead of a reference | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-26426@lists.php.net to get a copy of this message | ||
The documentation of the Auth package states that the loginCallback and loginFailedCallback
functions get the username and a reference to the auth-object.
However in reality they get a copy and not a reference, making it impossible for the callbacks to
influence the auth-class.
I've attached a diff to this e-mail with a patch for this. I hop ethis can be put into the CVS
Herman
--- Auth.php.173-PR1 Thu Mar 11 10:20:44 2004 +++ Auth.php.173-PR2 Mon Mar 15 13:56:00 2004 @@ -17,7 +17,8 @@ // +----------------------------------------------------------------------+ // // $Id: Auth.php,v 1.73 2004/03/03 23:15:06 yavo Exp $ -// Added setPostUsername & setPostPassword +// PR1: Added setPostUsername & setPostPassword +// PR2: Fixed bug in loginCallback & loginFailedCallback which send a copy of auth instead of a reference // require_once 'PEAR.php'; @@ -331,7 +332,7 @@ if (!empty($this->username) && $login_ok) { $this->setAuth($this->username); if (is_callable($this->loginCallback)) { - call_user_func($this->loginCallback,$this->username, $this); + call_user_func($this->loginCallback,$this->username, &$this); } } @@ -342,7 +343,7 @@ if (!empty($this->username) && !$login_ok) { $this->status = AUTH_WRONG_LOGIN; if (is_callable($this->loginFailedCallback)) { - call_user_func($this->loginFailedCallback,$this->username, $this); + call_user_func($this->loginFailedCallback,$this->username, &$this); } }
--- Auth.php.173-PR1 Thu Mar 11 10:20:44 2004 +++ Auth.php.173-PR2 Mon Mar 15 13:56:00 2004 @@ -17,7 +17,8 @@ // +----------------------------------------------------------------------+ // // $Id: Auth.php,v 1.73 2004/03/03 23:15:06 yavo Exp $ -// Added setPostUsername & setPostPassword +// PR1: Added setPostUsername & setPostPassword +// PR2: Fixed bug in loginCallback & loginFailedCallback which send a copy of auth instead of a reference // require_once 'PEAR.php'; @@ -331,7 +332,7 @@ if (!empty($this->username) && $login_ok) { $this->setAuth($this->username); if (is_callable($this->loginCallback)) { - call_user_func($this->loginCallback,$this->username, $this); + call_user_func($this->loginCallback,$this->username, &$this); } } @@ -342,7 +343,7 @@ if (!empty($this->username) && !$login_ok) { $this->status = AUTH_WRONG_LOGIN; if (is_callable($this->loginFailedCallback)) { - call_user_func($this->loginFailedCallback,$this->username, $this); + call_user_func($this->loginFailedCallback,$this->username, &$this); } }