Current Path : /storage/v11800/leadideascloud/public_html/wp-content/plugins/leadin/public/auth/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/leadideascloud/public_html/wp-content/plugins/leadin/public/auth/class-oauth.php |
<?php
namespace Leadin\auth;
use Leadin\data\User;
use Leadin\data\Portal_Options;
use Leadin\auth\OAuthCrypto;
use Leadin\admin\Routing;
use Leadin\admin\MenuConstants;
/**
* Class managing OAuth2 authorization
*/
class OAuth {
/**
* Authorizes the plugin with given oauth credentials by storing them in the options DB.
*
* @param string $refresh_token OAuth refresh token to store.
*/
public static function authorize( $refresh_token ) {
$encrypted_refresh_token = OAuthCrypto::encrypt( $refresh_token );
Portal_Options::set_refresh_token( $encrypted_refresh_token );
Portal_Options::set_last_authorize_time();
}
/**
* Deauthorizes the plugin by deleting OAuth credentials from the options DB.
*/
public static function deauthorize() {
Portal_Options::delete_refresh_token();
Portal_Options::set_last_deauthorize_time();
}
/**
* Attempts to get and decrypt the refresh token.
* Records an error if decryption fails or if the token is invalid.
*
* Note: WordPress sites that are missing keys and salts will have the refresh token stored in plaintext.
* The decrypt function will return the plaintext token in this case.
*
* @return string The result of decrypt function, or an empty string on failure.
*/
public static function get_refresh_token() {
$encrypted_refresh_token = Portal_Options::get_refresh_token();
if ( ! self::is_valid_value( $encrypted_refresh_token ) ) {
return '';
}
$refresh_token = OAuthCrypto::decrypt( $encrypted_refresh_token );
if ( ! self::is_valid_value( $refresh_token ) ) {
return false;
}
return $refresh_token;
}
/**
* Checks if the provided value is valid (not false, null, or empty).
*
* @param mixed $value The value to check.
* @return bool Whether the value is valid.
*/
private static function is_valid_value( $value ) {
return false !== $value && null !== $value && '' !== $value;
}
}