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