Skip to content

Commit

Permalink
fix #1418
Browse files Browse the repository at this point in the history
  • Loading branch information
inc2734 committed Jun 26, 2024
1 parent 561b33a commit f23c904
Showing 1 changed file with 44 additions and 12 deletions.
56 changes: 44 additions & 12 deletions Framework/Controller/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* @package snow-monkey
* @author inc2734
* @license GPL-2.0+
* @version 25.4.9
* @version 25.4.10
*/

namespace Framework\Controller;
Expand Down Expand Up @@ -34,6 +34,14 @@ class Manager {
'xserver-register-key' => null,
);

/**
* If a value is stored in License key and Xserver register key,
* use this value instead, since it is secret.
*
* @var string
*/
const SAVED_VALUE = 'THIS_IS_DUMMY_SAVED_VALUE_BECAUSE_THIS_VALUE_IS_SECRET';

/**
* constructor
*/
Expand Down Expand Up @@ -127,15 +135,23 @@ function ( $option ) {
return array();
}

if ( isset( $option['license-key'] ) && static::get_option( 'license-key' ) !== $option['license-key'] ) {
$posted_license_key = isset( $option['license-key'] ) ? $option['license-key'] : false;
$is_license_key_through = isset( $posted_license_key ) && static::SAVED_VALUE === $posted_license_key;
$option['license-key'] = $is_license_key_through ? static::get_option( 'license-key' ) : $posted_license_key;

if ( static::get_option( 'license-key' ) !== $option['license-key'] ) {
delete_transient( 'snow-monkey-license-status-' . static::get_option( 'license-key' ) );
}

$posted_xserver_register_key = isset( $option['xserver-register-key'] ) ? $option['xserver-register-key'] : false;
$is_xserver_register_through = isset( $posted_xserver_register_key ) && static::SAVED_VALUE === $posted_xserver_register_key;
$option['xserver-register-key'] = $is_xserver_register_through ? static::get_option( 'xserver-register-key' ) : $posted_xserver_register_key;

// XSERVER register key is not validated if a license key is entered.
if ( isset( $option['xserver-register-key'] ) && static::get_option( 'xserver-register-key' ) !== $option['xserver-register-key'] ) {
if ( static::get_option( 'xserver-register-key' ) !== $option['xserver-register-key'] ) {
delete_transient( 'snow-monkey-xserver-register-status-' . static::get_option( 'xserver-register-key' ) );

if ( ! empty( $option['license-key'] ) ) {
if ( $option['license-key'] ) {
$option['xserver-register-key'] = '';
}
}
Expand Down Expand Up @@ -173,11 +189,11 @@ function () {
<div style="display: flex; align-items: center; gap: .5rem">
<div style="flex: 1 1 auto">
<input
type="text"
type="password"
id="license-key"
class="widefat"
name="<?php echo esc_attr( self::SETTINGS_NAME ); ?>[license-key]"
value="<?php echo esc_attr( static::get_option( 'license-key' ) ); ?>"
value="<?php echo esc_attr( static::get_option( 'license-key' ) ? static::SAVED_VALUE : '' ); ?>"
>
</div>
<div style="flex: 0 0 auto">
Expand Down Expand Up @@ -215,11 +231,11 @@ function () {
<div style="display: flex; align-items: center; gap: .5rem">
<div style="flex: 1 1 auto">
<input
type="text"
type="password"
id="xserver-register-key"
class="widefat"
name="<?php echo esc_attr( self::SETTINGS_NAME ); ?>[xserver-register-key]"
value="<?php echo esc_attr( static::get_option( 'xserver-register-key' ) ); ?>"
value="<?php echo esc_attr( static::get_option( 'xserver-register-key' ) ? static::SAVED_VALUE : '' ); ?>"
>
</div>
<div style="flex: 0 0 auto">
Expand All @@ -241,9 +257,13 @@ class="widefat"
* Get license status.
*
* @param string $license_key The license key.
* @return boolean
* @return mixed false|'true'|'false'
*/
public static function get_license_status( $license_key ) {
if ( ! $license_key ) {
return false;
}

$transient_name = 'snow-monkey-license-status-' . $license_key;
$transient = get_transient( $transient_name );
if ( false !== $transient ) {
Expand All @@ -259,11 +279,15 @@ public static function get_license_status( $license_key ) {
* Validate checker.
*
* @param string $license_key The license key.
* @return boolean
* @return mixed false|'true'
*/
protected static function _request_license_validate( $license_key ) {
global $wp_version;

if ( ! $license_key ) {
return false;
}

$response = wp_remote_get(
sprintf(
'https://snow-monkey.2inc.org/wp-json/snow-monkey-license-manager/v1/validate/%1$s?repository=snow-monkey',
Expand Down Expand Up @@ -293,9 +317,13 @@ protected static function _request_license_validate( $license_key ) {
* Get Xserver register status.
*
* @param string $xserver_register_key The license key.
* @return boolean
* @return mixed false|'true'|'false'
*/
public static function get_xserver_register_status( $xserver_register_key ) {
if ( ! $xserver_register_key ) {
return false;
}

$transient_name = 'snow-monkey-xserver-register-status-' . $xserver_register_key;
$transient = get_transient( $transient_name );
if ( false !== $transient ) {
Expand All @@ -311,11 +339,15 @@ public static function get_xserver_register_status( $xserver_register_key ) {
* Validate checker.
*
* @param string $xserver_register_key The XSERVER register key.
* @return boolean
* @return mixed false|'true'
*/
protected static function _request_license_validate_xserver( $xserver_register_key ) {
global $wp_version;

if ( ! $xserver_register_key ) {
return false;
}

$response = wp_remote_get(
sprintf(
'https://snow-monkey.2inc.org/wp-json/snow-monkey-license-manager/v1/validate-xserver/%1$s?repository=snow-monkey',
Expand Down

0 comments on commit f23c904

Please sign in to comment.