From 48721c85ebcfa973ee81719d2467ca80e4253dc9 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 01 May 2026 17:30:03 +0000
Subject: [PATCH] =Edmonton Ink hard test begins! Real testing of the managers and reset routes will commence. So far, just ensuring our classes are all loaded correctly: Site() and its sub-classes Membership, Login, etc. Care should be taken to load conditionally on 'init', as we finish defining most settings by 'plugins_loaded' at priority 5
---
inc/managers/LoginManager.php | 101 +++++++++++++-------------------------------------
1 files changed, 27 insertions(+), 74 deletions(-)
diff --git a/inc/managers/LoginManager.php b/inc/managers/LoginManager.php
index 5187724..ac51292 100644
--- a/inc/managers/LoginManager.php
+++ b/inc/managers/LoginManager.php
@@ -1,11 +1,11 @@
<?php
namespace JVBase\managers;
+use JVBase\base\Site;
use JVBase\forms\TaxonomySelector;
use JVBase\meta\Form;
-use JVBase\utility\Features;
-use WP_Error;
+use JVBase\registrar\Registrar;use WP_Error;
use WP_User;
if (!defined('ABSPATH')) {
@@ -14,7 +14,6 @@
class LoginManager
{
- protected Features $siteFeatures;
protected ?Form $form = null;
protected Cache $cache;
@@ -38,13 +37,10 @@
public function __construct()
{
- $this->siteFeatures = Features::forSite();
-
-
$this->cache = Cache::for('login');
// Initialize magic link support if enabled
- if ($this->siteFeatures->has('magicLink')) {
+ if (Site::has('magicLink')) {
$this->initMagicLinkSupport();
}
@@ -129,7 +125,7 @@
'placeholder'=> 'look@me.com'
]
];
- if (Features::forSite()->has('referrals')) {
+ if (Site::has('referrals')) {
$fields['referral_code'] = [
'type' => 'text',
'required'=> false,
@@ -137,19 +133,19 @@
'hint' => 'Have a referral code? Paste it here!'
];
}
- if (count(JVB_USER) > 1) {
- foreach (JVB_USER as $slug => $config) {
- if (!array_key_exists('can_register', $config) || !$config['can_register']) {
- continue;
- }
- $icon = $config['icon'] ?? '';
+ $canRegister = Registrar::getFeatured('can_register', 'user');
+ if (!empty($canRegister)) {
+ foreach ($canRegister as $role) {
+ $registrar = Registrar::getInstance($role);
+ $config = $registrar->getConfig('register');
+ $icon = $registrar->getIcon('user');
$icon = ($icon !== '') ? jvbIcon($icon) : '';
- $select[$slug] = '<span class="label">'.$icon.$config['label'].'</span><span class="text">'.$config['register']['text']??''.'</span>';
- if (!empty($config['register']['fields']??[])){
- foreach ($config['register']['fields'] as $field) {
+ $select[$role] = '<span class="label">'.$icon.$registrar->getSingular().'</span><span class="text">'.$config['description']??Site::login()->getDescription('register')??''.'</span>';
+ if (!empty($config['fields'])){
+ foreach ($config['fields'] as $field) {
$field['condition'] = [
'field' => 'user_select',
- 'value' => $slug,
+ 'value' => $role,
'operator' => '=='
];
$fields[] = $field;
@@ -293,7 +289,7 @@
}
}
}
- public function loginUrl(string $login_url, string $redirect, bool $force_reauth):string
+ public function loginUrl(string $login_url, ?string $redirect, bool $force_reauth):string
{
// This will append /custom-login/ to you main site URL as configured in general settings (ie https://domain.com/custom-login/)
$login_url = site_url( '/login/', 'login' );
@@ -345,7 +341,7 @@
protected function initMagicLinkSupport(): void
{
- if (!Features::forSite()->has('magicLink')) {
+ if (!Site::has('magicLink')) {
return;
}
}
@@ -715,7 +711,7 @@
protected function maybeTurnstile(): void
{
- if (!Features::hasIntegration('cloudflare')) {
+ if (!Site::hasIntegration('cloudflare')) {
return;
}
JVB()->connect('cloudflare')->renderTurnstile();
@@ -723,7 +719,7 @@
protected function maybeTurnstileScripts(): void
{
- if (!Features::hasIntegration('cloudflare')) {
+ if (!Site::hasIntegration('cloudflare')) {
return;
}
JVB()->connect('cloudflare')->enqueueTurnstileScripts();
@@ -731,7 +727,7 @@
protected function verifyTurnstile(): bool
{
- if (!Features::hasIntegration('cloudflare')) {
+ if (!Site::hasIntegration('cloudflare')) {
return true; // Not enabled, pass verification
}
@@ -784,61 +780,19 @@
{
switch ($this->action) {
case 'register':
- return [
- 'title' => JVB_LOGIN['register']['title'] ?? 'Create Your Account',
- 'description' => JVB_LOGIN['register']['description'] ?? [],
- 'extra' => JVB_LOGIN['register']['extra'] ?? [],
- 'footer' => JVB_LOGIN['register']['footer'] ?? '',
- 'email' => JVB_LOGIN['register']['email']['subject'] ?? '['.get_bloginfo('name').'] Finish Creating Your Account',
- 'submit' => JVB_LOGIN['register']['submit'] ?? 'Create Account',
- 'successTitle' => JVB_LOGIN['register']['success']['title'] ?? 'Success!',
- 'successDescription' => JVB_LOGIN['register']['success']['description'] ?? ['See your email for next steps','(Check your spam folder if you cannot find it after a couple minutes.)'],
- ];
+ return Site::login()->getLabels('register');
case 'lostpassword':
- return [
- 'title' => JVB_LOGIN['forgot_password']['title'] ?? 'Reset Password',
- 'description' => JVB_LOGIN['forgot_password']['description'] ?? [],
- 'extra' => JVB_LOGIN['forgot_password']['extra'] ?? [],
- 'footer' => JVB_LOGIN['forgot_password']['footer'] ?? '',
- 'submit' => JVB_LOGIN['forgot_password']['submit'] ?? 'Send Reset Link',
- 'successTitle' => JVB_LOGIN['forgot_password']['success']['title'] ?? 'Success!',
- 'successDescription' => JVB_LOGIN['forgot_password']['success']['description'] ?? ['Check your email for reset instructions'],
- ];
+ return Site::login()->getLabels('lostPassword');
case 'resetpass':
case 'rp':
- return [
- 'title' => JVB_LOGIN['reset_pass']['title'] ?? 'Reset Your Password',
- 'description' => JVB_LOGIN['reset_pass']['description'] ?? [],
- 'extra' => JVB_LOGIN['reset_pass']['extra'] ?? [],
- 'footer' => JVB_LOGIN['reset_pass']['footer'] ?? '',
- 'submit' => JVB_LOGIN['reset_pass']['submit'] ?? 'Reset Password',
- ];
+ return Site::login()->getLabels('resetPassword');
case 'logout':
- return [
- 'title' => JVB_LOGIN['logout']['title'] ?? 'Logged Out!',
- 'description' => JVB_LOGIN['logout']['description'] ?? [],
- 'extra' => JVB_LOGIN['logout']['extra'] ?? [],
- 'footer' => JVB_LOGIN['logout']['footer'] ?? '',
- 'submit' => JVB_LOGIN['logout']['submit'] ?? '',
- ];
+ return Site::login()->getLabels('logout');
case 'magic':
- return [
- 'title' => JVB_LOGIN['magic']['title'] ?? 'Log in with Magic Link',
- 'description' => JVB_LOGIN['magic']['description'] ?? ['Enter your email.','You\'ll get an email with a magic link.','Click it, and you\'re logged in!'],
- 'extra' => JVB_LOGIN['magic']['extra'] ?? [],
- 'footer' => JVB_LOGIN['magic']['footer'] ?? '',
- 'submit' => JVB_LOGIN['magic']['submit'] ?? jvbIcon('magic-wand').'Send Magic Link',
-
- ];
+ return Site::login()->getLabels('magic');
case 'login':
default:
- return [
- 'title' => JVB_LOGIN['login']['title'] ?? 'Sign in',
- 'description' => JVB_LOGIN['login']['description'] ?? [],
- 'extra' => JVB_LOGIN['login']['extra'] ?? [],
- 'footer' => JVB_LOGIN['login']['footer'] ?? '',
- 'submit' => JVB_LOGIN['login']['submit'] ?? 'Sign In',
- ];
+ return Site::login()->getLabels('login');
}
}
@@ -870,7 +824,7 @@
$action = $this->getAction();
$redirect_to = isset($_GET['redirect_to']) ? esc_url_raw($_GET['redirect_to']) : '';
- $has_turnstile = Features::hasIntegration('cloudflare');
+ $has_turnstile = Site::hasIntegration('cloudflare');
ob_start();
@@ -886,9 +840,8 @@
if (!form || !window.jvbForm) return;
window.jvbForm.registerForm(form, {
- autosave: false,
endpoint: '<?= $action ?>',
- formStatus: false,
+ showStatus: false,
cache: false,
});
--
Gitblit v1.10.0