Version 5.0.13

This commit is contained in:
Neo committed 2025-12-19 19:04:57 -08:00
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 ) );
}