Version 3.4.5
This commit is contained in:
1 parent
fb6b5baabc
commit
e4478369d8
1360 files changed
+228921
-179445
No files matched your search
@@ -2,9 +2,9 @@
|
||||
/**
|
||||
* <pre>
|
||||
* Invision Power Services
|
||||
* IP.Board v3.3.4
|
||||
* IP.Board v3.4.5
|
||||
* Login handler abstraction
|
||||
* Last Updated: $Date: 2012-06-12 10:14:49 -0400 (Tue, 12 Jun 2012) $
|
||||
* Last Updated: $Date: 2013-05-03 23:09:37 -0400 (Fri, 03 May 2013) $
|
||||
* </pre>
|
||||
*
|
||||
* @author $Author: bfarber $
|
||||
@@ -13,7 +13,7 @@
|
||||
* @package IP.Board
|
||||
* @link http://www.invisionpower.com
|
||||
* @since Tuesday 1st March 2005 (11:52)
|
||||
* @version $Revision: 10914 $
|
||||
* @version $Revision: 12226 $
|
||||
*/
|
||||
|
||||
if ( ! defined( 'IN_IPB' ) )
|
||||
@@ -125,7 +125,7 @@ class han_login
|
||||
// Load member
|
||||
//-----------------------------------------
|
||||
|
||||
$member = IPSMember::load( $memberID, 'all' );
|
||||
$member = IPSMember::load( $memberID, 'all,members_partial' );
|
||||
|
||||
if ( ! $member['member_id'] )
|
||||
{
|
||||
@@ -137,20 +137,28 @@ class han_login
|
||||
// Not completed their sign in?
|
||||
//-----------------------------------------
|
||||
|
||||
if ( $member['members_created_remote'] AND isset($member['full']) AND !$member['full'] )
|
||||
if ( $member['members_created_remote'] )
|
||||
{
|
||||
//-----------------------------------------
|
||||
// If this is a resume, i.e. from Facebook,
|
||||
// timenow won't be set
|
||||
//-----------------------------------------
|
||||
|
||||
if( !$member['timenow'] )
|
||||
if ( isset($member['full']) AND !$member['full'] )
|
||||
{
|
||||
$partial = $this->DB->buildAndFetch( array( 'select' => 'partial_date', 'from' => 'members_partial', 'where' => 'partial_member_id=' . $member['member_id'] ) );
|
||||
$member['timenow'] = $partial['partial_date'];
|
||||
}
|
||||
|
||||
return array( $this->registry->getClass('class_localization')->words['partial_login'], $this->settings['base_url'] . 'app=core&module=global&section=register&do=complete_login&mid='.$member['member_id'].'&key='.$member['timenow'] );
|
||||
//-----------------------------------------
|
||||
// If this is a resume, i.e. from Facebook,
|
||||
// timenow won't be set
|
||||
//-----------------------------------------
|
||||
|
||||
if( !$member['timenow'] )
|
||||
{
|
||||
$partial = $this->DB->buildAndFetch( array( 'select' => 'partial_date', 'from' => 'members_partial', 'where' => 'partial_member_id=' . $member['member_id'] ) );
|
||||
$member['timenow'] = $partial['partial_date'];
|
||||
}
|
||||
|
||||
return array( $this->registry->getClass('class_localization')->words['partial_login'], $this->settings['base_url'] . 'app=core&module=global&section=register&do=complete_login&mid='.$member['member_id'].'&key='.$member['timenow'] );
|
||||
}
|
||||
elseif ( $member['partial_member_id'] )
|
||||
{
|
||||
$this->DB->delete( 'members_partial', "partial_member_id={$member['partial_member_id']}" );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------
|
||||
@@ -173,16 +181,18 @@ class han_login
|
||||
//-----------------------------------------
|
||||
// Cookie me softly?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $setCookies )
|
||||
{
|
||||
IPSCookie::set( "member_id" , $member['member_id'] , 1 );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], $_sticky, $_days );
|
||||
IPSCookie::set( "member_id" , $member['member_id'] , 1, 0, FALSE, TRUE );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], $_sticky, $_days, FALSE, TRUE );
|
||||
IPSCookie::set( "ipsconnect_" . md5( $this->settings['board_url'] . '/interface/ipsconnect/ipsconnect.php' ), '1', $_sticky, $_days, FALSE, FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
IPSCookie::set( "member_id" , $member['member_id'], 0 );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], 0 );
|
||||
IPSCookie::set( "member_id" , $member['member_id'], 0, 0, FALSE, TRUE );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], 0, 0, FALSE, TRUE );
|
||||
IPSCookie::set( "ipsconnect_" . md5( $this->settings['board_url'] . '/interface/ipsconnect/ipsconnect.php' ), '1', 0, 0, FALSE, FALSE );
|
||||
}
|
||||
|
||||
//-----------------------------------------
|
||||
@@ -209,8 +219,7 @@ class han_login
|
||||
$session_id = $this->registry->member()->sessionClass()->convertGuestToMember( array( 'member_name' => $member['members_display_name'],
|
||||
'member_id' => $member['member_id'],
|
||||
'member_group' => $member['member_group_id'],
|
||||
'login_type' => $privacy
|
||||
) );
|
||||
'login_type' => $privacy ) );
|
||||
|
||||
if ( !empty( $this->request['referer'] ) AND $this->request['section'] != 'register' )
|
||||
{
|
||||
@@ -276,7 +285,8 @@ class han_login
|
||||
// Still here?
|
||||
//-----------------------------------------
|
||||
|
||||
return array( $this->registry->getClass('class_localization')->words['partial_login'], str_replace( '?&', '?', $url . '&s=' . $session_id ) );
|
||||
//return array( $this->registry->getClass('class_localization')->words['partial_login'], str_replace( '?&', '?', $url . '&s=' . $session_id ) );
|
||||
return array( $this->registry->getClass('class_localization')->words['partial_login'], str_replace( '?&', '?', $url ) );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -294,15 +304,16 @@ class han_login
|
||||
$errors = '';
|
||||
$core = array();
|
||||
$mobileSSO = false;
|
||||
$memberData = $this->registry->member()->fetchMemberData();
|
||||
|
||||
/* Mobile app + sso */
|
||||
if ( $this->memberData['userAgentType'] == 'mobileApp' )
|
||||
if ( $memberData['userAgentType'] == 'mobileApp' )
|
||||
{
|
||||
$file = IPS_ROOT_PATH . 'sources/classes/session/ssoMobileAppLogIn.php';
|
||||
|
||||
if ( is_file( $file ) )
|
||||
{
|
||||
require_once( $file );/*noLibHook*/ #NoTeraThisDoesNotNeedAHookButIForgotYourLittleCodeSorryX
|
||||
require_once( $file );
|
||||
|
||||
if ( class_exists( 'ssoMobileAppLogIn' ) )
|
||||
{
|
||||
@@ -345,7 +356,7 @@ class han_login
|
||||
//-----------------------------------------
|
||||
// Check return code...
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $this->return_code != 'SUCCESS' )
|
||||
{
|
||||
if( $this->return_code == 'MISSING_DATA' )
|
||||
@@ -376,6 +387,17 @@ class han_login
|
||||
{
|
||||
return array( null, null, 'flagged_remote' );
|
||||
}
|
||||
else if( $this->return_code == 'VALIDATING' )
|
||||
{
|
||||
if( $this->revalidate_url == 'ADMIN_VALIDATION' )
|
||||
{
|
||||
return array( null, null, 'validating_remote', ipsRegistry::getClass('class_localization')->words['admin_validation_msg'] );
|
||||
}
|
||||
else
|
||||
{
|
||||
return array( null, null, 'validating_remote', "<a href='{$this->revalidate_url}' target='_blank'>".ipsRegistry::getClass('class_localization')->words['resend_val']."</a>" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return array( null, null, 'wrong_auth' );
|
||||
@@ -412,18 +434,22 @@ class han_login
|
||||
//-----------------------------------------
|
||||
// Cookie me softly?
|
||||
//-----------------------------------------
|
||||
|
||||
|
||||
if ( $this->request['rememberMe'] )
|
||||
{
|
||||
IPSCookie::set( "member_id" , $member['member_id'] , 1 );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], $_sticky, $_days );
|
||||
IPSCookie::set( "member_id" , $member['member_id'] , 1, 0, FALSE, TRUE );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], $_sticky, $_days, FALSE, TRUE );
|
||||
IPSCookie::set( "ipsconnect_" . md5( $this->settings['board_url'] . '/interface/ipsconnect/ipsconnect.php' ), '1', $_sticky, $_days, FALSE, FALSE );
|
||||
}
|
||||
else
|
||||
{
|
||||
IPSCookie::set( "member_id" , $member['member_id'], 0 );
|
||||
IPSCookie::set( "pass_hash" , $member['member_login_key'], 0 );
|
||||
// Ticket 824266
|
||||
// IPSCookie::set( "member_id" , $member['member_id'], 0 );
|
||||
// IPSCookie::set( "pass_hash" , $member['member_login_key'], 0 );
|
||||
|
||||
IPSCookie::set( "ipsconnect_" . md5( $this->settings['board_url'] . '/interface/ipsconnect/ipsconnect.php' ), '1', 0, 0, FALSE, FALSE );
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------
|
||||
// Remove any COPPA cookies previously set
|
||||
//-----------------------------------------
|
||||
@@ -448,8 +474,7 @@ class han_login
|
||||
$session_id = $this->registry->member()->sessionClass()->convertGuestToMember( array( 'member_name' => $member['members_display_name'],
|
||||
'member_id' => $member['member_id'],
|
||||
'member_group' => $member['member_group_id'],
|
||||
'login_type' => $privacy
|
||||
) );
|
||||
'login_type' => $privacy ) );
|
||||
|
||||
if ( !empty($this->request['referer']) AND $this->request['section'] != 'register' )
|
||||
{
|
||||
@@ -656,6 +681,7 @@ class han_login
|
||||
{
|
||||
foreach( $this->modules as $k => $obj_reference )
|
||||
{
|
||||
$obj_reference->is_password_check = TRUE;
|
||||
$obj_reference->authenticate( $username, $email_address, $password );
|
||||
$this->return_code = ( $obj_reference->return_code == 'SUCCESS' ? 'SUCCESS' : 'FAIL' );
|
||||
$this->member_data = $obj_reference->member_data;
|
||||
@@ -685,6 +711,7 @@ class han_login
|
||||
$this->return_code = $obj_reference->return_code;
|
||||
$this->member_data = $obj_reference->member_data;
|
||||
$this->account_unlock = ( $obj_reference->account_unlock ) ? $obj_reference->account_unlock : $this->account_unlock;
|
||||
$this->revalidate_url = ( $obj_reference->revalidate_url ) ? $obj_reference->revalidate_url : $this->revalidate_url;
|
||||
|
||||
/* Locked */
|
||||
if( $this->return_code == 'ACCOUNT_LOCKED' )
|
||||
@@ -725,9 +752,10 @@ class han_login
|
||||
/**
|
||||
* Logout callback - called when a user logs out
|
||||
*
|
||||
* @param array Member Data
|
||||
* @return mixed Possible redirection based on login method config, else array of messages
|
||||
*/
|
||||
public function logoutCallback()
|
||||
public function logoutCallback( $memberData )
|
||||
{
|
||||
$returns = array();
|
||||
$redirect = '';
|
||||
@@ -736,7 +764,7 @@ class han_login
|
||||
{
|
||||
if( method_exists( $obj_reference, 'logoutCallback' ) )
|
||||
{
|
||||
$returns[] = $obj_reference->logoutCallback();
|
||||
$returns[] = $obj_reference->logoutCallback( $memberData );
|
||||
}
|
||||
|
||||
//-----------------------------------------
|
||||
@@ -964,15 +992,15 @@ class han_login
|
||||
* @param array Arra of Member Data
|
||||
* @return boolean Request was successful
|
||||
*/
|
||||
public function changeName( $old_name, $new_name, $email_address, $memberData )
|
||||
public function changeName( $old_name, $new_name, $email_address, $memberData, $type='name' )
|
||||
{
|
||||
$this->return_code = 'METHOD_NOT_DEFINED';
|
||||
|
||||
|
||||
foreach( $this->modules as $k => $obj_reference )
|
||||
{
|
||||
if( method_exists( $obj_reference, 'changeName' ) )
|
||||
{
|
||||
$obj_reference->changeName( $old_name, $new_name, $email_address, $memberData );
|
||||
$obj_reference->changeName( $old_name, $new_name, $email_address, $memberData, $type );
|
||||
$this->return_code = $obj_reference->return_code;
|
||||
}
|
||||
}
|
||||
@@ -980,6 +1008,44 @@ class han_login
|
||||
return ( $this->return_code == 'SUCCESS' ) ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Account
|
||||
*
|
||||
* @param array Member data
|
||||
*/
|
||||
public function validateAccount( $member )
|
||||
{
|
||||
$this->return_code = 'METHOD_NOT_DEFINED';
|
||||
|
||||
foreach( $this->modules as $k => $obj_reference )
|
||||
{
|
||||
if( method_exists( $obj_reference, 'validateAccount' ) )
|
||||
{
|
||||
$obj_reference->validateAccount( $member );
|
||||
$this->return_code = $obj_reference->return_code;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete Account
|
||||
*
|
||||
* @param int|array ID(s)
|
||||
*/
|
||||
public function deleteAccount( $ids )
|
||||
{
|
||||
$this->return_code = 'METHOD_NOT_DEFINED';
|
||||
|
||||
foreach( $this->modules as $k => $obj_reference )
|
||||
{
|
||||
if( method_exists( $obj_reference, 'deleteAccount' ) )
|
||||
{
|
||||
$obj_reference->deleteAccount( $ids );
|
||||
$this->return_code = $obj_reference->return_code;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a user's account
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user