Version 5.0.14
This commit is contained in:
1 parent
5efe744c5f
commit
dbd774b30c
364 files changed
+7048
-1377
No files matched your search
+37
-32
@@ -131,24 +131,29 @@ class Login
|
||||
/**
|
||||
* Get methods
|
||||
*
|
||||
* @return array<Handler>
|
||||
* @return array<Handler>
|
||||
*/
|
||||
public static function methods(): array
|
||||
{
|
||||
$return = array();
|
||||
foreach ( static::getStore() as $row )
|
||||
$return = [];
|
||||
$allowedHandlerClasses = Handler::handlerClasses();
|
||||
foreach( static::getStore() as $row )
|
||||
{
|
||||
try
|
||||
/* Does the class exist in the allowed handlers array, which contains all the handlers that are enabled? */
|
||||
if( in_array( $row[ 'login_classname' ], $allowedHandlerClasses ) )
|
||||
{
|
||||
$return[ $row['login_id'] ] = Handler::constructFromData( $row );
|
||||
|
||||
/* Check login method is supported */
|
||||
if( !$return[ $row['login_id'] ]->isSupported() )
|
||||
try
|
||||
{
|
||||
$handler = Handler::constructFromData( $row );
|
||||
if( $handler->isSupported() )
|
||||
{
|
||||
$return[ $row[ 'login_id' ] ] = $handler;
|
||||
}
|
||||
}
|
||||
catch( OutOfRangeException $e )
|
||||
{
|
||||
unset( $return[ $row['login_id'] ] );
|
||||
}
|
||||
}
|
||||
catch ( OutOfRangeException $e ) { }
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
@@ -156,13 +161,13 @@ class Login
|
||||
/**
|
||||
* Login method Store
|
||||
*
|
||||
* @return array
|
||||
* @return array
|
||||
*/
|
||||
public static function getStore(): array
|
||||
{
|
||||
if ( !isset( Store::i()->loginMethods ) )
|
||||
{
|
||||
Store::i()->loginMethods = iterator_to_array( Db::i()->select( '*', 'core_login_methods', array( 'login_enabled=1' ), 'login_order' )->setKeyField( 'login_id' ) );
|
||||
Store::i()->loginMethods = iterator_to_array( Db::i()->select( '*', 'core_login_methods', ['login_enabled=1'], 'login_order' )->setKeyField( 'login_id' ) );
|
||||
}
|
||||
|
||||
return Store::i()->loginMethods;
|
||||
@@ -171,7 +176,7 @@ class Login
|
||||
/**
|
||||
* Get methods
|
||||
*
|
||||
* @return array
|
||||
* @return array<int, Handler>
|
||||
*/
|
||||
protected function _methods(): array
|
||||
{
|
||||
@@ -195,11 +200,11 @@ class Login
|
||||
/**
|
||||
* Get methods which use a username and password
|
||||
*
|
||||
* @return array
|
||||
* @return array<int, Handler>
|
||||
*/
|
||||
public function usernamePasswordMethods(): array
|
||||
{
|
||||
$return = array();
|
||||
$return = [];
|
||||
foreach ( $this->_methods() as $method )
|
||||
{
|
||||
if ( $method->type() === static::TYPE_USERNAME_PASSWORD )
|
||||
@@ -213,7 +218,7 @@ class Login
|
||||
/**
|
||||
* Get methods which use a button
|
||||
*
|
||||
* @return array
|
||||
* @return array<int, Handler>
|
||||
*/
|
||||
public function buttonMethods(): array
|
||||
{
|
||||
@@ -268,8 +273,8 @@ class Login
|
||||
{
|
||||
$leastOffensiveException = NULL;
|
||||
$success = NULL;
|
||||
$fails = array();
|
||||
$failsNoAccount = array();
|
||||
$fails = [];
|
||||
$failsNoAccount = [];
|
||||
|
||||
foreach ( $this->usernamePasswordMethods() as $method )
|
||||
{
|
||||
@@ -450,8 +455,8 @@ class Login
|
||||
|
||||
if( $member->member_id )
|
||||
{
|
||||
Email::buildFromTemplate( 'core', 'account_locked', array( $member, $location, $unlockTime ?? NULL ), Email::TYPE_TRANSACTIONAL )->send( $member );
|
||||
$member->logHistory( 'core', 'login', array( 'type' => 'lock', 'count' => $member->failedLoginCount( Request::i()->ipAddress() ), 'unlockTime' => $unlockTime?->getTimestamp() ) );
|
||||
Email::buildFromTemplate( 'core', 'account_locked', [$member, $location, $unlockTime??NULL], Email::TYPE_TRANSACTIONAL )->send( $member );
|
||||
$member->logHistory( 'core', 'login', ['type' => 'lock', 'count' => $member->failedLoginCount( Request::i()->ipAddress() ), 'unlockTime' => $unlockTime?->getTimestamp()] );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -459,7 +464,7 @@ class Login
|
||||
{
|
||||
$diffValue = $unlockTime->diff( new DateTime() )->format('%i') ?: 1;
|
||||
|
||||
throw new Exception( Member::loggedIn()->language()->addToStack( 'login_err_locked_unlock', FALSE, array( 'pluralize' => array( $diffValue ) ) ), Exception::ACCOUNT_LOCKED );
|
||||
throw new Exception( Member::loggedIn()->language()->addToStack( 'login_err_locked_unlock', FALSE, ['pluralize' => [$diffValue]] ), Exception::ACCOUNT_LOCKED );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -512,7 +517,7 @@ class Login
|
||||
{
|
||||
if( $admin )
|
||||
{
|
||||
return Member::loggedIn()->language()->addToStack( 'member_name_exists_admin', FALSE, array('sprintf' => array( $handler->_title ) ) );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_name_exists_admin', FALSE, ['sprintf' => [$handler->_title]] );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -540,16 +545,16 @@ class Login
|
||||
$existingMember = Member::load( $email, 'email' );
|
||||
if ( $existingMember->member_id and ( !$exclude or $exclude->member_id != $existingMember->member_id ) )
|
||||
{
|
||||
$url = Url::internal( "app=core&module=system&controller=lostpass", "front", "lostpassword" );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, array( 'sprintf' => array( (string) $url ) ) );
|
||||
$url = Url::internal( 'app=core&module=system&controller=lostpass', 'front', 'lostpassword' );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, ['sprintf' => [(string) $url]] );
|
||||
}
|
||||
|
||||
/* Check if someone requested to change to this email */
|
||||
try
|
||||
{
|
||||
$test = Db::i()->select( '*', 'core_validating', [ 'email_chg=? and new_email=?', 1, $email ] )->first();
|
||||
$url = Url::internal( "app=core&module=system&controller=lostpass", "front", "lostpassword" );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, array( 'sprintf' => array( (string) $url ) ) );
|
||||
$url = Url::internal( 'app=core&module=system&controller=lostpass', 'front', 'lostpassword' );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, ['sprintf' => [(string) $url]] );
|
||||
}
|
||||
catch( UnderflowException ){}
|
||||
|
||||
@@ -560,12 +565,12 @@ class Login
|
||||
{
|
||||
if( $admin )
|
||||
{
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists_admin', FALSE, array('sprintf' => array( $handler->_title ) ) );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists_admin', FALSE, ['sprintf' => [$handler->_title]] );
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = Url::internal( "app=core&module=system&controller=lostpass", "front", "lostpassword" );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, array( 'sprintf' => array( (string) $url ) ) );
|
||||
$url = Url::internal( 'app=core&module=system&controller=lostpass', 'front', 'lostpassword' );
|
||||
return Member::loggedIn()->language()->addToStack( 'member_email_exists', FALSE, ['sprintf' => [(string) $url]] );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -666,7 +671,7 @@ class Login
|
||||
static::$_registrationType = 'disabled';
|
||||
}
|
||||
|
||||
if ( in_array( static::$_registrationType, array( 'normal', 'full' ) ) and !Handler::findMethod( 'IPS\Login\Handler\Standard' ) )
|
||||
if ( in_array( static::$_registrationType, ['normal', 'full'] ) and !Handler::findMethod( 'IPS\Login\Handler\Standard' ) )
|
||||
{
|
||||
static::$_registrationType = 'disabled';
|
||||
}
|
||||
@@ -699,14 +704,14 @@ class Login
|
||||
Request::i()->clearLoginCookies();
|
||||
|
||||
/* Destroy the session (we have to explicitly reset the session cookie, see http://php.net/manual/en/function.session-destroy.php) */
|
||||
$_SESSION = array();
|
||||
$_SESSION = [];
|
||||
$params = session_get_cookie_params();
|
||||
setcookie( session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] );
|
||||
session_destroy();
|
||||
session_start();
|
||||
|
||||
/* Member sync callback */
|
||||
Event::fire( 'onLogout', Member::loggedIn(), array( $redirectUrl ?: Url::internal('') ) );
|
||||
Event::fire( 'onLogout', Member::loggedIn(), [$redirectUrl ?: Url::internal( '' )] );
|
||||
|
||||
/* Check SSO Extensions for overloads */
|
||||
if( Session::i() instanceof Front )
|
||||
|
||||
Reference in new issue
Block a user