Version 4.3.0

This commit is contained in:
Neo committed 2025-12-19 05:47:12 -08:00
1 parent 96997ddd8e
commit fe1acf984a
1349 files changed
+116159 -67711

No files matched your search

+20 -8
View File
@@ -239,7 +239,7 @@ abstract class _MFAHandler
}
/* No, show it */
return \IPS\Theme::i()->getTemplate( 'login', 'core', 'global' )->mfaAuthenticate( $handler->authenticationScreen( $member ), $url );
return \IPS\Theme::i()->getTemplate( 'login', 'core', 'global' )->mfaAuthenticate( $handler->authenticationScreen( $member, $url ), $url );
}
/**
@@ -260,8 +260,10 @@ abstract class _MFAHandler
$mfaDetails['_lockouttime'] = time();
$member->mfa_details = $mfaDetails;
$member->save();
$member->logHistory( 'core', 'login', array( 'type' => 'mfalock', 'count' => $member->failed_mfa_attempts, 'unlockTime' => \IPS\DateTime::create()->add( new \DateInterval( 'PT' . \IPS\Settings::i()->mfa_lockout_time . 'M' ) )->getTimestamp() ) );
}
$lockEndTime = \IPS\DateTime::ts( $mfaDetails['_lockouttime'] )->add( new \DateInterval( 'PT' . \IPS\Settings::i()->mfa_lockout_time . 'M' ) );
if ( $lockEndTime->getTimestamp() < time() )
{
@@ -277,6 +279,10 @@ abstract class _MFAHandler
}
else
{
if ( $member->failed_mfa_attempts == \IPS\Settings::i()->security_questions_tries )
{
$member->logHistory( 'core', 'login', array( 'type' => 'mfalock', 'count' => $member->failed_mfa_attempts ) );
}
return \IPS\Theme::i()->getTemplate( 'login', 'core', 'global' )->mfaLockout();
}
}
@@ -310,11 +316,12 @@ abstract class _MFAHandler
/**
* Show a setup screen
*
* @param \IPS\Member $member The member
* @param \IPS\Member $member The member
* @param bool $showingMultipleHandlers Set to TRUE if multiple options are being displayed
* @param \IPS\Http\Url $url URL for page
* @return string
*/
abstract public function configurationScreen( \IPS\Member $member, $showingMultipleHandlers = FALSE );
abstract public function configurationScreen( \IPS\Member $member, $showingMultipleHandlers=FALSE, \IPS\Http\Url $url );
/**
* Submit configuration screen. Return TRUE if was accepted
@@ -329,10 +336,11 @@ abstract class _MFAHandler
/**
* Get the form for a member to authenticate
*
* @param \IPS\Member $member The member
* @param \IPS\Member $member The member
* @param \IPS\Http\Url $url URL for page
* @return string
*/
abstract public function authenticationScreen( \IPS\Member $member );
abstract public function authenticationScreen( \IPS\Member $member, \IPS\Http\Url $url );
/**
* Submit authentication screen. Return TRUE if was accepted
@@ -368,7 +376,11 @@ abstract class _MFAHandler
*/
public function acpConfiguration( \IPS\Member $member )
{
return array( new \IPS\Helpers\Form\YesNo( "mfa_{$this->key}_title", $this->memberHasConfiguredHandler( $member ), FALSE, array( 'disabled' => !$this->memberHasConfiguredHandler( $member ) ), NULL, NULL, NULL, "mfa_{$this->key}_title" ) );
if ( $this->memberHasConfiguredHandler( $member ) )
{
return array( new \IPS\Helpers\Form\YesNo( "mfa_{$this->key}_title", $this->memberHasConfiguredHandler( $member ), FALSE, array(), NULL, NULL, NULL, "mfa_{$this->key}_title" ) );
}
return array();
}
/**
@@ -382,7 +394,7 @@ abstract class _MFAHandler
{
if ( isset( $values["mfa_{$this->key}_title"] ) and !$values["mfa_{$this->key}_title"] )
{
if ( isset( $member->mfa_details[ $this->key ] ) )
if ( isset( $member->mfa_details[ $this->key ] ) and $this->memberHasConfiguredHandler( $member ) )
{
$this->disableHandlerForMember( $member );
}