Version 5.0.0 beta 1
This commit is contained in:
1 parent
25ddeb65d6
commit
15c7beabc5
6736 files changed
+627902
-497943
No files matched your search
@@ -12,25 +12,46 @@
|
||||
namespace IPS\convert;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
|
||||
use InvalidArgumentException;
|
||||
use IPS\convert\Login\HashCryptPrivate;
|
||||
use IPS\convert\Software\Core\Joomla;
|
||||
use IPS\convert\Software\Core\Phpbb;
|
||||
use IPS\convert\Software\Core\Vbulletin;
|
||||
use IPS\convert\Software\Core\Vbulletin5;
|
||||
use IPS\convert\Software\Core\Wordpress;
|
||||
use IPS\Db;
|
||||
use IPS\Events\Event;
|
||||
use IPS\Login as LoginClass;
|
||||
use IPS\Login\Exception;
|
||||
use IPS\Login\Handler;
|
||||
use IPS\Login\Handler\UsernamePasswordHandler;
|
||||
use IPS\Member;
|
||||
use IPS\Patterns\ActiveRecordIterator;
|
||||
use IPS\Request;
|
||||
use function count;
|
||||
use function defined;
|
||||
use function strlen;
|
||||
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Standard Internal Database Login Handler
|
||||
*/
|
||||
class _Login extends \IPS\Login\Handler
|
||||
class Login extends Handler
|
||||
{
|
||||
use \IPS\Login\Handler\UsernamePasswordHandler;
|
||||
use UsernamePasswordHandler;
|
||||
|
||||
/**
|
||||
* Get title
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getTitle()
|
||||
public static function getTitle(): string
|
||||
{
|
||||
return 'login_handler_Convert';
|
||||
}
|
||||
@@ -38,83 +59,49 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Authenticate
|
||||
*
|
||||
* @param \IPS\Login $login The login object
|
||||
* @param string $usernameOrEmail The username or email address provided by the user
|
||||
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
|
||||
* @return \IPS\Member
|
||||
* @throws \IPS\Login\Exception
|
||||
* @param LoginClass $login The login object
|
||||
* @param string $usernameOrEmail The username or email address provided by the user
|
||||
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
|
||||
* @return Member
|
||||
* @throws Exception
|
||||
*/
|
||||
public function authenticateUsernamePassword( \IPS\Login $login, $usernameOrEmail, $password )
|
||||
public function authenticateUsernamePassword( LoginClass $login, string $usernameOrEmail, object $password ): Member
|
||||
{
|
||||
$type = 'username_or_email';
|
||||
switch ( $this->authType() )
|
||||
{
|
||||
case \IPS\Login::AUTH_TYPE_USERNAME + \IPS\Login::AUTH_TYPE_EMAIL:
|
||||
$type = 'username_or_email';
|
||||
break;
|
||||
|
||||
case \IPS\Login::AUTH_TYPE_USERNAME:
|
||||
$type = 'username';
|
||||
break;
|
||||
|
||||
case \IPS\Login::AUTH_TYPE_EMAIL:
|
||||
$type = 'email_address';
|
||||
break;
|
||||
}
|
||||
|
||||
/* Make sure we have the username or email */
|
||||
if( !$usernameOrEmail )
|
||||
{
|
||||
$member = NULL;
|
||||
|
||||
if ( $this->authType() & \IPS\Login::AUTH_TYPE_EMAIL )
|
||||
{
|
||||
$member = new \IPS\Member;
|
||||
$member->email = $usernameOrEmail;
|
||||
}
|
||||
$member = new Member;
|
||||
$member->email = $usernameOrEmail;
|
||||
|
||||
throw new \IPS\Login\Exception( \IPS\Member::loggedIn()->language()->addToStack( 'login_err_no_account', FALSE, array( 'pluralize' => array( $this->authType() ) ) ), \IPS\Login\Exception::NO_ACCOUNT, NULL, $member );
|
||||
throw new Exception( Member::loggedIn()->language()->addToStack( 'login_err_no_account', FALSE, array() ), Exception::NO_ACCOUNT, NULL, $member );
|
||||
}
|
||||
|
||||
/* Get member(s) */
|
||||
$where = array();
|
||||
$params = array();
|
||||
if ( $this->authType() & \IPS\Login::AUTH_TYPE_USERNAME )
|
||||
{
|
||||
$where[] = 'name=?';
|
||||
$params[] = $usernameOrEmail;
|
||||
|
||||
if ( $usernameOrEmail !== \IPS\Request::legacyEscape( $usernameOrEmail ) )
|
||||
{
|
||||
$where[] = 'name=?';
|
||||
$params[] = \IPS\Request::legacyEscape( $usernameOrEmail );
|
||||
}
|
||||
}
|
||||
if ( $this->authType() & \IPS\Login::AUTH_TYPE_EMAIL )
|
||||
$where[] = 'email=?';
|
||||
$params[] = $usernameOrEmail;
|
||||
|
||||
if ( $usernameOrEmail !== Request::legacyEscape( $usernameOrEmail ) )
|
||||
{
|
||||
$where[] = 'email=?';
|
||||
$params[] = $usernameOrEmail;
|
||||
|
||||
if ( $usernameOrEmail !== \IPS\Request::legacyEscape( $usernameOrEmail ) )
|
||||
{
|
||||
$where[] = 'email=?';
|
||||
$params[] = \IPS\Request::legacyEscape( $usernameOrEmail );
|
||||
}
|
||||
$params[] = Request::legacyEscape( $usernameOrEmail );
|
||||
}
|
||||
$members = new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'core_members', array_merge( array( implode( ' OR ', $where ) ), $params ) ), 'IPS\Member' );
|
||||
|
||||
$members = new ActiveRecordIterator( Db::i()->select( '*', 'core_members', array_merge( array( implode( ' OR ', $where ) ), $params ) ), 'IPS\Member' );
|
||||
|
||||
/* If we didn't match any, throw an exception */
|
||||
if ( !\count( $members ) )
|
||||
if ( !count( $members ) )
|
||||
{
|
||||
$member = NULL;
|
||||
|
||||
if ( $this->authType() & \IPS\Login::AUTH_TYPE_EMAIL )
|
||||
{
|
||||
$member = new \IPS\Member;
|
||||
$member->email = $usernameOrEmail;
|
||||
}
|
||||
$member = new Member;
|
||||
$member->email = $usernameOrEmail;
|
||||
|
||||
throw new \IPS\Login\Exception( \IPS\Member::loggedIn()->language()->addToStack( 'login_err_no_account', FALSE, array( 'pluralize' => array( $this->authType() ) ) ), \IPS\Login\Exception::NO_ACCOUNT, NULL, $member );
|
||||
throw new Exception( Member::loggedIn()->language()->addToStack( 'login_err_no_account', FALSE, array() ), Exception::NO_ACCOUNT, NULL, $member );
|
||||
}
|
||||
|
||||
/* Table switcher for new converters */
|
||||
@@ -133,12 +120,12 @@ class _Login extends \IPS\Login\Handler
|
||||
/* Converter tables no longer exist */
|
||||
if( $e->getCode() == 1146 )
|
||||
{
|
||||
throw new \IPS\Login\Exception( 'generic_error', \IPS\Login\Exception::INTERNAL_ERROR );
|
||||
throw new Exception( 'generic_error', Exception::INTERNAL_ERROR );
|
||||
}
|
||||
}
|
||||
|
||||
/* Still here? Throw a password incorrect exception */
|
||||
throw new \IPS\Login\Exception( \IPS\Member::loggedIn()->language()->addToStack( 'login_err_bad_password', FALSE, array( 'pluralize' => array( $this->authType() ) ) ), \IPS\Login\Exception::BAD_PASSWORD, NULL, isset( $member ) ? $member : NULL );
|
||||
throw new Exception( Member::loggedIn()->language()->addToStack( 'login_err_bad_password', FALSE, array() ), Exception::BAD_PASSWORD, NULL, isset( $member ) ? $member : NULL );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,15 +136,15 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Authenticate
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
|
||||
* @param Member $member The member
|
||||
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
|
||||
* @return bool
|
||||
*/
|
||||
public function authenticatePasswordForMember( \IPS\Member $member, $password )
|
||||
public function authenticatePasswordForMember( Member $member, object $password ): bool
|
||||
{
|
||||
if( static::$_apps === NULL )
|
||||
{
|
||||
static::$_apps = new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'convert_apps', array( 'login=?', 1 ) ), 'IPS\convert\App' );
|
||||
static::$_apps = new ActiveRecordIterator( Db::i()->select( '*', 'convert_apps', array( 'login=?', 1 ) ), 'IPS\convert\App' );
|
||||
}
|
||||
|
||||
foreach( static::$_apps as $app )
|
||||
@@ -171,7 +158,7 @@ class _Login extends \IPS\Login\Handler
|
||||
$application = $app->getSource( FALSE, FALSE );
|
||||
}
|
||||
/* Converter application class no longer exists, but we want to continue since we may have a login method here */
|
||||
catch( \InvalidArgumentException $e )
|
||||
catch( InvalidArgumentException $e )
|
||||
{
|
||||
$application = NULL;
|
||||
}
|
||||
@@ -206,7 +193,7 @@ class _Login extends \IPS\Login\Handler
|
||||
$member->conv_password_extra = NULL;
|
||||
$member->setLocalPassword( $password );
|
||||
$member->save();
|
||||
$member->memberSync( 'onPassChange', array( $password ) );
|
||||
Event::fire( 'onPassChange', $member, array( $password ) );
|
||||
|
||||
return $member;
|
||||
}
|
||||
@@ -218,10 +205,10 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Can this handler process a login for a member?
|
||||
*
|
||||
* @param \IPS\Member $member Member
|
||||
* @param Member $member Member
|
||||
* @return bool
|
||||
*/
|
||||
public function canProcess( \IPS\Member $member )
|
||||
public function canProcess( Member $member ): bool
|
||||
{
|
||||
return (bool) $member->conv_password;
|
||||
}
|
||||
@@ -229,10 +216,10 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Can this handler process a password change for a member?
|
||||
*
|
||||
* @param \IPS\Member $member Member
|
||||
* @param Member $member Member
|
||||
* @return bool
|
||||
*/
|
||||
public function canChangePassword( \IPS\Member $member )
|
||||
public function canChangePassword( Member $member ): bool
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -240,11 +227,11 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Change Password
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param object $newPassword New Password wrapped in an object that can be cast to a string so it doesn't show in any logs
|
||||
* @return void
|
||||
*/
|
||||
public function changePassword( \IPS\Member $member, $newPassword )
|
||||
public function changePassword( Member $member, $newPassword )
|
||||
{
|
||||
$member->setLocalPassword( $newPassword );
|
||||
$member->save();
|
||||
@@ -253,10 +240,10 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Show in Account Settings?
|
||||
*
|
||||
* @param \IPS\Member|NULL $member The member, or NULL for if it should show generally
|
||||
* @param Member|NULL $member The member, or NULL for if it should show generally
|
||||
* @return bool
|
||||
*/
|
||||
public function showInUcp( \IPS\Member $member = NULL )
|
||||
public function showInUcp( Member $member = NULL ): bool
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -264,13 +251,13 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* AEF
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function aef( $member, $password )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, md5( $member->misc . $password ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, md5( $member->misc . $password ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -283,7 +270,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* BBPress Standalone
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -295,7 +282,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* BBPress
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -305,15 +292,15 @@ class _Login extends \IPS\Login\Handler
|
||||
$password = html_entity_decode( $password );
|
||||
$hash = $member->conv_password;
|
||||
|
||||
if ( \strlen( $hash ) == 32 )
|
||||
if ( strlen( $hash ) == 32 )
|
||||
{
|
||||
$success = ( bool ) ( \IPS\Login::compareHashes( $member->conv_password, md5( $password ) ) );
|
||||
$success = ( bool ) ( LoginClass::compareHashes( $member->conv_password, md5( $password ) ) );
|
||||
}
|
||||
|
||||
// Nope, not md5.
|
||||
if ( ! $success )
|
||||
{
|
||||
$hashLibrary = new \IPS\convert\Login\HashCryptPrivate;
|
||||
$hashLibrary = new HashCryptPrivate;
|
||||
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
||||
$crypt = $hashLibrary->hashCryptPrivate( $password, $hash, $itoa64, 'P' );
|
||||
if ( $crypt[ 0 ] == '*' )
|
||||
@@ -332,7 +319,7 @@ class _Login extends \IPS\Login\Handler
|
||||
{
|
||||
// No - check against WordPress.
|
||||
// Note to self - perhaps push this to main bbpress method.
|
||||
$success = \IPS\convert\Software\Core\Wordpress::login( $member, $password );
|
||||
$success = Wordpress::login( $member, $password );
|
||||
}
|
||||
|
||||
return $success;
|
||||
@@ -341,7 +328,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* BBPress 2.3
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -353,7 +340,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Community Server
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -361,7 +348,7 @@ class _Login extends \IPS\Login\Handler
|
||||
{
|
||||
$encodedHashPass = base64_encode( pack( "H*", sha1( base64_decode( $member->misc ) . $password ) ) );
|
||||
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, $encodedHashPass ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, $encodedHashPass ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -374,7 +361,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* CSAuth
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -410,13 +397,13 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Discuz
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function discuz( $member, $password )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, md5( md5( $password ) . $member->misc ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, md5( md5( $password ) . $member->misc ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -426,7 +413,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* FudForum
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -436,13 +423,13 @@ class _Login extends \IPS\Login\Handler
|
||||
$single_md5_pass = md5( $password );
|
||||
$hash = $member->conv_password;
|
||||
|
||||
if ( \strlen( $hash ) == 40 )
|
||||
if ( strlen( $hash ) == 40 )
|
||||
{
|
||||
$success = ( \IPS\Login::compareHashes( $member->conv_password, sha1( $member->misc . sha1( $password ) ) ) ) ? TRUE : FALSE;
|
||||
$success = ( LoginClass::compareHashes( $member->conv_password, sha1( $member->misc . sha1( $password ) ) ) ) ? TRUE : FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
$success = ( \IPS\Login::compareHashes( $member->conv_password, $single_md5_pass ) ) ? TRUE : FALSE;
|
||||
$success = ( LoginClass::compareHashes( $member->conv_password, $single_md5_pass ) ) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
return $success;
|
||||
@@ -451,7 +438,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* FusionBB
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -460,19 +447,19 @@ class _Login extends \IPS\Login\Handler
|
||||
/* FusionBB Has multiple methods that can be used to check a hash, so we need to cycle through them */
|
||||
|
||||
/* md5( md5( salt ) . md5( pass ) ) */
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, md5( md5( $member->misc ) . md5( $password ) ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, md5( md5( $member->misc ) . md5( $password ) ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* md5( md5( salt ) . pass ) */
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, md5( md5( $member->misc ) . $password ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, md5( md5( $member->misc ) . $password ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* md5( pass ) */
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, md5( $password ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, md5( $password ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -483,17 +470,17 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Ikonboard
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function ikonboard( $member, $password )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, crypt( $password, $member->misc ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, crypt( $password, $member->misc ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
else if ( \IPS\Login::compareHashes( $member->conv_password, md5( $password . mb_strtolower( $member->conv_password_extra ) ) ) )
|
||||
else if ( LoginClass::compareHashes( $member->conv_password, md5( $password . mb_strtolower( $member->conv_password_extra ) ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -506,7 +493,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Kunena
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -515,79 +502,79 @@ class _Login extends \IPS\Login\Handler
|
||||
// Kunena authenticates using internal Joomla functions.
|
||||
// This is required, however, if the member only converts from
|
||||
// Kunena and not Joomla + Kunena.
|
||||
return \IPS\convert\Software\Core\Joomla::login( $member, $password );
|
||||
return Joomla::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* PHP Legacy (2.x)
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function phpbblegacy( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Phpbb::login( $member, $password );
|
||||
return Phpbb::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* Vbulletin 5.1
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function vb51connect( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Vbulletin5::login( $member, $password );
|
||||
return Vbulletin5::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* Vbulletin 5
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function vb5connect( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Vbulletin5::login( $member, $password );
|
||||
return Vbulletin5::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* Vbulletin 3.8
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function vbulletinlegacy( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Vbulletin::login( $member, $password );
|
||||
return Vbulletin::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* Vbulletin 3.6
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function vbulletinlegacy36( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Vbulletin::login( $member, $password );
|
||||
return Vbulletin::login( $member, $password );
|
||||
}
|
||||
|
||||
/**
|
||||
* SMF Legacy
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function smflegacy( $member, $password )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, sha1( mb_strtolower( $member->name ) . $password ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, sha1( mb_strtolower( $member->name ) . $password ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -600,7 +587,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Telligent
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -612,7 +599,7 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* WoltLab 4.x
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -627,7 +614,7 @@ class _Login extends \IPS\Login\Handler
|
||||
$testHash = crypt( crypt( $password, $salt ), $salt );
|
||||
}
|
||||
|
||||
if ( $testHash AND \IPS\Login::compareHashes( $member->conv_password, $testHash ) )
|
||||
if ( $testHash AND LoginClass::compareHashes( $member->conv_password, $testHash ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -642,13 +629,13 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* WoltLab 3.x
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function woltlablegacy( $member, $password )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $member->conv_password, sha1( $member->misc . sha1( $member->misc . sha1( $password ) ) ) ) )
|
||||
if ( LoginClass::compareHashes( $member->conv_password, sha1( $member->misc . sha1( $member->misc . sha1( $password ) ) ) ) )
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
@@ -661,19 +648,19 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* PHP Fusion
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function phpfusion( $member, $password )
|
||||
{
|
||||
return ( bool ) \IPS\Login::compareHashes( $member->conv_password, md5( md5( $password ) ) );
|
||||
return ( bool ) LoginClass::compareHashes( $member->conv_password, md5( md5( $password ) ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* fluxBB
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
@@ -682,20 +669,20 @@ class _Login extends \IPS\Login\Handler
|
||||
$success = false;
|
||||
$hash = $member->conv_password;
|
||||
|
||||
if ( \strlen( $hash ) == 40 )
|
||||
if ( strlen( $hash ) == 40 )
|
||||
{
|
||||
if ( \IPS\Login::compareHashes( $hash, sha1( $member->misc . sha1( $password ) ) ) )
|
||||
if ( LoginClass::compareHashes( $hash, sha1( $member->misc . sha1( $password ) ) ) )
|
||||
{
|
||||
$success = TRUE;
|
||||
}
|
||||
elseif ( \IPS\Login::compareHashes( $hash, sha1( $password ) ) )
|
||||
elseif ( LoginClass::compareHashes( $hash, sha1( $password ) ) )
|
||||
{
|
||||
$success = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$success = ( \IPS\Login::compareHashes( $hash, md5( $password ) ) ) ? TRUE : FALSE;
|
||||
$success = ( LoginClass::compareHashes( $hash, md5( $password ) ) ) ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
return $success;
|
||||
@@ -704,12 +691,12 @@ class _Login extends \IPS\Login\Handler
|
||||
/**
|
||||
* Simplepress Forum
|
||||
*
|
||||
* @param \IPS\Member $member The member
|
||||
* @param Member $member The member
|
||||
* @param string $password Password from form
|
||||
* @return bool
|
||||
*/
|
||||
protected function simplepress( $member, $password )
|
||||
{
|
||||
return \IPS\convert\Software\Core\Wordpress::login( $member, $password );
|
||||
return Wordpress::login( $member, $password );
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user