Version 5.0.13
This commit is contained in:
1 parent
b89858b2ff
commit
5efe744c5f
1407 files changed
+69690
-30177
No files matched your search
@@ -141,7 +141,6 @@ class register extends Controller
|
||||
|
||||
/* Set Session Location */
|
||||
Session::i()->setLocation( Url::internal( 'app=core&module=system&controller=register', NULL, 'register' ), array(), 'loc_registering' );
|
||||
Output::i()->allowDefaultWidgets = FALSE;
|
||||
|
||||
/* What's the "log in" link? */
|
||||
$loginUrl = Url::internal( 'app=core&module=system&controller=login', NULL, 'login' );
|
||||
@@ -561,7 +560,7 @@ class register extends Controller
|
||||
$captcha = new Captcha;
|
||||
|
||||
/* If PBR request is from the last 5 minutes, don't ask for a captcha again */
|
||||
if( $postBeforeRegister !== NULL AND DateTime::ts( $postBeforeRegister['timestamp'] )->add( new \DateInterval('PT5M' ) )->getTimestamp() > time() )
|
||||
if( $postBeforeRegister !== NULL AND DateTime::ts( $postBeforeRegister['timestamp'] )->add( new DateInterval('PT5M' ) )->getTimestamp() > time() )
|
||||
{
|
||||
$captcha = '';
|
||||
}
|
||||
@@ -901,13 +900,19 @@ class register extends Controller
|
||||
/* Load record */
|
||||
try
|
||||
{
|
||||
$record = Db::i()->select( '*', 'core_validating', array( 'vid=? AND member_id=? AND ( new_reg=? or email_chg=? )', Request::i()->vid, Request::i()->mid, 1, 1 ) )->first();
|
||||
$record = Db::i()->select( '*', 'core_validating', array( 'vid=? AND member_id=? AND ( new_reg=? or email_chg=? or login_link=? )', Request::i()->vid, Request::i()->mid, 1, 1, 1 ) )->first();
|
||||
}
|
||||
catch ( UnderflowException $e )
|
||||
{
|
||||
$this->_performRedirect( NULL, FALSE, 'validate_no_record' );
|
||||
}
|
||||
|
||||
/* If this is a login link, make sure it's recent */
|
||||
if( $record['login_link'] AND $record['email_sent'] < ( new DateTime )->sub( new DateInterval( 'PT10M' ) )->getTimestamp() )
|
||||
{
|
||||
$this->_performRedirect( NULL, FALSE, 'validate_no_record' );
|
||||
}
|
||||
|
||||
/* Check security key is valid. */
|
||||
if( !Login::compareHashes( Encrypt::fromTag( $record['security_key'] )->decrypt(), Request::i()->security_key ) )
|
||||
{
|
||||
@@ -948,7 +953,16 @@ class register extends Controller
|
||||
{
|
||||
$member->emailValidationConfirmed( $record );
|
||||
}
|
||||
else
|
||||
elseif( $record['login_link'] )
|
||||
{
|
||||
$details = json_decode( $record['extra'], TRUE );
|
||||
$member = Member::load( $details['member'] );
|
||||
/* And then handler to link with */
|
||||
$handler = Handler::load( $details['handler'] );
|
||||
$handler->completeLink( $member, $details['details'] ?? null );
|
||||
Db::i()->delete( 'core_validating', array( 'member_id=? AND login_link=?', $member->member_id, 1 ) );
|
||||
}
|
||||
elseif( $record['email_chg'] )
|
||||
{
|
||||
$oldEmail = $member->email;
|
||||
$member->changeEmail( $record['new_email'] );
|
||||
@@ -957,6 +971,9 @@ class register extends Controller
|
||||
|
||||
Db::i()->delete( 'core_validating', array( 'member_id=?', $member->member_id ) );
|
||||
|
||||
/* Invalidate sessions except this one */
|
||||
$member->invalidateSessionsAndLogins( Session::i()->id );
|
||||
|
||||
/* Send a confirmation email */
|
||||
Email::buildFromTemplate( 'core', 'email_address_changed', array( $member, $oldEmail ), Email::TYPE_TRANSACTIONAL )->send( $oldEmail, array(), array(), NULL, NULL, array( 'Reply-To' => Settings::i()->email_in ) );
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user