PluginProbe
Search Atlas SEO – OTTO AI SEO Automation for WordPress / 2.7.2
Search Atlas SEO – OTTO AI SEO Automation for WordPress v2.7.2
2.7.1 2.7.2 2.7.0 2.6.26 2.6.25 2.6.24 2.6.23 2.6.22 2.6.21 2.6.20 2.6.19 2.6.18 2.6.17 2.6.16 2.6.15 2.6.14 2.6.13 2.6.12 2.6.11 2.6.10 2.6.9 2.6.8 2.6.7 2.6.6 2.6.5 All 141 releases
← All changes | includes/class-metasync-auth-manager.php +16 -2 2.6.25 → 2.7.2 View file →
@@ -100,8 +100,12 @@
100 100 }
101 101
102 102 // Check temporary access (transient)
103 103 if ($this->has_transient_access()) {
104 + // Sliding window: renew the access window itself, not just the
105 + // decorative activity timestamp, so an admin actively using the
106 + // tab is not cut off exactly at grant-time + timeout.
107 + set_transient($this->get_transient_key(), 'granted', $this->transient_timeout);
104 108 // Refresh transient activity
105 109 $this->update_activity();
106 110 return true;
107 111 }
@@ -362,10 +366,14 @@
362 366 if (!is_array($valid_passwords)) {
363 367 $valid_passwords = array($valid_passwords);
364 368 }
365 369
366 - // Remove empty passwords
367 - $valid_passwords = array_filter($valid_passwords);
370 + // Remove unset/empty passwords, but keep the string '0' — a
371 + // truthiness filter would silently drop a configured password of
372 + // "0" and make it impossible to authenticate with.
373 + $valid_passwords = array_filter($valid_passwords, function ($p) {
374 + return null !== $p && '' !== $p;
375 + });
368 376
369 377 if (empty($valid_passwords)) {
370 378 return false;
371 379 }
@@ -437,8 +445,14 @@
437 445 * @param string $context Authentication context
438 446 * @return bool True if user has access, false otherwise
439 447 */
440 448 public static function user_has_access($user_id, $context = 'default') {
449 + $user_id = absint($user_id);
450 + if (!$user_id) {
451 + return false;
452 + }
453 +
441 454 $auth = new self($context);
455 + $auth->user_id = $user_id;
442 456 return $auth->has_access();
443 457 }
444 458 }