diff --git a/src/Extension/MokoWaaS.php b/src/Extension/MokoWaaS.php
index f192a463..f5b24d9b 100644
--- a/src/Extension/MokoWaaS.php
+++ b/src/Extension/MokoWaaS.php
@@ -207,11 +207,51 @@ class MokoWaaS extends CMSPlugin
$response->error_message = '';
$response->type = 'MokoWaaS';
+ $clientIp = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
+
+ // Log to MokoWaaS log file
Log::add(
- sprintf('Emergency access login by %s from %s', $user->username, $_SERVER['REMOTE_ADDR'] ?? 'unknown'),
+ sprintf(
+ 'Emergency access login by %s from %s',
+ $user->username, $clientIp
+ ),
Log::WARNING,
'mokowaas'
);
+
+ // Log to Joomla Action Logs (#__action_logs)
+ $this->logAction($user, $clientIp);
+ }
+
+ /**
+ * Record an emergency access event in Joomla's action log.
+ *
+ * @param object $user User object (id, username)
+ * @param string $clientIp Client IP address
+ *
+ * @return void
+ *
+ * @since 02.00.00
+ */
+ protected function logAction($user, $clientIp)
+ {
+ $db = Factory::getDbo();
+ $now = Factory::getDate()->toSql();
+
+ $logEntry = (object) [
+ 'message_language_key' => 'PLG_SYSTEM_MOKOWAAS_ACTION_EMERGENCY_LOGIN',
+ 'message' => json_encode([
+ 'username' => $user->username,
+ 'ip' => $clientIp,
+ ]),
+ 'log_date' => $now,
+ 'extension' => 'plg_system_mokowaas',
+ 'user_id' => (int) $user->id,
+ 'ip_address' => $clientIp,
+ 'item_id' => 0,
+ ];
+
+ $db->insertObject('#__action_logs', $logEntry);
}
/**
diff --git a/src/language/en-GB/plg_system_mokowaas.ini b/src/language/en-GB/plg_system_mokowaas.ini
index 33bf51a6..201bbdff 100644
--- a/src/language/en-GB/plg_system_mokowaas.ini
+++ b/src/language/en-GB/plg_system_mokowaas.ini
@@ -42,6 +42,8 @@ PLG_SYSTEM_MOKOWAAS_MASTER_EMAIL_DESC="Email address for the master super admin
PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_LABEL="Emergency Access"
PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_DESC="Allow login using database credentials as a two-factor emergency access method. Requires server file access to confirm."
+PLG_SYSTEM_MOKOWAAS_ACTION_EMERGENCY_LOGIN="Emergency access login by {username} from {ip}"
+
PLG_SYSTEM_MOKOWAAS_ALLOWED_IPS_NOTE_LABEL="IP Whitelist"
PLG_SYSTEM_MOKOWAAS_ALLOWED_IPS_NOTE_DESC="Emergency access requires an IP whitelist. Set public $mokowaas_allowed_ips = '1.2.3.4,5.6.7.8'; in configuration.php. Emergency access is BLOCKED if no IPs are configured."
diff --git a/src/language/en-US/plg_system_mokowaas.ini b/src/language/en-US/plg_system_mokowaas.ini
index 33bf51a6..201bbdff 100644
--- a/src/language/en-US/plg_system_mokowaas.ini
+++ b/src/language/en-US/plg_system_mokowaas.ini
@@ -42,6 +42,8 @@ PLG_SYSTEM_MOKOWAAS_MASTER_EMAIL_DESC="Email address for the master super admin
PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_LABEL="Emergency Access"
PLG_SYSTEM_MOKOWAAS_EMERGENCY_ACCESS_DESC="Allow login using database credentials as a two-factor emergency access method. Requires server file access to confirm."
+PLG_SYSTEM_MOKOWAAS_ACTION_EMERGENCY_LOGIN="Emergency access login by {username} from {ip}"
+
PLG_SYSTEM_MOKOWAAS_ALLOWED_IPS_NOTE_LABEL="IP Whitelist"
PLG_SYSTEM_MOKOWAAS_ALLOWED_IPS_NOTE_DESC="Emergency access requires an IP whitelist. Set public $mokowaas_allowed_ips = '1.2.3.4,5.6.7.8'; in configuration.php. Emergency access is BLOCKED if no IPs are configured."