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' ) );
 | 
						|
	}
 | 
						|
}
 |