Plugin Directory

Changeset 3437645


Ignore:
Timestamp:
01/12/2026 11:26:34 AM (3 months ago)
Author:
heymehedi
Message:

Update to version 1.14 from GitHub

Location:
login-me-now
Files:
2 added
42 edited
1 copied

Legend:

Unmodified
Added
Removed
  • login-me-now/tags/1.14/app/Admin/Notices/BlackFridayNotice.php

    r3396479 r3437645  
    44
    55class BlackFridayNotice {
    6         private const USER_META_KEY = 'login_me_now_bfcm_2025_notice_dismissed';
     6        private const USER_META_KEY = 'login_me_now_new_year_2025_notice_dismissed';
    77
    88        public function __construct() {
     
    6161                );
    6262
    63                 $cta_url  = 'https://loginmenow.com/pricing/?utm_source=plugin&utm_medium=dashboard&utm_campaign=bfcm2025';
    64                 $headline = __( '🔥 Black Friday Lifetime Deal – Ends Soon!', 'login-me-now' );
    65                 $body     = __( 'Get Login Me Now Pro for Life – no renewals, all features, one-time price. Social Login, Magic Links, OTP Login, User Switching & more.', 'login-me-now' );
     63                $cta_url  = 'https://loginmenow.com/pricing/?utm_source=plugin&utm_medium=dashboard&utm_campaign=newyear2025';
     64                $headline = __( '✨ New Year Lifetime Deal – Starts Now!', 'login-me-now' );
     65                $body     = __( 'Kick off the New Year with Login Me Now Pro for Life – no renewals, all features, one-time price. Social Login, Magic Links, OTP Login, User Switching & more.', 'login-me-now' );
    6666                $button   = __( '🎁 Claim 50% OFF LTD Now', 'login-me-now' );
    67                 $deadline = __( '🎁 Offer ends Cyber Monday (Dec 2)', 'login-me-now' );
     67                $deadline = __( '🎁 Limited-time New Year offer', 'login-me-now' );
    6868
    6969                printf(
  • login-me-now/tags/1.14/app/Logins/GoogleLogin/Controller.php

    r3147204 r3437645  
    88namespace LoginMeNow\Logins\GoogleLogin;
    99
     10use Firebase\JWT\JWT;
    1011use Google_Client;
    1112use LoginMeNow\Common\Singleton;
     
    1516class Controller {
    1617    use Singleton;
     18
     19    private const JWT_LEEWAY = 60;
    1720
    1821    public function listen(): void {
     
    5255        }
    5356
    54         $data = $client->verifyIdToken( $id_token );
     57        JWT::$leeway = self::JWT_LEEWAY;
     58        $data        = $client->verifyIdToken( $id_token );
    5559        if ( ! $data || is_wp_error( $data ) ) {
    5660            error_log( 'Login Me Now ( ! $data || is_wp_error( $data ) )- ' . print_r( $data, true ) );
     
    106110        $client_id = SettingsRepository::init()->get( 'google_client_id' );
    107111        $client    = new Google_Client( ['client_id' => esc_html( $client_id )] );
    108         $data      = $client->verifyIdToken( $id_token );
     112        JWT::$leeway = self::JWT_LEEWAY;
     113        $data        = $client->verifyIdToken( $id_token );
    109114
    110115        if ( ! $data || is_wp_error( $data ) ) {
  • login-me-now/tags/1.14/config.php

    r3417862 r3437645  
    22
    33return [
    4     'version'         => '1.13',
     4    'version'         => '1.14',
    55    'min_php'         => '7.4',
    66    'db_version'      => '1.0.0',
  • login-me-now/tags/1.14/login-me-now.php

    r3417862 r3437645  
    55 * Author: LoginMeNow.com
    66 * Author URI: https://loginmenow.com/
    7  * Version: 1.13
     7 * Version: 1.14
    88 * Tested up to: 6.9
    99 * Requires PHP: 7.4
  • login-me-now/tags/1.14/readme.txt

    r3417862 r3437645  
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.13
     7Stable tag: 1.14
    88License: GPLv3 or any later version
    99
     
    161161== Changelog ==
    162162
     163= 1.14 – Jan 12, 2026 =
     164* Add: JWT leeway for Google Login
     165* Fix: Redirect URL Issue
     166
    163167= 1.13 – Dec 12, 2025 =
    164168* Add WodPress Latest compatibility
  • login-me-now/tags/1.14/vendor/composer/installed.json

    r3417862 r3437645  
    640640        {
    641641            "name": "monolog/monolog",
    642             "version": "2.10.0",
    643             "version_normalized": "2.10.0.0",
     642            "version": "2.11.0",
     643            "version_normalized": "2.11.0.0",
    644644            "source": {
    645645                "type": "git",
    646646                "url": "https://github.com/Seldaek/monolog.git",
    647                 "reference": "5cf826f2991858b54d5c3809bee745560a1042a7"
    648             },
    649             "dist": {
    650                 "type": "zip",
    651                 "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5cf826f2991858b54d5c3809bee745560a1042a7",
    652                 "reference": "5cf826f2991858b54d5c3809bee745560a1042a7",
     647                "reference": "37308608e599f34a1a4845b16440047ec98a172a"
     648            },
     649            "dist": {
     650                "type": "zip",
     651                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/37308608e599f34a1a4845b16440047ec98a172a",
     652                "reference": "37308608e599f34a1a4845b16440047ec98a172a",
    653653                "shasum": ""
    654654            },
     
    668668                "guzzlehttp/guzzle": "^7.4",
    669669                "guzzlehttp/psr7": "^2.2",
    670                 "mongodb/mongodb": "^1.8",
     670                "mongodb/mongodb": "^1.8 || ^2.0",
    671671                "php-amqplib/php-amqplib": "~2.4 || ^3",
    672672                "phpspec/prophecy": "^1.15",
     
    696696                "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
    697697            },
    698             "time": "2024-11-12T12:43:37+00:00",
     698            "time": "2026-01-01T13:05:00+00:00",
    699699            "type": "library",
    700700            "extra": {
     
    729729            "support": {
    730730                "issues": "https://github.com/Seldaek/monolog/issues",
    731                 "source": "https://github.com/Seldaek/monolog/tree/2.10.0"
     731                "source": "https://github.com/Seldaek/monolog/tree/2.11.0"
    732732            },
    733733            "funding": [
     
    868868        {
    869869            "name": "phpseclib/phpseclib",
    870             "version": "3.0.47",
    871             "version_normalized": "3.0.47.0",
     870            "version": "3.0.48",
     871            "version_normalized": "3.0.48.0",
    872872            "source": {
    873873                "type": "git",
    874874                "url": "https://github.com/phpseclib/phpseclib.git",
    875                 "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d"
    876             },
    877             "dist": {
    878                 "type": "zip",
    879                 "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9d6ca36a6c2dd434765b1071b2644a1c683b385d",
    880                 "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d",
     875                "reference": "64065a5679c50acb886e82c07aa139b0f757bb89"
     876            },
     877            "dist": {
     878                "type": "zip",
     879                "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/64065a5679c50acb886e82c07aa139b0f757bb89",
     880                "reference": "64065a5679c50acb886e82c07aa139b0f757bb89",
    881881                "shasum": ""
    882882            },
     
    896896                "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
    897897            },
    898             "time": "2025-10-06T01:07:24+00:00",
     898            "time": "2025-12-15T11:51:42+00:00",
    899899            "type": "library",
    900900            "installation-source": "dist",
     
    961961            "support": {
    962962                "issues": "https://github.com/phpseclib/phpseclib/issues",
    963                 "source": "https://github.com/phpseclib/phpseclib/tree/3.0.47"
     963                "source": "https://github.com/phpseclib/phpseclib/tree/3.0.48"
    964964            },
    965965            "funding": [
  • login-me-now/tags/1.14/vendor/composer/installed.php

    r3417862 r3437645  
    22    'root' => array(
    33        'name' => 'pluginly/login-me-now',
    4         'pretty_version' => 'v1.13',
    5         'version' => '1.13.0.0',
    6         'reference' => '8632c40c4b3aa9317e95d606946e726898ea2e02',
     4        'pretty_version' => 'v1.14',
     5        'version' => '1.14.0.0',
     6        'reference' => '2237cca85fee4a665d02b21d045a24df8758e819',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    8484        ),
    8585        'monolog/monolog' => array(
    86             'pretty_version' => '2.10.0',
    87             'version' => '2.10.0.0',
    88             'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7',
     86            'pretty_version' => '2.11.0',
     87            'version' => '2.11.0.0',
     88            'reference' => '37308608e599f34a1a4845b16440047ec98a172a',
    8989            'type' => 'library',
    9090            'install_path' => __DIR__ . '/../monolog/monolog',
     
    111111        ),
    112112        'phpseclib/phpseclib' => array(
    113             'pretty_version' => '3.0.47',
    114             'version' => '3.0.47.0',
    115             'reference' => '9d6ca36a6c2dd434765b1071b2644a1c683b385d',
     113            'pretty_version' => '3.0.48',
     114            'version' => '3.0.48.0',
     115            'reference' => '64065a5679c50acb886e82c07aa139b0f757bb89',
    116116            'type' => 'library',
    117117            'install_path' => __DIR__ . '/../phpseclib/phpseclib',
     
    120120        ),
    121121        'pluginly/login-me-now' => array(
    122             'pretty_version' => 'v1.13',
    123             'version' => '1.13.0.0',
    124             'reference' => '8632c40c4b3aa9317e95d606946e726898ea2e02',
     122            'pretty_version' => 'v1.14',
     123            'version' => '1.14.0.0',
     124            'reference' => '2237cca85fee4a665d02b21d045a24df8758e819',
    125125            'type' => 'library',
    126126            'install_path' => __DIR__ . '/../../',
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/ErrorHandler.php

    r3045854 r3437645  
    169169            E_USER_WARNING      => LogLevel::WARNING,
    170170            E_USER_NOTICE       => LogLevel::NOTICE,
    171             E_STRICT            => LogLevel::NOTICE,
     171            2048                => LogLevel::NOTICE,  // E_STRICT
    172172            E_RECOVERABLE_ERROR => LogLevel::ERROR,
    173173            E_DEPRECATED        => LogLevel::NOTICE,
     
    293293            case E_USER_NOTICE:
    294294                return 'E_USER_NOTICE';
    295             case E_STRICT:
     295            case 2048:
    296296                return 'E_STRICT';
    297297            case E_RECOVERABLE_ERROR:
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php

    r2911753 r3437645  
    2727    /** @var int */
    2828    private $maxNestingLevel;
    29     /** @var bool */
    30     private $isLegacyMongoExt;
    3129
    3230    /**
     
    3836        $this->maxNestingLevel = max($maxNestingLevel, 0);
    3937        $this->exceptionTraceAsString = $exceptionTraceAsString;
    40 
    41         $this->isLegacyMongoExt = extension_loaded('mongodb') && version_compare((string) phpversion('mongodb'), '1.1.9', '<=');
    4238    }
    4339
     
    130126    protected function formatDate(\DateTimeInterface $value, int $nestingLevel): UTCDateTime
    131127    {
    132         if ($this->isLegacyMongoExt) {
    133             return $this->legacyGetMongoDbDateTime($value);
    134         }
    135 
    136         return $this->getMongoDbDateTime($value);
    137     }
    138 
    139     private function getMongoDbDateTime(\DateTimeInterface $value): UTCDateTime
    140     {
    141128        return new UTCDateTime((int) floor(((float) $value->format('U.u')) * 1000));
    142129    }
    143 
    144     /**
    145      * This is needed to support MongoDB Driver v1.19 and below
    146      *
    147      * See https://github.com/mongodb/mongo-php-driver/issues/426
    148      *
    149      * It can probably be removed in 2.1 or later once MongoDB's 1.2 is released and widely adopted
    150      */
    151     private function legacyGetMongoDbDateTime(\DateTimeInterface $value): UTCDateTime
    152     {
    153         $milliseconds = floor(((float) $value->format('U.u')) * 1000);
    154 
    155         $milliseconds = (PHP_INT_SIZE == 8) //64-bit OS?
    156             ? (int) $milliseconds
    157             : (string) $milliseconds;
    158 
    159         // @phpstan-ignore-next-line
    160         return new UTCDateTime($milliseconds);
    161     }
    162130}
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php

    r2911753 r3437645  
    5050                    $curlError = curl_error($ch);
    5151
    52                     if ($closeAfterDone) {
     52                    if (\PHP_VERSION_ID < 80000 && $closeAfterDone) {
    5353                        curl_close($ch);
    5454                    }
     
    6060            }
    6161
    62             if ($closeAfterDone) {
     62            if (\PHP_VERSION_ID < 80000 && $closeAfterDone) {
    6363                curl_close($ch);
    6464            }
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php

    r2911753 r3437645  
    1212namespace Monolog\Handler;
    1313
     14use MongoDB\Client;
     15use MongoDB\Collection;
    1416use MongoDB\Driver\BulkWrite;
    1517use MongoDB\Driver\Manager;
    16 use MongoDB\Client;
    17 use Monolog\Logger;
    1818use Monolog\Formatter\FormatterInterface;
    1919use Monolog\Formatter\MongoDBFormatter;
     20use Monolog\Logger;
    2021
    2122/**
     
    3435class MongoDBHandler extends AbstractProcessingHandler
    3536{
    36     /** @var \MongoDB\Collection */
     37    /** @var Collection */
    3738    private $collection;
    3839    /** @var Client|Manager */
    3940    private $manager;
    40     /** @var string */
    41     private $namespace;
     41    /** @var string|null */
     42    private $namespace = null;
    4243
    4344    /**
     
    5556
    5657        if ($mongodb instanceof Client) {
    57             $this->collection = $mongodb->selectCollection($database, $collection);
     58            $this->collection = method_exists($mongodb, 'getCollection') ? $mongodb->getCollection($database, $collection) : $mongodb->selectCollection($database, $collection);
    5859        } else {
    5960            $this->manager = $mongodb;
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php

    r3199190 r3437645  
    168168                // are cleaning up/rotating at the same time
    169169                set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline): bool {
    170                     return false;
     170                    return true;
    171171                });
    172172                unlink($file);
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php

    r3110130 r3437645  
    234234    protected function sendCurl(string $message): void
    235235    {
     236        if ('' === trim($message)) {
     237            return;
     238        }
     239       
    236240        $ch = curl_init();
    237241        $url = self::BOT_API . $this->apiKey . '/SendMessage';
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php

    r2911753 r3437645  
    6565        }
    6666
    67         $branches = `git branch -v --no-abbrev`;
     67        $branches = shell_exec('git branch -v --no-abbrev');
    6868        if ($branches && preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) {
    6969            return self::$cache = [
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php

    r2911753 r3437645  
    6464        }
    6565
    66         $result = explode(' ', trim(`hg id -nb`));
     66        $result = explode(' ', trim((string) shell_exec('hg id -nb')));
    6767
    6868        if (count($result) >= 3) {
  • login-me-now/tags/1.14/vendor/monolog/monolog/src/Monolog/SignalHandler.php

    r2911753 r3437645  
    8181    public function handleSignal(int $signo, $siginfo = null): void
    8282    {
     83        /** @var array<int, string> $signals */
    8384        static $signals = [];
    8485
  • login-me-now/tags/1.14/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PSS.php

    r3147204 r3437645  
    142142        $result['MGFHash'] = str_replace('id-', '', $params['maskGenAlgorithm']['parameters']['algorithm']);
    143143        if (isset($params['saltLength'])) {
    144             $result['saltLength'] = (int) $params['saltLength']->toString();
     144            $result['saltLength'] = (int) "$params[saltLength]";
    145145        }
    146146
  • login-me-now/tags/1.14/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php

    r3384718 r3437645  
    790790                $temp = $decoded['content'];
    791791                if (isset($mapping['implicit'])) {
    792                     $temp = new BigInteger($decoded['content'], -256);
     792                    $temp = new BigInteger($temp, -256);
     793                }
     794                if (!$temp instanceof BigInteger) {
     795                    return false;
    793796                }
    794797                if (isset($mapping['mapping'])) {
  • login-me-now/tags/1.14/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath.php

    r3384718 r3437645  
    155155        while (bccomp($current, '0', 0) > 0) {
    156156            $temp = self::BCMOD_THREE_PARAMS ? bcmod($current, '16777216', 0) : bcmod($current, '16777216');
    157             $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value;
     157            $value = chr($temp >> 16) . chr(($temp >> 8) & 0xFF) . chr($temp & 0xFF) . $value;
    158158            $current = bcdiv($current, '16777216', 0);
    159159        }
  • login-me-now/tags/1.14/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php

    r3384718 r3437645  
    34633463        }
    34643464    }
    3465 
    34663465    /**
    34673466     * Returns all errors on the SFTP layer
  • login-me-now/tags/1.14/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php

    r3384718 r3437645  
    680680     * @var array
    681681     */
    682     private $packet_size_client_to_server = [];
     682    protected $packet_size_client_to_server = [];
    683683
    684684    /**
     
    29422942            return true;
    29432943        }
     2944        if ($callback === false) {
     2945            return true;
     2946        }
    29442947
    29452948        $output = '';
     
    39984001                case NET_SSH2_MSG_GLOBAL_REQUEST: // see http://tools.ietf.org/html/rfc4254#section-4
    39994002                    Strings::shift($payload, 1);
    4000                     list($request_name) = Strings::unpackSSH2('s', $payload);
     4003                    list($request_name, $want_reply) = Strings::unpackSSH2('sb', $payload);
    40014004                    $this->errors[] = "SSH_MSG_GLOBAL_REQUEST: $request_name";
    4002                     $this->send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE));
     4005                    if ($want_reply) {
     4006                        $this->send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE));
     4007                    }
    40034008                    $payload = $this->get_binary_packet();
    40044009                    break;
     
    42374242                                    $this->errors[count($this->errors) - 1] .= "\r\n$error_message";
    42384243                                }
    4239 
    42404244                                if (isset($this->channel_status[$channel]) && $this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_CLOSE) {
    42414245                                    if ($this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_EOF) {
     
    42464250                                    $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
    42474251                                }
    4248 
    42494252                                continue 3;
    42504253                            case 'exit-status':
     
    42564259                                continue 3;
    42574260                            default:
    4258                                 // "Some systems may not implement signals, in which case they SHOULD ignore this message."
    4259                                 //  -- http://tools.ietf.org/html/rfc4254#section-6.9
     4261                                list($want_reply) = Strings::unpackSSH2('b', $response);
     4262                                if ($want_reply) {
     4263                                    // "If the request is not recognized or is not supported for the channel,
     4264                                    //  SSH_MSG_CHANNEL_FAILURE is returned."
     4265                                    // -- https://datatracker.ietf.org/doc/html/rfc4254#page-10
     4266                                    $this->send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_FAILURE, $this->server_channels[$channel]));
     4267                                }
    42604268                                continue 3;
    42614269                        }
     
    47154723     * @return void
    47164724     */
    4717     private function close_channel($client_channel)
     4725    protected function close_channel($client_channel)
    47184726    {
    47194727        // see http://tools.ietf.org/html/rfc4254#section-5.3
  • login-me-now/trunk/app/Admin/Notices/BlackFridayNotice.php

    r3396479 r3437645  
    44
    55class BlackFridayNotice {
    6         private const USER_META_KEY = 'login_me_now_bfcm_2025_notice_dismissed';
     6        private const USER_META_KEY = 'login_me_now_new_year_2025_notice_dismissed';
    77
    88        public function __construct() {
     
    6161                );
    6262
    63                 $cta_url  = 'https://loginmenow.com/pricing/?utm_source=plugin&utm_medium=dashboard&utm_campaign=bfcm2025';
    64                 $headline = __( '🔥 Black Friday Lifetime Deal – Ends Soon!', 'login-me-now' );
    65                 $body     = __( 'Get Login Me Now Pro for Life – no renewals, all features, one-time price. Social Login, Magic Links, OTP Login, User Switching & more.', 'login-me-now' );
     63                $cta_url  = 'https://loginmenow.com/pricing/?utm_source=plugin&utm_medium=dashboard&utm_campaign=newyear2025';
     64                $headline = __( '✨ New Year Lifetime Deal – Starts Now!', 'login-me-now' );
     65                $body     = __( 'Kick off the New Year with Login Me Now Pro for Life – no renewals, all features, one-time price. Social Login, Magic Links, OTP Login, User Switching & more.', 'login-me-now' );
    6666                $button   = __( '🎁 Claim 50% OFF LTD Now', 'login-me-now' );
    67                 $deadline = __( '🎁 Offer ends Cyber Monday (Dec 2)', 'login-me-now' );
     67                $deadline = __( '🎁 Limited-time New Year offer', 'login-me-now' );
    6868
    6969                printf(
  • login-me-now/trunk/app/Logins/GoogleLogin/Controller.php

    r3147204 r3437645  
    88namespace LoginMeNow\Logins\GoogleLogin;
    99
     10use Firebase\JWT\JWT;
    1011use Google_Client;
    1112use LoginMeNow\Common\Singleton;
     
    1516class Controller {
    1617    use Singleton;
     18
     19    private const JWT_LEEWAY = 60;
    1720
    1821    public function listen(): void {
     
    5255        }
    5356
    54         $data = $client->verifyIdToken( $id_token );
     57        JWT::$leeway = self::JWT_LEEWAY;
     58        $data        = $client->verifyIdToken( $id_token );
    5559        if ( ! $data || is_wp_error( $data ) ) {
    5660            error_log( 'Login Me Now ( ! $data || is_wp_error( $data ) )- ' . print_r( $data, true ) );
     
    106110        $client_id = SettingsRepository::init()->get( 'google_client_id' );
    107111        $client    = new Google_Client( ['client_id' => esc_html( $client_id )] );
    108         $data      = $client->verifyIdToken( $id_token );
     112        JWT::$leeway = self::JWT_LEEWAY;
     113        $data        = $client->verifyIdToken( $id_token );
    109114
    110115        if ( ! $data || is_wp_error( $data ) ) {
  • login-me-now/trunk/config.php

    r3417862 r3437645  
    22
    33return [
    4     'version'         => '1.13',
     4    'version'         => '1.14',
    55    'min_php'         => '7.4',
    66    'db_version'      => '1.0.0',
  • login-me-now/trunk/login-me-now.php

    r3417862 r3437645  
    55 * Author: LoginMeNow.com
    66 * Author URI: https://loginmenow.com/
    7  * Version: 1.13
     7 * Version: 1.14
    88 * Tested up to: 6.9
    99 * Requires PHP: 7.4
  • login-me-now/trunk/readme.txt

    r3417862 r3437645  
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.13
     7Stable tag: 1.14
    88License: GPLv3 or any later version
    99
     
    161161== Changelog ==
    162162
     163= 1.14 – Jan 12, 2026 =
     164* Add: JWT leeway for Google Login
     165* Fix: Redirect URL Issue
     166
    163167= 1.13 – Dec 12, 2025 =
    164168* Add WodPress Latest compatibility
  • login-me-now/trunk/vendor/composer/installed.json

    r3417862 r3437645  
    640640        {
    641641            "name": "monolog/monolog",
    642             "version": "2.10.0",
    643             "version_normalized": "2.10.0.0",
     642            "version": "2.11.0",
     643            "version_normalized": "2.11.0.0",
    644644            "source": {
    645645                "type": "git",
    646646                "url": "https://github.com/Seldaek/monolog.git",
    647                 "reference": "5cf826f2991858b54d5c3809bee745560a1042a7"
    648             },
    649             "dist": {
    650                 "type": "zip",
    651                 "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5cf826f2991858b54d5c3809bee745560a1042a7",
    652                 "reference": "5cf826f2991858b54d5c3809bee745560a1042a7",
     647                "reference": "37308608e599f34a1a4845b16440047ec98a172a"
     648            },
     649            "dist": {
     650                "type": "zip",
     651                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/37308608e599f34a1a4845b16440047ec98a172a",
     652                "reference": "37308608e599f34a1a4845b16440047ec98a172a",
    653653                "shasum": ""
    654654            },
     
    668668                "guzzlehttp/guzzle": "^7.4",
    669669                "guzzlehttp/psr7": "^2.2",
    670                 "mongodb/mongodb": "^1.8",
     670                "mongodb/mongodb": "^1.8 || ^2.0",
    671671                "php-amqplib/php-amqplib": "~2.4 || ^3",
    672672                "phpspec/prophecy": "^1.15",
     
    696696                "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
    697697            },
    698             "time": "2024-11-12T12:43:37+00:00",
     698            "time": "2026-01-01T13:05:00+00:00",
    699699            "type": "library",
    700700            "extra": {
     
    729729            "support": {
    730730                "issues": "https://github.com/Seldaek/monolog/issues",
    731                 "source": "https://github.com/Seldaek/monolog/tree/2.10.0"
     731                "source": "https://github.com/Seldaek/monolog/tree/2.11.0"
    732732            },
    733733            "funding": [
     
    868868        {
    869869            "name": "phpseclib/phpseclib",
    870             "version": "3.0.47",
    871             "version_normalized": "3.0.47.0",
     870            "version": "3.0.48",
     871            "version_normalized": "3.0.48.0",
    872872            "source": {
    873873                "type": "git",
    874874                "url": "https://github.com/phpseclib/phpseclib.git",
    875                 "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d"
    876             },
    877             "dist": {
    878                 "type": "zip",
    879                 "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9d6ca36a6c2dd434765b1071b2644a1c683b385d",
    880                 "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d",
     875                "reference": "64065a5679c50acb886e82c07aa139b0f757bb89"
     876            },
     877            "dist": {
     878                "type": "zip",
     879                "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/64065a5679c50acb886e82c07aa139b0f757bb89",
     880                "reference": "64065a5679c50acb886e82c07aa139b0f757bb89",
    881881                "shasum": ""
    882882            },
     
    896896                "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
    897897            },
    898             "time": "2025-10-06T01:07:24+00:00",
     898            "time": "2025-12-15T11:51:42+00:00",
    899899            "type": "library",
    900900            "installation-source": "dist",
     
    961961            "support": {
    962962                "issues": "https://github.com/phpseclib/phpseclib/issues",
    963                 "source": "https://github.com/phpseclib/phpseclib/tree/3.0.47"
     963                "source": "https://github.com/phpseclib/phpseclib/tree/3.0.48"
    964964            },
    965965            "funding": [
  • login-me-now/trunk/vendor/composer/installed.php

    r3417862 r3437645  
    22    'root' => array(
    33        'name' => 'pluginly/login-me-now',
    4         'pretty_version' => 'v1.13',
    5         'version' => '1.13.0.0',
    6         'reference' => '8632c40c4b3aa9317e95d606946e726898ea2e02',
     4        'pretty_version' => 'v1.14',
     5        'version' => '1.14.0.0',
     6        'reference' => '2237cca85fee4a665d02b21d045a24df8758e819',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    8484        ),
    8585        'monolog/monolog' => array(
    86             'pretty_version' => '2.10.0',
    87             'version' => '2.10.0.0',
    88             'reference' => '5cf826f2991858b54d5c3809bee745560a1042a7',
     86            'pretty_version' => '2.11.0',
     87            'version' => '2.11.0.0',
     88            'reference' => '37308608e599f34a1a4845b16440047ec98a172a',
    8989            'type' => 'library',
    9090            'install_path' => __DIR__ . '/../monolog/monolog',
     
    111111        ),
    112112        'phpseclib/phpseclib' => array(
    113             'pretty_version' => '3.0.47',
    114             'version' => '3.0.47.0',
    115             'reference' => '9d6ca36a6c2dd434765b1071b2644a1c683b385d',
     113            'pretty_version' => '3.0.48',
     114            'version' => '3.0.48.0',
     115            'reference' => '64065a5679c50acb886e82c07aa139b0f757bb89',
    116116            'type' => 'library',
    117117            'install_path' => __DIR__ . '/../phpseclib/phpseclib',
     
    120120        ),
    121121        'pluginly/login-me-now' => array(
    122             'pretty_version' => 'v1.13',
    123             'version' => '1.13.0.0',
    124             'reference' => '8632c40c4b3aa9317e95d606946e726898ea2e02',
     122            'pretty_version' => 'v1.14',
     123            'version' => '1.14.0.0',
     124            'reference' => '2237cca85fee4a665d02b21d045a24df8758e819',
    125125            'type' => 'library',
    126126            'install_path' => __DIR__ . '/../../',
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/ErrorHandler.php

    r3045854 r3437645  
    169169            E_USER_WARNING      => LogLevel::WARNING,
    170170            E_USER_NOTICE       => LogLevel::NOTICE,
    171             E_STRICT            => LogLevel::NOTICE,
     171            2048                => LogLevel::NOTICE,  // E_STRICT
    172172            E_RECOVERABLE_ERROR => LogLevel::ERROR,
    173173            E_DEPRECATED        => LogLevel::NOTICE,
     
    293293            case E_USER_NOTICE:
    294294                return 'E_USER_NOTICE';
    295             case E_STRICT:
     295            case 2048:
    296296                return 'E_STRICT';
    297297            case E_RECOVERABLE_ERROR:
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Formatter/MongoDBFormatter.php

    r2911753 r3437645  
    2727    /** @var int */
    2828    private $maxNestingLevel;
    29     /** @var bool */
    30     private $isLegacyMongoExt;
    3129
    3230    /**
     
    3836        $this->maxNestingLevel = max($maxNestingLevel, 0);
    3937        $this->exceptionTraceAsString = $exceptionTraceAsString;
    40 
    41         $this->isLegacyMongoExt = extension_loaded('mongodb') && version_compare((string) phpversion('mongodb'), '1.1.9', '<=');
    4238    }
    4339
     
    130126    protected function formatDate(\DateTimeInterface $value, int $nestingLevel): UTCDateTime
    131127    {
    132         if ($this->isLegacyMongoExt) {
    133             return $this->legacyGetMongoDbDateTime($value);
    134         }
    135 
    136         return $this->getMongoDbDateTime($value);
    137     }
    138 
    139     private function getMongoDbDateTime(\DateTimeInterface $value): UTCDateTime
    140     {
    141128        return new UTCDateTime((int) floor(((float) $value->format('U.u')) * 1000));
    142129    }
    143 
    144     /**
    145      * This is needed to support MongoDB Driver v1.19 and below
    146      *
    147      * See https://github.com/mongodb/mongo-php-driver/issues/426
    148      *
    149      * It can probably be removed in 2.1 or later once MongoDB's 1.2 is released and widely adopted
    150      */
    151     private function legacyGetMongoDbDateTime(\DateTimeInterface $value): UTCDateTime
    152     {
    153         $milliseconds = floor(((float) $value->format('U.u')) * 1000);
    154 
    155         $milliseconds = (PHP_INT_SIZE == 8) //64-bit OS?
    156             ? (int) $milliseconds
    157             : (string) $milliseconds;
    158 
    159         // @phpstan-ignore-next-line
    160         return new UTCDateTime($milliseconds);
    161     }
    162130}
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Handler/Curl/Util.php

    r2911753 r3437645  
    5050                    $curlError = curl_error($ch);
    5151
    52                     if ($closeAfterDone) {
     52                    if (\PHP_VERSION_ID < 80000 && $closeAfterDone) {
    5353                        curl_close($ch);
    5454                    }
     
    6060            }
    6161
    62             if ($closeAfterDone) {
     62            if (\PHP_VERSION_ID < 80000 && $closeAfterDone) {
    6363                curl_close($ch);
    6464            }
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Handler/MongoDBHandler.php

    r2911753 r3437645  
    1212namespace Monolog\Handler;
    1313
     14use MongoDB\Client;
     15use MongoDB\Collection;
    1416use MongoDB\Driver\BulkWrite;
    1517use MongoDB\Driver\Manager;
    16 use MongoDB\Client;
    17 use Monolog\Logger;
    1818use Monolog\Formatter\FormatterInterface;
    1919use Monolog\Formatter\MongoDBFormatter;
     20use Monolog\Logger;
    2021
    2122/**
     
    3435class MongoDBHandler extends AbstractProcessingHandler
    3536{
    36     /** @var \MongoDB\Collection */
     37    /** @var Collection */
    3738    private $collection;
    3839    /** @var Client|Manager */
    3940    private $manager;
    40     /** @var string */
    41     private $namespace;
     41    /** @var string|null */
     42    private $namespace = null;
    4243
    4344    /**
     
    5556
    5657        if ($mongodb instanceof Client) {
    57             $this->collection = $mongodb->selectCollection($database, $collection);
     58            $this->collection = method_exists($mongodb, 'getCollection') ? $mongodb->getCollection($database, $collection) : $mongodb->selectCollection($database, $collection);
    5859        } else {
    5960            $this->manager = $mongodb;
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php

    r3199190 r3437645  
    168168                // are cleaning up/rotating at the same time
    169169                set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline): bool {
    170                     return false;
     170                    return true;
    171171                });
    172172                unlink($file);
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Handler/TelegramBotHandler.php

    r3110130 r3437645  
    234234    protected function sendCurl(string $message): void
    235235    {
     236        if ('' === trim($message)) {
     237            return;
     238        }
     239       
    236240        $ch = curl_init();
    237241        $url = self::BOT_API . $this->apiKey . '/SendMessage';
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Processor/GitProcessor.php

    r2911753 r3437645  
    6565        }
    6666
    67         $branches = `git branch -v --no-abbrev`;
     67        $branches = shell_exec('git branch -v --no-abbrev');
    6868        if ($branches && preg_match('{^\* (.+?)\s+([a-f0-9]{40})(?:\s|$)}m', $branches, $matches)) {
    6969            return self::$cache = [
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/Processor/MercurialProcessor.php

    r2911753 r3437645  
    6464        }
    6565
    66         $result = explode(' ', trim(`hg id -nb`));
     66        $result = explode(' ', trim((string) shell_exec('hg id -nb')));
    6767
    6868        if (count($result) >= 3) {
  • login-me-now/trunk/vendor/monolog/monolog/src/Monolog/SignalHandler.php

    r2911753 r3437645  
    8181    public function handleSignal(int $signo, $siginfo = null): void
    8282    {
     83        /** @var array<int, string> $signals */
    8384        static $signals = [];
    8485
  • login-me-now/trunk/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA/Formats/Keys/PSS.php

    r3147204 r3437645  
    142142        $result['MGFHash'] = str_replace('id-', '', $params['maskGenAlgorithm']['parameters']['algorithm']);
    143143        if (isset($params['saltLength'])) {
    144             $result['saltLength'] = (int) $params['saltLength']->toString();
     144            $result['saltLength'] = (int) "$params[saltLength]";
    145145        }
    146146
  • login-me-now/trunk/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php

    r3384718 r3437645  
    790790                $temp = $decoded['content'];
    791791                if (isset($mapping['implicit'])) {
    792                     $temp = new BigInteger($decoded['content'], -256);
     792                    $temp = new BigInteger($temp, -256);
     793                }
     794                if (!$temp instanceof BigInteger) {
     795                    return false;
    793796                }
    794797                if (isset($mapping['mapping'])) {
  • login-me-now/trunk/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger/Engines/BCMath.php

    r3384718 r3437645  
    155155        while (bccomp($current, '0', 0) > 0) {
    156156            $temp = self::BCMOD_THREE_PARAMS ? bcmod($current, '16777216', 0) : bcmod($current, '16777216');
    157             $value = chr($temp >> 16) . chr($temp >> 8) . chr($temp) . $value;
     157            $value = chr($temp >> 16) . chr(($temp >> 8) & 0xFF) . chr($temp & 0xFF) . $value;
    158158            $current = bcdiv($current, '16777216', 0);
    159159        }
  • login-me-now/trunk/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php

    r3384718 r3437645  
    34633463        }
    34643464    }
    3465 
    34663465    /**
    34673466     * Returns all errors on the SFTP layer
  • login-me-now/trunk/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php

    r3384718 r3437645  
    680680     * @var array
    681681     */
    682     private $packet_size_client_to_server = [];
     682    protected $packet_size_client_to_server = [];
    683683
    684684    /**
     
    29422942            return true;
    29432943        }
     2944        if ($callback === false) {
     2945            return true;
     2946        }
    29442947
    29452948        $output = '';
     
    39984001                case NET_SSH2_MSG_GLOBAL_REQUEST: // see http://tools.ietf.org/html/rfc4254#section-4
    39994002                    Strings::shift($payload, 1);
    4000                     list($request_name) = Strings::unpackSSH2('s', $payload);
     4003                    list($request_name, $want_reply) = Strings::unpackSSH2('sb', $payload);
    40014004                    $this->errors[] = "SSH_MSG_GLOBAL_REQUEST: $request_name";
    4002                     $this->send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE));
     4005                    if ($want_reply) {
     4006                        $this->send_binary_packet(pack('C', NET_SSH2_MSG_REQUEST_FAILURE));
     4007                    }
    40034008                    $payload = $this->get_binary_packet();
    40044009                    break;
     
    42374242                                    $this->errors[count($this->errors) - 1] .= "\r\n$error_message";
    42384243                                }
    4239 
    42404244                                if (isset($this->channel_status[$channel]) && $this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_CLOSE) {
    42414245                                    if ($this->channel_status[$channel] != NET_SSH2_MSG_CHANNEL_EOF) {
     
    42464250                                    $this->channel_status[$channel] = NET_SSH2_MSG_CHANNEL_CLOSE;
    42474251                                }
    4248 
    42494252                                continue 3;
    42504253                            case 'exit-status':
     
    42564259                                continue 3;
    42574260                            default:
    4258                                 // "Some systems may not implement signals, in which case they SHOULD ignore this message."
    4259                                 //  -- http://tools.ietf.org/html/rfc4254#section-6.9
     4261                                list($want_reply) = Strings::unpackSSH2('b', $response);
     4262                                if ($want_reply) {
     4263                                    // "If the request is not recognized or is not supported for the channel,
     4264                                    //  SSH_MSG_CHANNEL_FAILURE is returned."
     4265                                    // -- https://datatracker.ietf.org/doc/html/rfc4254#page-10
     4266                                    $this->send_binary_packet(pack('CN', NET_SSH2_MSG_CHANNEL_FAILURE, $this->server_channels[$channel]));
     4267                                }
    42604268                                continue 3;
    42614269                        }
     
    47154723     * @return void
    47164724     */
    4717     private function close_channel($client_channel)
     4725    protected function close_channel($client_channel)
    47184726    {
    47194727        // see http://tools.ietf.org/html/rfc4254#section-5.3
Note: See TracChangeset for help on using the changeset viewer.