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:
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user