2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:14:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  StatusNet  -  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Copyright  ( C )  2008 ,  2009 ,  StatusNet ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  free  software :  you  can  redistribute  it  and / or  modify 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  it  under  the  terms  of  the  GNU  Affero  General  Public  License  as  published  by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  Free  Software  Foundation ,  either  version  3  of  the  License ,  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( at  your  option )  any  later  version . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  program  is  distributed  in  the  hope  that  it  will  be  useful , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  WITHOUT  ANY  WARRANTY ;  without  even  the  implied  warranty  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE .   See  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  GNU  Affero  General  Public  License  for  more  details . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  You  should  have  received  a  copy  of  the  GNU  Affero  General  Public  License 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  along  with  this  program .   If  not ,  see  < http :// www . gnu . org / licenses />. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-10-08 11:23:53 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( ! defined ( 'STATUSNET' ))  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-04 07:45:16 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								require_once  INSTALLDIR . '/plugins/OpenID/openid.php' ;  
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:49:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  FinishopenidloginAction  extends  Action  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  $error  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  $username  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  $message  =  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  handle ( $args ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        parent :: handle ( $args ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-21 16:38:39 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( common_is_real_login ())  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: Client error message trying to log on with OpenID while already logged on.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> clientError ( _m ( 'Already logged in.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  if  ( $_SERVER [ 'REQUEST_METHOD' ]  ==  'POST' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $token  =  $this -> trimmed ( 'token' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! $token  ||  $token  !=  common_session_token ())  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // TRANS: Message given when there is a problem with the user's session token.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> showForm ( _m ( 'There was a problem with your session token. Try again, please.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $this -> arg ( 'create' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( ! $this -> boolean ( 'license' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    // TRANS: Message given if user does not agree with the site's license.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    $this -> showForm ( _m ( 'You can\'t register if you don\'t agree to the license.' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                    $this -> trimmed ( 'newname' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                    return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> createNewUser (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            }  else  if  ( $this -> arg ( 'connect' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> connectUser (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // TRANS: Messag given on an unknown error.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $this -> showForm ( _m ( 'An unknown error has occured.' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                $this -> trimmed ( 'newname' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> tryLogin (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showPageNotice () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $this -> error )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this -> element ( 'div' ,  array ( 'class'  =>  'error' ),  $this -> error ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'div' ,  'instructions' , 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           // TRANS: Instructions given after a first successful logon using OpenID.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           // TRANS: %s is the site name.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           sprintf ( _m ( 'This is the first time you\'ve logged into %s so we must connect your OpenID to a local account. You can either create a new account, or connect with your existing account, if you have one.' ),  common_config ( 'site' ,  'name' ))); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  title () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: Title
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  _m ( 'OpenID Account Setup' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  showForm ( $error = null ,  $username = null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> error  =  $error ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> username  =  $username ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showPage (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-04-09 10:11:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /** 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  @ fixme  much  of  this  duplicates  core  code ,  which  is  very  fragile . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Should  probably  be  replaced  with  an  extensible  mini  version  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  the  core  registration  form . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  showContent () 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! empty ( $this -> message_text ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-17 22:55:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> element ( 'div' ,  array ( 'class'  =>  'error' ),  $this -> message_text ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'form' ,  array ( 'method'  =>  'post' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                          'id'  =>  'account_connect' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                          'class'  =>  'form_settings' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                          'action'  =>  common_local_url ( 'finishopenidlogin' ))); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> hidden ( 'token' ,  common_session_token ()); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'fieldset' ,  array ( 'id'  =>  'form_openid_createaccount' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'legend' ,  null , 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       _m ( 'Create new account' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'p' ,  null , 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       _m ( 'Create a new user with this nickname.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  'form_data' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> input ( 'newname' ,  _m ( 'New nickname' ), 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                     ( $this -> username )  ?  $this -> username  :  '' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                     _m ( '1-64 lowercase letters or numbers, no punctuation or spaces' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'input' ,  array ( 'type'  =>  'checkbox' , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                      'id'  =>  'license' , 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                      'class'  =>  'checkbox' , 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                      'name'  =>  'license' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                      'value'  =>  'true' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'label' ,  array ( 'for'  =>  'license' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          'class'  =>  'checkbox' )); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: OpenID plugin link text.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // TRANS: %s is a link to a licese with the license name as link text.
 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-09 10:11:11 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $message  =  _ ( 'My text and files are available under %s '  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     'except this private data: password, '  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     'email address, IM address, and phone number.' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $link  =  '<a href="'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                htmlspecialchars ( common_config ( 'license' ,  'url' ))  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                '">'  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                htmlspecialchars ( common_config ( 'license' ,  'title' ))  . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                '</a>' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> raw ( sprintf ( htmlspecialchars ( $message ),  $link )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'label' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: Button label in form in which to create a new user on the site for an OpenID.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> submit ( 'create' ,  _m ( 'BUTTON' ,  'Create' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'fieldset' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'fieldset' ,  array ( 'id'  =>  'form_openid_createaccount' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> element ( 'legend' ,  null , 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       // TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       _m ( 'Connect existing account' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> element ( 'p' ,  null , 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       // TRANS: User instructions for form in which to connect an OpenID to an existing user on the site.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                       _m ( 'If you already have an account, login with your username and password to connect it to your OpenID.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementStart ( 'ul' ,  'form_data' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> input ( 'nickname' ,  _m ( 'Existing nickname' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementStart ( 'li' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: Field label in form in which to connect an OpenID to an existing user on the site.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> password ( 'password' ,  _m ( 'Password' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'li' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'ul' ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // TRANS: Button label in form in which to connect an OpenID to an existing user on the site.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> submit ( 'connect' ,  _m ( 'BUTTON' ,  'Connect' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-20 05:48:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'fieldset' ); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-15 22:57:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> elementEnd ( 'form' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  tryLogin () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $consumer  =  oid_consumer (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $response  =  $consumer -> complete ( common_local_url ( 'finishopenidlogin' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $response -> status  ==  Auth_OpenID_CANCEL )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> message ( _m ( 'OpenID authentication cancelled.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( $response -> status  ==  Auth_OpenID_FAILURE )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID authentication failed; display the error message. %s is the error message.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> message ( sprintf ( _m ( 'OpenID authentication failed: %s' ),  $response -> message )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  if  ( $response -> status  ==  Auth_OpenID_SUCCESS )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // This means the authentication succeeded; extract the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // identity URL and Simple Registration data (if it was
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // returned).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $display  =  $response -> getDisplayIdentifier (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $canonical  =  ( $response -> endpoint -> canonicalID )  ? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              $response -> endpoint -> canonicalID  :  $response -> getDisplayIdentifier (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-03-25 16:58:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            oid_assert_allowed ( $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            oid_assert_allowed ( $canonical ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $sreg_resp  =  Auth_OpenID_SRegResponse :: fromSuccessResponse ( $response ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $sreg_resp )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $sreg  =  $sreg_resp -> contents (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-18 10:39:56 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // Launchpad teams extension
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( ! oid_check_teams ( $response ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $this -> message ( _m ( 'OpenID authentication aborted: you are not allowed to login to this site.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $user  =  oid_get_user ( $canonical ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $user )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                oid_set_last ( $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # XXX: commented out at @edd's request until better
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # control over how data flows from OpenID provider.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # oid_update_user($user, $sreg);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                common_set_user ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                common_real_login ( true ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( isset ( $_SESSION [ 'openid_rememberme' ])  &&  $_SESSION [ 'openid_rememberme' ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                    common_rememberme ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 13:03:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                unset ( $_SESSION [ 'openid_rememberme' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> goHome ( $user -> nickname ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> saveValues ( $display ,  $canonical ,  $sreg ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $this -> showForm ( null ,  $this -> bestNewNickname ( $display ,  $sreg )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  message ( $msg ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> message_text  =  $msg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $this -> showPage (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  saveValues ( $display ,  $canonical ,  $sreg ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_ensure_session (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $_SESSION [ 'openid_display' ]  =  $display ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $_SESSION [ 'openid_canonical' ]  =  $canonical ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $_SESSION [ 'openid_sreg' ]  =  $sreg ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  getSavedValues () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  array ( $_SESSION [ 'openid_display' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     $_SESSION [ 'openid_canonical' ], 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                     $_SESSION [ 'openid_sreg' ]); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  createNewUser () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 13:50:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # FIXME: save invite code before redirect, and check here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-04-17 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( common_config ( 'site' ,  'closed' ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin message. No new user registration is allowed on the site.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> clientError ( _m ( 'Registration not allowed.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-03 13:50:22 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-04-17 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $invite  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( common_config ( 'site' ,  'inviteonly' ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $code  =  $_SESSION [ 'invitecode' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( empty ( $code ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> clientError ( _m ( 'Registration not allowed.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-17 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $invite  =  Invitation :: staticGet ( $code ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( empty ( $invite ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                // TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                $this -> clientError ( _m ( 'Not a valid invitation code.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-17 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $nickname  =  $this -> trimmed ( 'newname' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! Validate :: string ( $nickname ,  array ( 'min_length'  =>  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               'max_length'  =>  64 , 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-05 16:26:19 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                               'format'  =>  NICKNAME_FMT )))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin message. The entered new user name did not conform to the requirements.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> showForm ( _m ( 'Nickname must have only lowercase letters and numbers and no spaces.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-22 14:04:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! User :: allowed_nickname ( $nickname ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin message. The entered new user name is blacklisted.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> showForm ( _m ( 'Nickname not allowed.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( User :: staticGet ( 'nickname' ,  $nickname ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin message. The entered new user name is already used.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> showForm ( _m ( 'Nickname already in use. Try another one.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        list ( $display ,  $canonical ,  $sreg )  =  $this -> getSavedValues (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $display  ||  ! $canonical )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> serverError ( _m ( 'Stored OpenID not found.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # Possible race condition... let's be paranoid
 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $other  =  oid_get_user ( $canonical ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $other )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin server error.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> serverError ( _m ( 'Creating new account for OpenID that already has a user.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-20 12:21:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Event :: handle ( 'StartOpenIDCreateNewUser' ,  array ( $canonical ,  & $sreg )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $location  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! empty ( $sreg [ 'country' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $sreg [ 'postcode' ])  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # XXX: use postcode to get city and region
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                # XXX: also, store postcode somewhere -- it's valuable!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $location  =  $sreg [ 'postcode' ]  .  ', '  .  $sreg [ 'country' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                $location  =  $sreg [ 'country' ]; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 20:46:19 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! empty ( $sreg [ 'fullname' ])  &&  mb_strlen ( $sreg [ 'fullname' ])  <=  255 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $fullname  =  $sreg [ 'fullname' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $fullname  =  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 20:46:19 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-26 10:31:12 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! empty ( $sreg [ 'email' ])  &&  Validate :: email ( $sreg [ 'email' ],  common_config ( 'email' ,  'check_domain' )))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $email  =  $sreg [ 'email' ]; 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $email  =  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # XXX: add language
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX: add timezone
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 20:46:19 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-04-17 12:52:26 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $args  =  array ( 'nickname'  =>  $nickname , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      'email'  =>  $email , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      'fullname'  =>  $fullname , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                      'location'  =>  $location ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! empty ( $invite ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $args [ 'code' ]  =  $invite -> code ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $user  =  User :: register ( $args ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $result  =  oid_link_user ( $user -> id ,  $canonical ,  $display ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 20:46:19 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-20 12:21:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Event :: handle ( 'EndOpenIDCreateNewUser' ,  array ( $user ,  $canonical ,  $sreg )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        oid_set_last ( $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_set_user ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_real_login ( true ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 13:03:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $_SESSION [ 'openid_rememberme' ])  &&  $_SESSION [ 'openid_rememberme' ])  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            common_rememberme ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 13:03:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        unset ( $_SESSION [ 'openid_rememberme' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-01 15:30:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_redirect ( common_local_url ( 'showstream' ,  array ( 'nickname'  =>  $user -> nickname )), 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                        303 ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  connectUser () 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $nickname  =  $this -> trimmed ( 'nickname' ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $password  =  $this -> trimmed ( 'password' ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! common_check_user ( $nickname ,  $password ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin message.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> showForm ( _m ( 'Invalid username or password.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        # They're legit!
 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $user  =  User :: staticGet ( 'nickname' ,  $nickname ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        list ( $display ,  $canonical ,  $sreg )  =  $this -> getSavedValues (); 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $display  ||  ! $canonical )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin server error. A stored OpenID cannot be found.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> serverError ( _m ( 'Stored OpenID not found.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $result  =  oid_link_user ( $user -> id ,  $canonical ,  $display ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! $result )  { 
							 
						 
					
						
							
								
									
										
										
										
											2010-04-30 23:07:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            // TRANS: OpenID plugin server error. The user or user profile could not be saved.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-12-08 12:17:11 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $this -> serverError ( _m ( 'Error connecting user to OpenID.' )); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-02 09:15:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-20 12:21:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( Event :: handle ( 'StartOpenIDUpdateUser' ,  array ( $user ,  $canonical ,  & $sreg )))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            oid_update_user ( $user ,  $sreg ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Event :: handle ( 'EndOpenIDUpdateUser' ,  array ( $user ,  $canonical ,  $sreg )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        oid_set_last ( $display ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_set_user ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        common_real_login ( true ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-09 13:03:30 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isset ( $_SESSION [ 'openid_rememberme' ])  &&  $_SESSION [ 'openid_rememberme' ])  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            common_rememberme ( $user ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        unset ( $_SESSION [ 'openid_rememberme' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $this -> goHome ( $user -> nickname ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  goHome ( $nickname ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $url  =  common_get_returnto (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $url )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-09 20:01:46 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            # We don't have to return to it again
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            common_set_returnto ( null ); 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-11 08:40:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									    $url  =  common_inject_session ( $url ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $url  =  common_local_url ( 'all' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                    array ( 'nickname'  => 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          $nickname )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-04-01 15:30:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        common_redirect ( $url ,  303 ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  bestNewNickname ( $display ,  $sreg ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Try the passed-in nickname
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! empty ( $sreg [ 'nickname' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $nickname  =  $this -> nicknamize ( $sreg [ 'nickname' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $this -> isNewNickname ( $nickname ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                return  $nickname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Try the full name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-17 23:22:56 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! empty ( $sreg [ 'fullname' ]))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $fullname  =  $this -> nicknamize ( $sreg [ 'fullname' ]); 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( $this -> isNewNickname ( $fullname ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                return  $fullname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # Try the URL
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $from_url  =  $this -> openidToNickname ( $display ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $from_url  &&  $this -> isNewNickname ( $from_url ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  $from_url ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        # XXX: others?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  isNewNickname ( $str ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! Validate :: string ( $str ,  array ( 'min_length'  =>  1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                          'max_length'  =>  64 , 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-05 16:26:19 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                          'format'  =>  NICKNAME_FMT )))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! User :: allowed_nickname ( $str ))  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( User :: staticGet ( 'nickname' ,  $str ))  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  openidToNickname ( $openid ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        if  ( Auth_Yadis_identifierScheme ( $openid )  ==  'XRI' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  $this -> xriToNickname ( $openid ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  $this -> urlToNickname ( $openid ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 18:12:20 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # We try to use an OpenID URL as a legal StatusNet user name in this order
 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # 1. Plain hostname, like http://evanp.myopenid.com/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # 2. One element in path, like http://profile.typekey.com/EvanProdromou/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    #    or http://getopenid.com/evanprodromou
 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  urlToNickname ( $openid ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-16 11:06:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  common_url_to_nickname ( $openid ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  xriToNickname ( $xri ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $base  =  $this -> xriBase ( $xri ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! $base )  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:21:29 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            return  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            # =evan.prodromou
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            # or @gratis*evan.prodromou
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $parts  =  explode ( '*' ,  substr ( $base ,  1 )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $this -> nicknamize ( array_pop ( $parts )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-01-23 00:30:57 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  xriBase ( $xri ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( substr ( $xri ,  0 ,  6 )  ==  'xri://' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  substr ( $xri ,  6 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  $xri ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # Given a string, try to make it work as a nickname
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:33:23 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  nicknamize ( $str ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-02-16 11:06:10 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  common_nicknamize ( $str ); 
							 
						 
					
						
							
								
									
										
										
										
											2008-12-23 14:19:07 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-18 01:26:38 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}