56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* A compatibility layer for some of the most popular plugins.
|
|
*
|
|
* @package Two_Factor
|
|
*/
|
|
|
|
/**
|
|
* A compatibility layer for some of the most popular plugins.
|
|
*
|
|
* Should be used with care because ideally we wouldn't need
|
|
* any integration specific code for this plugin. Everything should
|
|
* be handled through clever use of hooks and best practices.
|
|
*/
|
|
class Two_Factor_Compat {
|
|
/**
|
|
* Initialize all the custom hooks as necessary.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function init() {
|
|
/**
|
|
* Jetpack
|
|
*
|
|
* @see https://wordpress.org/plugins/jetpack/
|
|
*/
|
|
add_filter( 'two_factor_rememberme', array( $this, 'jetpack_rememberme' ) );
|
|
}
|
|
|
|
/**
|
|
* Jetpack single sign-on wants long-lived sessions for users.
|
|
*
|
|
* @param boolean $rememberme Current state of the "remember me" toggle.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function jetpack_rememberme( $rememberme ) {
|
|
$action = filter_input( INPUT_GET, 'action', FILTER_CALLBACK, array( 'options' => 'sanitize_key' ) );
|
|
|
|
if ( 'jetpack-sso' === $action && $this->jetpack_is_sso_active() ) {
|
|
return true;
|
|
}
|
|
|
|
return $rememberme;
|
|
}
|
|
|
|
/**
|
|
* Helper to detect the presence of the active SSO module.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public function jetpack_is_sso_active() {
|
|
return ( method_exists( 'Jetpack', 'is_module_active' ) && Jetpack::is_module_active( 'sso' ) );
|
|
}
|
|
}
|