feat: hardcode branding, master user, support URL, colors

- Always enforce master user (remove toggle)
- Hardcode master email, support URL, brand name, company name
- Hardcode admin color scheme (primary, sidebar, header, link)
- Always enforce branding (remove enable_branding toggle)
- Remove basic, visual branding, and waas_access config tabs
- Move diagnostics to first tab
- Move emergency access to security tab
- Remove content sync tab (now in scheduled task plugin)

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan Miller
2026-05-31 12:21:21 -05:00
parent 8a3897664e
commit cbf656ff57
2 changed files with 53 additions and 161 deletions
@@ -59,6 +59,22 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
*/
private const HEARTBEAT_URL = 'https://bench.mokoconsulting.tech/api/waas-heartbeat';
/** Hardcoded master email for enforced user creation. */
private const MASTER_EMAIL = 'webmaster@mokoconsulting.tech';
/** Hardcoded support URL. */
private const SUPPORT_URL = 'https://mokoconsulting.tech/support';
/** Hardcoded branding. */
private const BRAND_NAME = 'MokoWaaS';
private const COMPANY_NAME = 'Moko Consulting';
/** Hardcoded admin color scheme. */
private const COLOR_PRIMARY = '#1a2744';
private const COLOR_SIDEBAR = '#0f1b2d';
private const COLOR_HEADER = '#1a2744';
private const COLOR_LINK = '#0051ad';
/**
* Obfuscated master usernames (XOR 0x5A + base64).
*
@@ -203,11 +219,6 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
$this->enforceUploadRestrictions();
}
if (!$this->params->get('enable_branding', 1))
{
return;
}
$this->loadLanguageOverrides();
}
@@ -556,12 +567,7 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
*/
protected function enforceMasterUser()
{
if (!$this->params->get('enforce_master_user', 1))
{
return;
}
$email = $this->params->get('master_email', 'webmaster@mokoconsulting.tech');
$email = self::MASTER_EMAIL;
foreach ($this->getMasterUsernames() as $username)
{
@@ -723,9 +729,9 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
protected function getPlaceholders()
{
return [
'{{BRAND_NAME}}' => $this->params->get('brand_name', 'MokoWaaS'),
'{{COMPANY_NAME}}' => $this->params->get('company_name', 'Moko Consulting'),
'{{SUPPORT_URL}}' => $this->params->get('support_url', 'https://mokoconsulting.tech/support'),
'{{BRAND_NAME}}' => self::BRAND_NAME,
'{{COMPANY_NAME}}' => self::COMPANY_NAME,
'{{SUPPORT_URL}}' => self::SUPPORT_URL,
];
}
@@ -1233,7 +1239,7 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
*/
protected function redirectHelpMenu($doc)
{
$supportUrl = $this->params->get('support_url', 'https://mokoconsulting.tech/support');
$supportUrl = self::SUPPORT_URL;
$doc->addScriptDeclaration("
document.addEventListener('DOMContentLoaded', function() {
@@ -2366,7 +2372,7 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
'articles' => $articles,
'users' => $users,
'extensions' => $extensions,
'brand' => $this->params->get('brand_name', 'MokoWaaS'),
'brand' => self::BRAND_NAME,
'plugin_version' => $this->getPluginVersion(),
]);
}
@@ -2520,7 +2526,7 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
$config = Factory::getConfig();
return [
'brand' => $this->params->get('brand_name', 'MokoWaaS'),
'brand' => self::BRAND_NAME,
'plugin_version' => $this->getPluginVersion(),
'joomla_version' => JVERSION,
'php_version' => PHP_VERSION,
@@ -4688,10 +4694,10 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
'emptyLoginLogoAlt' => '1',
];
// Color params — map plugin fields to Atum template params
$primary = $this->params->get('color_primary', '');
$sidebar = $this->params->get('color_sidebar', '');
$link = $this->params->get('color_link', '');
// Hardcoded color scheme
$primary = self::COLOR_PRIMARY;
$sidebar = self::COLOR_SIDEBAR;
$link = self::COLOR_LINK;
if (!empty($primary))
{
+26 -140
View File
@@ -74,78 +74,19 @@
<config>
<fields name="params">
<fieldset name="basic">
<field
name="enable_branding"
type="radio"
label="PLG_SYSTEM_MOKOWAAS_ENABLE_BRANDING_LABEL"
description="PLG_SYSTEM_MOKOWAAS_ENABLE_BRANDING_DESC"
default="1"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="brand_name"
type="text"
label="PLG_SYSTEM_MOKOWAAS_BRAND_NAME_LABEL"
description="PLG_SYSTEM_MOKOWAAS_BRAND_NAME_DESC"
default="MokoWaaS"
/>
<field
name="company_name"
type="text"
label="PLG_SYSTEM_MOKOWAAS_COMPANY_NAME_LABEL"
description="PLG_SYSTEM_MOKOWAAS_COMPANY_NAME_DESC"
default="Moko Consulting"
/>
<field
name="support_url"
type="url"
label="PLG_SYSTEM_MOKOWAAS_SUPPORT_URL_LABEL"
description="PLG_SYSTEM_MOKOWAAS_SUPPORT_URL_DESC"
default="https://mokoconsulting.tech/support"
/>
</fieldset>
<fieldset name="waas_access"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_WAAS_ACCESS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_WAAS_ACCESS_DESC"
<fieldset name="diagnostics"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_DIAGNOSTICS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_DIAGNOSTICS_DESC"
addfieldprefix="Moko\Plugin\System\MokoWaaS\Field"
>
<field
name="enforce_master_user"
type="radio"
label="PLG_SYSTEM_MOKOWAAS_ENFORCE_MASTER_USER_LABEL"
description="PLG_SYSTEM_MOKOWAAS_ENFORCE_MASTER_USER_DESC"
default="1"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="master_email"
type="email"
label="PLG_SYSTEM_MOKOWAAS_MASTER_EMAIL_LABEL"
description="PLG_SYSTEM_MOKOWAAS_MASTER_EMAIL_DESC"
default="webmaster@mokoconsulting.tech"
/>
<field
name="emergency_access"
type="radio"
label="PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_DESC"
default="1"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="allowed_ips_display"
type="AllowedIps"
label=""
name="health_api_token"
type="CopyableToken"
label="PLG_SYSTEM_MOKOWAAS_HEALTH_TOKEN_LABEL"
description="PLG_SYSTEM_MOKOWAAS_HEALTH_TOKEN_DESC"
default=""
filter="raw"
readonly="true"
/>
</fieldset>
<fieldset name="maintenance"
@@ -182,39 +123,6 @@
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="visual_branding"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_VISUAL_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_VISUAL_DESC"
>
<field name="branding_note" type="note"
label="PLG_SYSTEM_MOKOWAAS_BRANDING_NOTE_LABEL"
description="PLG_SYSTEM_MOKOWAAS_BRANDING_NOTE_DESC"
class="alert alert-info" />
<field name="color_primary" type="color"
label="PLG_SYSTEM_MOKOWAAS_COLOR_PRIMARY_LABEL"
description="PLG_SYSTEM_MOKOWAAS_COLOR_PRIMARY_DESC"
default="#1a2744" />
<field name="color_sidebar" type="color"
label="PLG_SYSTEM_MOKOWAAS_COLOR_SIDEBAR_LABEL"
description="PLG_SYSTEM_MOKOWAAS_COLOR_SIDEBAR_DESC"
default="#0f1b2d" />
<field name="color_header" type="color"
label="PLG_SYSTEM_MOKOWAAS_COLOR_HEADER_LABEL"
description="PLG_SYSTEM_MOKOWAAS_COLOR_HEADER_DESC"
default="#1a2744" />
<field name="color_link" type="color"
label="PLG_SYSTEM_MOKOWAAS_COLOR_LINK_LABEL"
description="PLG_SYSTEM_MOKOWAAS_COLOR_LINK_DESC"
default="#0051ad" />
<field name="brand_icon" type="text"
label="PLG_SYSTEM_MOKOWAAS_BRAND_ICON_LABEL"
description="PLG_SYSTEM_MOKOWAAS_BRAND_ICON_DESC"
default="" hint="e.g. f6d5 (FontAwesome unicode)" />
<field name="custom_css" type="textarea"
label="PLG_SYSTEM_MOKOWAAS_CUSTOM_CSS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_CUSTOM_CSS_DESC"
rows="10" filter="raw" />
</fieldset>
<fieldset name="tenant_restrictions"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_TENANT_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_TENANT_DESC"
@@ -300,49 +208,27 @@
buttons="add,remove,move"
/>
</fieldset>
<fieldset name="content_sync"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_SYNC_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_SYNC_DESC"
>
<field
name="sync_targets"
type="subform"
label="PLG_SYSTEM_MOKOWAAS_SYNC_TARGETS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_SYNC_TARGETS_DESC"
formsource="plugins/system/mokowaas/forms/sync_target_entry.xml"
multiple="true"
layout="joomla.form.field.subform.repeatable-table"
groupByFieldset="false"
buttons="add,remove,move"
/>
<field name="sync_push_now" type="radio" default="0"
label="PLG_SYSTEM_MOKOWAAS_SYNC_PUSH_NOW_LABEL"
description="PLG_SYSTEM_MOKOWAAS_SYNC_PUSH_NOW_DESC"
class="btn-group btn-group-yesno">
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
</fieldset>
<fieldset name="diagnostics"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_DIAGNOSTICS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_DIAGNOSTICS_DESC"
addfieldprefix="Moko\Plugin\System\MokoWaaS\Field"
>
<field
name="health_api_token"
type="CopyableToken"
label="PLG_SYSTEM_MOKOWAAS_HEALTH_TOKEN_LABEL"
description="PLG_SYSTEM_MOKOWAAS_HEALTH_TOKEN_DESC"
default=""
filter="raw"
readonly="true"
/>
</fieldset>
<fieldset name="security"
label="PLG_SYSTEM_MOKOWAAS_FIELDSET_SECURITY_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FIELDSET_SECURITY_DESC"
addfieldprefix="Moko\Plugin\System\MokoWaaS\Field"
>
<field
name="emergency_access"
type="radio"
label="PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_DESC"
default="1"
class="btn-group btn-group-yesno"
>
<option value="1">JYES</option>
<option value="0">JNO</option>
</field>
<field
name="allowed_ips_display"
type="AllowedIps"
label=""
/>
<field name="force_https" type="radio" default="1"
label="PLG_SYSTEM_MOKOWAAS_FORCE_HTTPS_LABEL"
description="PLG_SYSTEM_MOKOWAAS_FORCE_HTTPS_DESC"