strapi-plugin-magic-sessionmanager 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/admin/src/components/LicenseGuard.jsx +6 -6
- package/admin/src/components/OnlineUsersWidget.jsx +11 -7
- package/admin/src/components/SessionDetailModal.jsx +45 -41
- package/admin/src/components/SessionInfoCard.jsx +3 -3
- package/admin/src/components/SessionInfoPanel.jsx +31 -21
- package/admin/src/index.js +9 -0
- package/admin/src/pages/Analytics.jsx +2 -2
- package/admin/src/pages/HomePage.jsx +129 -165
- package/admin/src/pages/License.jsx +5 -5
- package/admin/src/pages/Settings.jsx +148 -144
- package/admin/src/pages/SettingsNew.jsx +21 -21
- package/admin/src/pages/UpgradePage.jsx +448 -0
- package/admin/src/pluginId.js +1 -0
- package/admin/src/translations/de.json +294 -15
- package/admin/src/translations/en.json +293 -14
- package/admin/src/translations/es.json +284 -18
- package/admin/src/translations/fr.json +284 -18
- package/admin/src/translations/pt.json +284 -18
- package/admin/src/utils/parseUserAgent.js +6 -6
- package/admin/src/utils/theme.js +85 -0
- package/dist/_chunks/{Analytics-mYu_uGwU.mjs → Analytics-DTE_zmRV.mjs} +4 -4
- package/dist/_chunks/{Analytics-ioaeEh-E.js → Analytics-lw_JaOVy.js} +4 -4
- package/dist/_chunks/{App-DdnUYWbC.js → App-DDKYCjKw.js} +221 -216
- package/dist/_chunks/{App-BXpIS12l.mjs → App-DJW1ZNl5.mjs} +221 -216
- package/dist/_chunks/{License-C03C2j9P.mjs → License-DaOFuImm.mjs} +6 -10
- package/dist/_chunks/{License-DZYrOgcx.js → License-Tk-6UfPl.js} +6 -10
- package/dist/_chunks/{OnlineUsersWidget-B8JS1xZu.js → OnlineUsersWidget-C1qTpsws.js} +11 -7
- package/dist/_chunks/{OnlineUsersWidget-ArMl0nen.mjs → OnlineUsersWidget-CADphbXG.mjs} +11 -7
- package/dist/_chunks/{Settings-0ocB3qHk.mjs → Settings-C9xvckgq.mjs} +200 -188
- package/dist/_chunks/{Settings-C6_CqpCC.js → Settings-DyEAuTNQ.js} +200 -188
- package/dist/_chunks/UpgradePage-Dssk8A0Z.js +354 -0
- package/dist/_chunks/UpgradePage-cINvE9zY.mjs +352 -0
- package/dist/_chunks/de-CDA1V0rF.mjs +292 -0
- package/dist/_chunks/de-I-Q-pWqu.js +292 -0
- package/dist/_chunks/en-Bd7_h-4e.js +292 -0
- package/dist/_chunks/en-DzmOCyzQ.mjs +292 -0
- package/dist/_chunks/es-BcAx18XG.js +277 -0
- package/dist/_chunks/es-Cx-SN6qV.mjs +277 -0
- package/dist/_chunks/fr-DCzYMuJ-.js +277 -0
- package/dist/_chunks/fr-DXlXE5Eo.mjs +277 -0
- package/dist/_chunks/{index-DC8Y0qxx.js → index-CWcvrfXc.js} +52 -49
- package/dist/_chunks/{index-DBRS3kt5.mjs → index-DQO9bNP7.mjs} +52 -49
- package/dist/_chunks/pt-21-MAb72.js +277 -0
- package/dist/_chunks/pt-zsdTSjba.mjs +277 -0
- package/dist/_chunks/{useLicense-qgGfMvse.js → useLicense-DtvJOszr.js} +1 -1
- package/dist/_chunks/{useLicense-DSLL9n3Y.mjs → useLicense-DxbD4Wf8.mjs} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +142 -33
- package/dist/server/index.mjs +142 -33
- package/package.json +1 -1
- package/server/src/bootstrap.js +76 -4
- package/server/src/controllers/session.js +59 -9
- package/server/src/middlewares/last-seen.js +5 -4
- package/server/src/routes/content-api.js +11 -2
- package/server/src/services/notifications.js +10 -10
- package/server/src/services/session.js +24 -4
- package/dist/_chunks/de-BxFx1pwE.js +0 -23
- package/dist/_chunks/de-CdO3s01z.mjs +0 -23
- package/dist/_chunks/en-CsPpPJL3.mjs +0 -23
- package/dist/_chunks/en-RqmpDHdS.js +0 -23
- package/dist/_chunks/es-CuLHazN1.js +0 -23
- package/dist/_chunks/es-Dkmjhy9c.mjs +0 -23
- package/dist/_chunks/fr-BAJp2yhI.js +0 -23
- package/dist/_chunks/fr-Bssg_3UF.mjs +0 -23
- package/dist/_chunks/pt-BAP9cKs3.js +0 -23
- package/dist/_chunks/pt-BVNoNcuY.mjs +0 -23
|
@@ -37,12 +37,12 @@ module.exports = ({ strapi }) => ({
|
|
|
37
37
|
strapi.log.debug('[magic-sessionmanager/notifications] Using default fallback templates');
|
|
38
38
|
return {
|
|
39
39
|
suspiciousLogin: {
|
|
40
|
-
subject: '
|
|
40
|
+
subject: '[ALERT] Suspicious Login Alert - Session Manager',
|
|
41
41
|
html: `
|
|
42
42
|
<html>
|
|
43
43
|
<body style="font-family: Arial, sans-serif; line-height: 1.6; color: #333;">
|
|
44
44
|
<div style="max-width: 600px; margin: 0 auto; padding: 20px; background-color: #f9fafb; border-radius: 10px;">
|
|
45
|
-
<h2 style="color: #dc2626;"
|
|
45
|
+
<h2 style="color: #dc2626;">[ALERT] Suspicious Login Detected</h2>
|
|
46
46
|
<p>A potentially suspicious login was detected for your account.</p>
|
|
47
47
|
|
|
48
48
|
<div style="background: white; padding: 15px; border-radius: 8px; margin: 20px 0;">
|
|
@@ -77,7 +77,7 @@ module.exports = ({ strapi }) => ({
|
|
|
77
77
|
</div>
|
|
78
78
|
</body>
|
|
79
79
|
</html>`,
|
|
80
|
-
text:
|
|
80
|
+
text: `[ALERT] Suspicious Login Detected\n\nA potentially suspicious login was detected for your account.\n\nAccount: {{user.email}}\nUsername: {{user.username}}\n\nLogin Details:\n- Time: {{session.loginTime}}\n- IP: {{session.ipAddress}}\n- Location: {{geo.city}}, {{geo.country}}\n\nSecurity: VPN={{reason.isVpn}}, Proxy={{reason.isProxy}}, Threat={{reason.isThreat}}, Score={{reason.securityScore}}/100`,
|
|
81
81
|
},
|
|
82
82
|
newLocation: {
|
|
83
83
|
subject: '[LOCATION] New Location Login Detected',
|
|
@@ -262,9 +262,9 @@ module.exports = ({ strapi }) => ({
|
|
|
262
262
|
title: this.getEventTitle(event),
|
|
263
263
|
color: this.getEventColor(event),
|
|
264
264
|
fields: [
|
|
265
|
-
{ name: '
|
|
266
|
-
{ name: '
|
|
267
|
-
{ name: '
|
|
265
|
+
{ name: 'User', value: `${user.email}\n${user.username || 'N/A'}`, inline: true },
|
|
266
|
+
{ name: 'IP', value: session.ipAddress, inline: true },
|
|
267
|
+
{ name: 'Time', value: new Date(session.loginTime).toLocaleString(), inline: false },
|
|
268
268
|
],
|
|
269
269
|
timestamp: new Date().toISOString(),
|
|
270
270
|
footer: { text: 'Magic Session Manager' },
|
|
@@ -296,11 +296,11 @@ module.exports = ({ strapi }) => ({
|
|
|
296
296
|
|
|
297
297
|
getEventTitle(event) {
|
|
298
298
|
const titles = {
|
|
299
|
-
'login.suspicious': '
|
|
299
|
+
'login.suspicious': '[ALERT] Suspicious Login',
|
|
300
300
|
'login.new_location': '[LOCATION] New Location Login',
|
|
301
|
-
'login.vpn': '
|
|
302
|
-
'login.threat': '
|
|
303
|
-
'session.terminated': '
|
|
301
|
+
'login.vpn': '[WARNING] VPN Login Detected',
|
|
302
|
+
'login.threat': '[THREAT] Threat IP Login',
|
|
303
|
+
'session.terminated': '[INFO] Session Terminated',
|
|
304
304
|
};
|
|
305
305
|
return titles[event] || '[STATS] Session Event';
|
|
306
306
|
},
|
|
@@ -63,6 +63,7 @@ module.exports = ({ strapi }) => ({
|
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* Terminate a session or all sessions for a user
|
|
66
|
+
* Supports both numeric id (legacy) and documentId (Strapi v5)
|
|
66
67
|
* @param {Object} params - { sessionId | userId }
|
|
67
68
|
* @returns {Promise<void>}
|
|
68
69
|
*/
|
|
@@ -82,10 +83,19 @@ module.exports = ({ strapi }) => ({
|
|
|
82
83
|
|
|
83
84
|
strapi.log.info(`[magic-sessionmanager] Session ${sessionId} terminated`);
|
|
84
85
|
} else if (userId) {
|
|
86
|
+
// Strapi v5: If numeric id provided, look up documentId first
|
|
87
|
+
let userDocumentId = userId;
|
|
88
|
+
if (!isNaN(userId)) {
|
|
89
|
+
const user = await strapi.entityService.findOne(USER_UID, parseInt(userId, 10));
|
|
90
|
+
if (user) {
|
|
91
|
+
userDocumentId = user.documentId;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
85
95
|
// Find all active sessions for user - use Deep Filtering (Strapi v5)
|
|
86
96
|
const activeSessions = await strapi.documents(SESSION_UID).findMany({
|
|
87
97
|
filters: {
|
|
88
|
-
user: { documentId:
|
|
98
|
+
user: { documentId: userDocumentId }, // Deep filtering syntax
|
|
89
99
|
isActive: true,
|
|
90
100
|
},
|
|
91
101
|
});
|
|
@@ -101,7 +111,7 @@ module.exports = ({ strapi }) => ({
|
|
|
101
111
|
});
|
|
102
112
|
}
|
|
103
113
|
|
|
104
|
-
strapi.log.info(`[magic-sessionmanager] All sessions terminated for user ${
|
|
114
|
+
strapi.log.info(`[magic-sessionmanager] All sessions terminated for user ${userDocumentId}`);
|
|
105
115
|
}
|
|
106
116
|
} catch (err) {
|
|
107
117
|
strapi.log.error('[magic-sessionmanager] Error terminating session:', err);
|
|
@@ -196,13 +206,23 @@ module.exports = ({ strapi }) => ({
|
|
|
196
206
|
|
|
197
207
|
/**
|
|
198
208
|
* Get all sessions for a specific user
|
|
199
|
-
*
|
|
209
|
+
* Supports both numeric id (legacy) and documentId (Strapi v5)
|
|
210
|
+
* @param {string|number} userId - User documentId or numeric id
|
|
200
211
|
* @returns {Promise<Array>} User's sessions with accurate online status
|
|
201
212
|
*/
|
|
202
213
|
async getUserSessions(userId) {
|
|
203
214
|
try {
|
|
215
|
+
// Strapi v5: If numeric id provided, look up documentId first
|
|
216
|
+
let userDocumentId = userId;
|
|
217
|
+
if (!isNaN(userId)) {
|
|
218
|
+
const user = await strapi.entityService.findOne(USER_UID, parseInt(userId, 10));
|
|
219
|
+
if (user) {
|
|
220
|
+
userDocumentId = user.documentId;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
204
224
|
const sessions = await strapi.documents(SESSION_UID).findMany( {
|
|
205
|
-
filters: { user: { documentId:
|
|
225
|
+
filters: { user: { documentId: userDocumentId } },
|
|
206
226
|
sort: { loginTime: 'desc' },
|
|
207
227
|
});
|
|
208
228
|
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const de = {
|
|
4
|
-
"plugin.name": "Session Manager",
|
|
5
|
-
"plugin.description": "Verfolgung von Benutzer-Login/Logout und Sitzungsaktivität",
|
|
6
|
-
"settings.section": "Session Manager",
|
|
7
|
-
"settings.sessions": "Aktive Sitzungen",
|
|
8
|
-
"settings.emailTemplates.title": "E-Mail Templates",
|
|
9
|
-
"settings.emailTemplates.description": "Passe E-Mail-Benachrichtigungen mit dynamischen Variablen an",
|
|
10
|
-
"settings.emailTemplates.validate": "Validieren",
|
|
11
|
-
"settings.emailTemplates.loadDefault": "Standard-Template laden",
|
|
12
|
-
"settings.emailTemplates.subject": "E-Mail Betreff",
|
|
13
|
-
"settings.emailTemplates.htmlTemplate": "HTML Template",
|
|
14
|
-
"settings.emailTemplates.textTemplate": "Text Template (Fallback)",
|
|
15
|
-
"settings.emailTemplates.variables": "Verfügbare Variablen (klicken zum Kopieren)",
|
|
16
|
-
"settings.emailTemplates.validation.success": "Template gültig! {count} Variablen gefunden.",
|
|
17
|
-
"settings.emailTemplates.validation.warning": "Keine Variablen im Template gefunden. Füge mindestens eine Variable hinzu.",
|
|
18
|
-
"settings.emailTemplates.defaultLoaded": "Standard-Template geladen!",
|
|
19
|
-
"settings.emailTemplates.suspiciousLogin": "Verdächtiger Login",
|
|
20
|
-
"settings.emailTemplates.newLocation": "Neuer Standort",
|
|
21
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
22
|
-
};
|
|
23
|
-
exports.default = de;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const de = {
|
|
2
|
-
"plugin.name": "Session Manager",
|
|
3
|
-
"plugin.description": "Verfolgung von Benutzer-Login/Logout und Sitzungsaktivität",
|
|
4
|
-
"settings.section": "Session Manager",
|
|
5
|
-
"settings.sessions": "Aktive Sitzungen",
|
|
6
|
-
"settings.emailTemplates.title": "E-Mail Templates",
|
|
7
|
-
"settings.emailTemplates.description": "Passe E-Mail-Benachrichtigungen mit dynamischen Variablen an",
|
|
8
|
-
"settings.emailTemplates.validate": "Validieren",
|
|
9
|
-
"settings.emailTemplates.loadDefault": "Standard-Template laden",
|
|
10
|
-
"settings.emailTemplates.subject": "E-Mail Betreff",
|
|
11
|
-
"settings.emailTemplates.htmlTemplate": "HTML Template",
|
|
12
|
-
"settings.emailTemplates.textTemplate": "Text Template (Fallback)",
|
|
13
|
-
"settings.emailTemplates.variables": "Verfügbare Variablen (klicken zum Kopieren)",
|
|
14
|
-
"settings.emailTemplates.validation.success": "Template gültig! {count} Variablen gefunden.",
|
|
15
|
-
"settings.emailTemplates.validation.warning": "Keine Variablen im Template gefunden. Füge mindestens eine Variable hinzu.",
|
|
16
|
-
"settings.emailTemplates.defaultLoaded": "Standard-Template geladen!",
|
|
17
|
-
"settings.emailTemplates.suspiciousLogin": "Verdächtiger Login",
|
|
18
|
-
"settings.emailTemplates.newLocation": "Neuer Standort",
|
|
19
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
de as default
|
|
23
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const en = {
|
|
2
|
-
"plugin.name": "Session Manager",
|
|
3
|
-
"plugin.description": "Track user login/logout and session activity",
|
|
4
|
-
"settings.section": "Session Manager",
|
|
5
|
-
"settings.sessions": "Active Sessions",
|
|
6
|
-
"settings.emailTemplates.title": "Email Templates",
|
|
7
|
-
"settings.emailTemplates.description": "Customize email notification templates with dynamic variables",
|
|
8
|
-
"settings.emailTemplates.validate": "Validate",
|
|
9
|
-
"settings.emailTemplates.loadDefault": "Load Default Template",
|
|
10
|
-
"settings.emailTemplates.subject": "Email Subject",
|
|
11
|
-
"settings.emailTemplates.htmlTemplate": "HTML Template",
|
|
12
|
-
"settings.emailTemplates.textTemplate": "Text Template (Fallback)",
|
|
13
|
-
"settings.emailTemplates.variables": "Available Variables (click to copy)",
|
|
14
|
-
"settings.emailTemplates.validation.success": "Template valid! Found {count} variables.",
|
|
15
|
-
"settings.emailTemplates.validation.warning": "No variables found in template. Add at least one variable.",
|
|
16
|
-
"settings.emailTemplates.defaultLoaded": "Default template loaded!",
|
|
17
|
-
"settings.emailTemplates.suspiciousLogin": "Suspicious Login",
|
|
18
|
-
"settings.emailTemplates.newLocation": "New Location",
|
|
19
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
en as default
|
|
23
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const en = {
|
|
4
|
-
"plugin.name": "Session Manager",
|
|
5
|
-
"plugin.description": "Track user login/logout and session activity",
|
|
6
|
-
"settings.section": "Session Manager",
|
|
7
|
-
"settings.sessions": "Active Sessions",
|
|
8
|
-
"settings.emailTemplates.title": "Email Templates",
|
|
9
|
-
"settings.emailTemplates.description": "Customize email notification templates with dynamic variables",
|
|
10
|
-
"settings.emailTemplates.validate": "Validate",
|
|
11
|
-
"settings.emailTemplates.loadDefault": "Load Default Template",
|
|
12
|
-
"settings.emailTemplates.subject": "Email Subject",
|
|
13
|
-
"settings.emailTemplates.htmlTemplate": "HTML Template",
|
|
14
|
-
"settings.emailTemplates.textTemplate": "Text Template (Fallback)",
|
|
15
|
-
"settings.emailTemplates.variables": "Available Variables (click to copy)",
|
|
16
|
-
"settings.emailTemplates.validation.success": "Template valid! Found {count} variables.",
|
|
17
|
-
"settings.emailTemplates.validation.warning": "No variables found in template. Add at least one variable.",
|
|
18
|
-
"settings.emailTemplates.defaultLoaded": "Default template loaded!",
|
|
19
|
-
"settings.emailTemplates.suspiciousLogin": "Suspicious Login",
|
|
20
|
-
"settings.emailTemplates.newLocation": "New Location",
|
|
21
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
22
|
-
};
|
|
23
|
-
exports.default = en;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const es = {
|
|
4
|
-
"plugin.name": "Gestor de Sesiones",
|
|
5
|
-
"plugin.description": "Seguimiento de inicio/cierre de sesión y actividad de usuarios",
|
|
6
|
-
"settings.section": "Gestor de Sesiones",
|
|
7
|
-
"settings.sessions": "Sesiones Activas",
|
|
8
|
-
"settings.emailTemplates.title": "Plantillas de Correo",
|
|
9
|
-
"settings.emailTemplates.description": "Personalizar plantillas de notificación por correo con variables dinámicas",
|
|
10
|
-
"settings.emailTemplates.validate": "Validar",
|
|
11
|
-
"settings.emailTemplates.loadDefault": "Cargar Plantilla Predeterminada",
|
|
12
|
-
"settings.emailTemplates.subject": "Asunto del Correo",
|
|
13
|
-
"settings.emailTemplates.htmlTemplate": "Plantilla HTML",
|
|
14
|
-
"settings.emailTemplates.textTemplate": "Plantilla de Texto (Respaldo)",
|
|
15
|
-
"settings.emailTemplates.variables": "Variables Disponibles (clic para copiar)",
|
|
16
|
-
"settings.emailTemplates.validation.success": "¡Plantilla válida! Se encontraron {count} variables.",
|
|
17
|
-
"settings.emailTemplates.validation.warning": "No se encontraron variables en la plantilla. Agregue al menos una variable.",
|
|
18
|
-
"settings.emailTemplates.defaultLoaded": "¡Plantilla predeterminada cargada!",
|
|
19
|
-
"settings.emailTemplates.suspiciousLogin": "Inicio de Sesión Sospechoso",
|
|
20
|
-
"settings.emailTemplates.newLocation": "Nueva Ubicación",
|
|
21
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
22
|
-
};
|
|
23
|
-
exports.default = es;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const es = {
|
|
2
|
-
"plugin.name": "Gestor de Sesiones",
|
|
3
|
-
"plugin.description": "Seguimiento de inicio/cierre de sesión y actividad de usuarios",
|
|
4
|
-
"settings.section": "Gestor de Sesiones",
|
|
5
|
-
"settings.sessions": "Sesiones Activas",
|
|
6
|
-
"settings.emailTemplates.title": "Plantillas de Correo",
|
|
7
|
-
"settings.emailTemplates.description": "Personalizar plantillas de notificación por correo con variables dinámicas",
|
|
8
|
-
"settings.emailTemplates.validate": "Validar",
|
|
9
|
-
"settings.emailTemplates.loadDefault": "Cargar Plantilla Predeterminada",
|
|
10
|
-
"settings.emailTemplates.subject": "Asunto del Correo",
|
|
11
|
-
"settings.emailTemplates.htmlTemplate": "Plantilla HTML",
|
|
12
|
-
"settings.emailTemplates.textTemplate": "Plantilla de Texto (Respaldo)",
|
|
13
|
-
"settings.emailTemplates.variables": "Variables Disponibles (clic para copiar)",
|
|
14
|
-
"settings.emailTemplates.validation.success": "¡Plantilla válida! Se encontraron {count} variables.",
|
|
15
|
-
"settings.emailTemplates.validation.warning": "No se encontraron variables en la plantilla. Agregue al menos una variable.",
|
|
16
|
-
"settings.emailTemplates.defaultLoaded": "¡Plantilla predeterminada cargada!",
|
|
17
|
-
"settings.emailTemplates.suspiciousLogin": "Inicio de Sesión Sospechoso",
|
|
18
|
-
"settings.emailTemplates.newLocation": "Nueva Ubicación",
|
|
19
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
es as default
|
|
23
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const fr = {
|
|
4
|
-
"plugin.name": "Gestionnaire de Sessions",
|
|
5
|
-
"plugin.description": "Suivi des connexions/déconnexions et activité des utilisateurs",
|
|
6
|
-
"settings.section": "Gestionnaire de Sessions",
|
|
7
|
-
"settings.sessions": "Sessions Actives",
|
|
8
|
-
"settings.emailTemplates.title": "Modèles d'Email",
|
|
9
|
-
"settings.emailTemplates.description": "Personnaliser les modèles de notification par email avec des variables dynamiques",
|
|
10
|
-
"settings.emailTemplates.validate": "Valider",
|
|
11
|
-
"settings.emailTemplates.loadDefault": "Charger le Modèle par Défaut",
|
|
12
|
-
"settings.emailTemplates.subject": "Objet de l'Email",
|
|
13
|
-
"settings.emailTemplates.htmlTemplate": "Modèle HTML",
|
|
14
|
-
"settings.emailTemplates.textTemplate": "Modèle Texte (Secours)",
|
|
15
|
-
"settings.emailTemplates.variables": "Variables Disponibles (cliquez pour copier)",
|
|
16
|
-
"settings.emailTemplates.validation.success": "Modèle valide! {count} variables trouvées.",
|
|
17
|
-
"settings.emailTemplates.validation.warning": "Aucune variable trouvée dans le modèle. Ajoutez au moins une variable.",
|
|
18
|
-
"settings.emailTemplates.defaultLoaded": "Modèle par défaut chargé!",
|
|
19
|
-
"settings.emailTemplates.suspiciousLogin": "Connexion Suspecte",
|
|
20
|
-
"settings.emailTemplates.newLocation": "Nouvelle Localisation",
|
|
21
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
22
|
-
};
|
|
23
|
-
exports.default = fr;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const fr = {
|
|
2
|
-
"plugin.name": "Gestionnaire de Sessions",
|
|
3
|
-
"plugin.description": "Suivi des connexions/déconnexions et activité des utilisateurs",
|
|
4
|
-
"settings.section": "Gestionnaire de Sessions",
|
|
5
|
-
"settings.sessions": "Sessions Actives",
|
|
6
|
-
"settings.emailTemplates.title": "Modèles d'Email",
|
|
7
|
-
"settings.emailTemplates.description": "Personnaliser les modèles de notification par email avec des variables dynamiques",
|
|
8
|
-
"settings.emailTemplates.validate": "Valider",
|
|
9
|
-
"settings.emailTemplates.loadDefault": "Charger le Modèle par Défaut",
|
|
10
|
-
"settings.emailTemplates.subject": "Objet de l'Email",
|
|
11
|
-
"settings.emailTemplates.htmlTemplate": "Modèle HTML",
|
|
12
|
-
"settings.emailTemplates.textTemplate": "Modèle Texte (Secours)",
|
|
13
|
-
"settings.emailTemplates.variables": "Variables Disponibles (cliquez pour copier)",
|
|
14
|
-
"settings.emailTemplates.validation.success": "Modèle valide! {count} variables trouvées.",
|
|
15
|
-
"settings.emailTemplates.validation.warning": "Aucune variable trouvée dans le modèle. Ajoutez au moins une variable.",
|
|
16
|
-
"settings.emailTemplates.defaultLoaded": "Modèle par défaut chargé!",
|
|
17
|
-
"settings.emailTemplates.suspiciousLogin": "Connexion Suspecte",
|
|
18
|
-
"settings.emailTemplates.newLocation": "Nouvelle Localisation",
|
|
19
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
fr as default
|
|
23
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const pt = {
|
|
4
|
-
"plugin.name": "Gerenciador de Sessões",
|
|
5
|
-
"plugin.description": "Rastreamento de login/logout e atividade de usuários",
|
|
6
|
-
"settings.section": "Gerenciador de Sessões",
|
|
7
|
-
"settings.sessions": "Sessões Ativas",
|
|
8
|
-
"settings.emailTemplates.title": "Modelos de Email",
|
|
9
|
-
"settings.emailTemplates.description": "Personalizar modelos de notificação por email com variáveis dinâmicas",
|
|
10
|
-
"settings.emailTemplates.validate": "Validar",
|
|
11
|
-
"settings.emailTemplates.loadDefault": "Carregar Modelo Padrão",
|
|
12
|
-
"settings.emailTemplates.subject": "Assunto do Email",
|
|
13
|
-
"settings.emailTemplates.htmlTemplate": "Modelo HTML",
|
|
14
|
-
"settings.emailTemplates.textTemplate": "Modelo de Texto (Reserva)",
|
|
15
|
-
"settings.emailTemplates.variables": "Variáveis Disponíveis (clique para copiar)",
|
|
16
|
-
"settings.emailTemplates.validation.success": "Modelo válido! {count} variáveis encontradas.",
|
|
17
|
-
"settings.emailTemplates.validation.warning": "Nenhuma variável encontrada no modelo. Adicione pelo menos uma variável.",
|
|
18
|
-
"settings.emailTemplates.defaultLoaded": "Modelo padrão carregado!",
|
|
19
|
-
"settings.emailTemplates.suspiciousLogin": "Login Suspeito",
|
|
20
|
-
"settings.emailTemplates.newLocation": "Nova Localização",
|
|
21
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
22
|
-
};
|
|
23
|
-
exports.default = pt;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const pt = {
|
|
2
|
-
"plugin.name": "Gerenciador de Sessões",
|
|
3
|
-
"plugin.description": "Rastreamento de login/logout e atividade de usuários",
|
|
4
|
-
"settings.section": "Gerenciador de Sessões",
|
|
5
|
-
"settings.sessions": "Sessões Ativas",
|
|
6
|
-
"settings.emailTemplates.title": "Modelos de Email",
|
|
7
|
-
"settings.emailTemplates.description": "Personalizar modelos de notificação por email com variáveis dinâmicas",
|
|
8
|
-
"settings.emailTemplates.validate": "Validar",
|
|
9
|
-
"settings.emailTemplates.loadDefault": "Carregar Modelo Padrão",
|
|
10
|
-
"settings.emailTemplates.subject": "Assunto do Email",
|
|
11
|
-
"settings.emailTemplates.htmlTemplate": "Modelo HTML",
|
|
12
|
-
"settings.emailTemplates.textTemplate": "Modelo de Texto (Reserva)",
|
|
13
|
-
"settings.emailTemplates.variables": "Variáveis Disponíveis (clique para copiar)",
|
|
14
|
-
"settings.emailTemplates.validation.success": "Modelo válido! {count} variáveis encontradas.",
|
|
15
|
-
"settings.emailTemplates.validation.warning": "Nenhuma variável encontrada no modelo. Adicione pelo menos uma variável.",
|
|
16
|
-
"settings.emailTemplates.defaultLoaded": "Modelo padrão carregado!",
|
|
17
|
-
"settings.emailTemplates.suspiciousLogin": "Login Suspeito",
|
|
18
|
-
"settings.emailTemplates.newLocation": "Nova Localização",
|
|
19
|
-
"settings.emailTemplates.vpnProxy": "VPN/Proxy"
|
|
20
|
-
};
|
|
21
|
-
export {
|
|
22
|
-
pt as default
|
|
23
|
-
};
|