2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								< ? php  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  StatusNet ,  the  distributed  open - source  microblogging  tool 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Plugin  that  checks  if  the  password  is  the  reverse  of  username 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  PHP  version  5 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  LICENCE :  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 />. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ category   Plugin 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ package    StatusNet 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ author     Craig  Andrews  < candrews @ integralblue . com > 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-27 18:26:47 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  @ copyright  2009  Free  Software  Foundation ,  Inc  http :// www . fsf . org 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  @ license    http :// www . fsf . org / licensing / licenses / agpl - 3.0 . html  GNU  Affero  General  Public  License  version  3.0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  @ link       http :// status . net / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  ( ! defined ( 'STATUSNET' )  &&  ! defined ( 'LACONICA' ))  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    exit ( 1 ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ReverseUsernameAuthenticationPlugin  extends  AuthenticationPlugin  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    //---interface implementation---//
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  onInitializePlugin (){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        parent :: onInitializePlugin (); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if ( ! isset ( $this -> password_changeable )  &&  $this -> password_changeable ){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  new  Exception ( " password_changeable cannot be set to true. This plugin does not support changing passwords. " ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  checkPassword ( $username ,  $password ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  $username  ==  strrev ( $password ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-01-29 20:43:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  autoRegister ( $username ,  $nickname ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-29 20:43:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if ( is_null ( $nickname )){ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $nickname  =  $username ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        $registration_data  =  array (); 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-29 20:43:16 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $registration_data [ 'nickname' ]  =  $nickname  ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								        return  User :: register ( $registration_data ); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 18:58:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-06 22:04:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  onPluginVersion ( array  & $versions ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 18:58:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $versions []  =  array ( 'name'  =>  'Reverse Username Authentication' , 
							 
						 
					
						
							
								
									
										
										
										
											2013-11-01 13:51:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            'version'  =>  GNUSOCIAL_VERSION , 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 18:58:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            'author'  =>  'Craig Andrews' , 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-22 16:38:42 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            'homepage'  =>  'https://git.gnu.io/gnu/gnu-social/tree/master/plugins/ReverseUsernameAuthentication' , 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 18:58:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            'rawdescription'  => 
							 
						 
					
						
							
								
									
										
										
										
											2011-06-05 19:59:50 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            // TRANS: Plugin description.
 
							 
						 
					
						
							
								
									
										
										
										
											2010-01-09 18:58:40 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            _m ( 'The Reverse Username Authentication plugin allows for StatusNet to handle authentication by checking if the provided password is the same as the reverse of the username.' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2009-11-12 20:12:00 -05:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}