strapi-identity 0.1.2 → 0.3.0
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 -1
- package/dist/admin/{AdminReset-H453s-DE.mjs → AdminReset-CCGgw-0k.mjs} +2 -2
- package/dist/admin/{AdminReset-C0QibZXW.js → AdminReset-QClQP2Il.js} +2 -2
- package/dist/admin/{ProfileToggle-BFmIWCrN.js → ProfileToggle-H31GHNDA.js} +299 -39
- package/dist/admin/{ProfileToggle-DQeXCx34.mjs → ProfileToggle-gPuH6dGP.mjs} +299 -39
- package/dist/admin/{SettingsPage-OwMik_IK.mjs → SettingsPage-DgPikS3m.mjs} +344 -102
- package/dist/admin/{SettingsPage-DyF7YbsX.js → SettingsPage-DulEjadb.js} +343 -101
- package/dist/admin/{ar-i2eiMZkz.js → ar-BYnI7Tsa.js} +36 -23
- package/dist/admin/{ar-BXaam37U.mjs → ar-DwZqj0qM.mjs} +36 -23
- package/dist/admin/{ca-DZ9DbEcQ.mjs → ca-aKVVc8iQ.mjs} +36 -23
- package/dist/admin/{ca-BVpGzY8r.js → ca-sBRHuaFU.js} +36 -23
- package/dist/admin/{cs-Gok16KLy.mjs → cs--prflMHS.mjs} +36 -23
- package/dist/admin/{cs-_PZVkwt0.js → cs-gU7KP3Lx.js} +36 -23
- package/dist/admin/de-BT25lv_6.mjs +49 -0
- package/dist/admin/de-CrlCAUuf.js +49 -0
- package/dist/admin/{dk-B7EOsAdU.js → dk-BNC3WUzY.js} +36 -23
- package/dist/admin/{dk-CI64Xmli.mjs → dk-Ck3AQYU7.mjs} +36 -23
- package/dist/admin/{en-B_vJwdfS.mjs → en-9qzlpde0.mjs} +36 -23
- package/dist/admin/{en-D4KP9t1Y.js → en-DBj0AD5g.js} +36 -23
- package/dist/admin/{es-CHwF7YK-.js → es-D5Sn41_H.js} +36 -23
- package/dist/admin/{es-CqJcXo4j.mjs → es-lh6XoPb7.mjs} +36 -23
- package/dist/admin/{eu-D-snytN8.mjs → eu-Cuz6ijBX.mjs} +36 -23
- package/dist/admin/{eu-DvdbwE5E.js → eu-Qr3RvDPW.js} +36 -23
- package/dist/admin/fr-C4pmkPYn.js +49 -0
- package/dist/admin/fr-ChlDcZsG.mjs +49 -0
- package/dist/admin/{gu-3wJbbAmw.mjs → gu-B6zyD1bW.mjs} +36 -23
- package/dist/admin/{gu-D2LgVfMp.js → gu-BMZL76zM.js} +36 -23
- package/dist/admin/{he-Bjv7eygt.mjs → he-C5V-qZCX.mjs} +36 -23
- package/dist/admin/{he-DnhYpbvN.js → he-H6iBa45A.js} +36 -23
- package/dist/admin/{hi-DDD2E3A3.js → hi-Be8rPk7I.js} +36 -23
- package/dist/admin/{hi-CNiDezU7.mjs → hi-czhOWo6-.mjs} +36 -23
- package/dist/admin/{hu-C1_YkZHU.js → hu-DKp6kOmc.js} +36 -23
- package/dist/admin/{hu-aLaIWmGw.mjs → hu-NbZ3aiYV.mjs} +36 -23
- package/dist/admin/{id-u3wVE6Rv.js → id-DO0bwFgY.js} +36 -23
- package/dist/admin/{id-C8WRgGm1.mjs → id-NH9PvcR5.mjs} +36 -23
- package/dist/admin/{index-BXZI8nMZ.js → index-C9K2h5UC.js} +65 -12
- package/dist/admin/{index-D45I6rWF.mjs → index-C_4USMnn.mjs} +65 -12
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/{it-CjoRoJj1.mjs → it-Cmrey6tg.mjs} +36 -23
- package/dist/admin/{it-CDw6dG9Z.js → it-Df6-7-M7.js} +36 -23
- package/dist/admin/{ja-CewucIUY.mjs → ja-DH3KMqOL.mjs} +36 -23
- package/dist/admin/{ja-CbMXy2ym.js → ja-HuAq9ZwT.js} +36 -23
- package/dist/admin/{ko-D-kAxDtd.mjs → ko-DPN28RE8.mjs} +36 -23
- package/dist/admin/{ko-BEtJPpfJ.js → ko-S9k8KA8K.js} +36 -23
- package/dist/admin/{ml-0fR2_MmA.js → ml-Bh9GGqcW.js} +36 -23
- package/dist/admin/{ml-DR3AaofF.mjs → ml-MsHNacm6.mjs} +36 -23
- package/dist/admin/{ms-COHLS5e5.mjs → ms-TjHAaxTd.mjs} +36 -23
- package/dist/admin/{ms-DLvuGSlk.js → ms-hO5YeEg4.js} +36 -23
- package/dist/admin/{nl-wj6kn642.js → nl-BF98NBwL.js} +36 -23
- package/dist/admin/{nl-DVtHsM2H.mjs → nl-BLILZU8-.mjs} +36 -23
- package/dist/admin/{no-D_0yjyCy.mjs → no-BtVZ-siy.mjs} +36 -23
- package/dist/admin/{no-DVBgWt8q.js → no-bl1OXlfa.js} +36 -23
- package/dist/admin/{pl-C3GNxjVX.mjs → pl-DCSB6LwZ.mjs} +36 -23
- package/dist/admin/{pl-B2ghisbC.js → pl-DCnOWIDw.js} +36 -23
- package/dist/admin/{pt-BR-BbKV8YoX.mjs → pt-BR-CeLqmj88.mjs} +36 -23
- package/dist/admin/{pt-BR-CfgNaB1-.js → pt-BR-D2_UrxTp.js} +36 -23
- package/dist/admin/{pt-DKe8rRWa.js → pt-DIu8RT_X.js} +36 -23
- package/dist/admin/{pt-z4K3cCjf.mjs → pt-fgjdOyW5.mjs} +36 -23
- package/dist/admin/{ru-C85izLFa.mjs → ru-B_hlpAyP.mjs} +36 -23
- package/dist/admin/{ru-BFSm68HC.js → ru-BccMCf0l.js} +36 -23
- package/dist/admin/{sa-B1XoTTrE.mjs → sa-BtuJ_I1t.mjs} +36 -23
- package/dist/admin/{sa-BOPaqylt.js → sa-D3A-fo85.js} +36 -23
- package/dist/admin/{sk-C48lUPuC.mjs → sk-mmuTFlCK.mjs} +36 -23
- package/dist/admin/{sk-Dd-S1612.js → sk-uSLC6KhO.js} +36 -23
- package/dist/admin/{sv-BLma_kJl.mjs → sv-BlaHc5ax.mjs} +36 -23
- package/dist/admin/{sv-lg64Cw78.js → sv-CuKk5tE-.js} +36 -23
- package/dist/admin/{th-DPbm5NrX.js → th-Bv3NKkYO.js} +36 -23
- package/dist/admin/{th-BJEu5n7q.mjs → th-BwyhFaeE.mjs} +36 -23
- package/dist/admin/{tokenHelpers-jtoRu0q5.js → tokenHelpers-B54WRTn1.js} +4 -10
- package/dist/admin/{tokenHelpers-DagDzpso.mjs → tokenHelpers-CKVyT1sz.mjs} +4 -10
- package/dist/admin/{tr-DkIUODKq.mjs → tr-BLocNlbZ.mjs} +36 -23
- package/dist/admin/{tr-Bm1QZr4v.js → tr-Bmvs-Hx-.js} +36 -23
- package/dist/admin/{uk-FARzIGx4.js → uk-BDxn-EZU.js} +36 -23
- package/dist/admin/{uk-D7ArtSe3.mjs → uk-CyZ10xtq.mjs} +36 -23
- package/dist/admin/{vi-DS0yslPP.mjs → vi-Bx_UJ8up.mjs} +36 -23
- package/dist/admin/{vi-Bi9B6eTY.js → vi-F_mqQCme.js} +36 -23
- package/dist/admin/{zh-DkEx28ZA.js → zh-CFZJPG5N.js} +36 -23
- package/dist/admin/{zh-DwCvIPSz.mjs → zh-CjJdRa3l.mjs} +36 -23
- package/dist/admin/{zh-Hans-BwwKCR6_.js → zh-Hans-4BhSwSQw.js} +36 -23
- package/dist/admin/{zh-Hans-DP2xZyda.mjs → zh-Hans-s7G2GUHU.mjs} +36 -23
- package/dist/server/index.js +487 -50
- package/dist/server/index.mjs +487 -50
- package/package.json +5 -4
- package/dist/admin/de-BuYn1AYX.mjs +0 -26
- package/dist/admin/de-GItli7en.js +0 -26
- package/dist/admin/fr-Bt6sS5GX.mjs +0 -26
- package/dist/admin/fr-CbCW6hVD.js +0 -26
|
@@ -6,8 +6,8 @@ const WarningAlert = require("./WarningAlert-DFE5euMk.js");
|
|
|
6
6
|
const admin = require("@strapi/strapi/admin");
|
|
7
7
|
const designSystem = require("@strapi/design-system");
|
|
8
8
|
const icons = require("@strapi/icons");
|
|
9
|
-
const index = require("./index-
|
|
10
|
-
const tokenHelpers = require("./tokenHelpers-
|
|
9
|
+
const index = require("./index-C9K2h5UC.js");
|
|
10
|
+
const tokenHelpers = require("./tokenHelpers-B54WRTn1.js");
|
|
11
11
|
const reactIntl = require("react-intl");
|
|
12
12
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
13
13
|
var lodash$1 = { exports: {} };
|
|
@@ -27,7 +27,7 @@ function requireLodash() {
|
|
|
27
27
|
(function(module2, exports$1) {
|
|
28
28
|
(function() {
|
|
29
29
|
var undefined$1;
|
|
30
|
-
var VERSION = "4.17.
|
|
30
|
+
var VERSION = "4.17.23";
|
|
31
31
|
var LARGE_ARRAY_SIZE = 200;
|
|
32
32
|
var CORE_ERROR_TEXT = "Unsupported core-js use. Try https://npms.io/search?q=ponyfill.", FUNC_ERROR_TEXT = "Expected a function", INVALID_TEMPL_VAR_ERROR_TEXT = "Invalid `variable` option passed into `_.template`";
|
|
33
33
|
var HASH_UNDEFINED = "__lodash_hash_undefined__";
|
|
@@ -1955,8 +1955,28 @@ function requireLodash() {
|
|
|
1955
1955
|
}
|
|
1956
1956
|
function baseUnset(object, path) {
|
|
1957
1957
|
path = castPath(path, object);
|
|
1958
|
-
|
|
1959
|
-
|
|
1958
|
+
var index2 = -1, length = path.length;
|
|
1959
|
+
if (!length) {
|
|
1960
|
+
return true;
|
|
1961
|
+
}
|
|
1962
|
+
var isRootPrimitive = object == null || typeof object !== "object" && typeof object !== "function";
|
|
1963
|
+
while (++index2 < length) {
|
|
1964
|
+
var key = path[index2];
|
|
1965
|
+
if (typeof key !== "string") {
|
|
1966
|
+
continue;
|
|
1967
|
+
}
|
|
1968
|
+
if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) {
|
|
1969
|
+
return false;
|
|
1970
|
+
}
|
|
1971
|
+
if (key === "constructor" && index2 + 1 < length && typeof path[index2 + 1] === "string" && path[index2 + 1] === "prototype") {
|
|
1972
|
+
if (isRootPrimitive && index2 === 0) {
|
|
1973
|
+
continue;
|
|
1974
|
+
}
|
|
1975
|
+
return false;
|
|
1976
|
+
}
|
|
1977
|
+
}
|
|
1978
|
+
var obj = parent(object, path);
|
|
1979
|
+
return obj == null || delete obj[toKey(last(path))];
|
|
1960
1980
|
}
|
|
1961
1981
|
function baseUpdate(object, path, updater, customizer) {
|
|
1962
1982
|
return baseSet(object, path, updater(baseGet(object, path)), customizer);
|
|
@@ -5498,12 +5518,76 @@ function requireLodash() {
|
|
|
5498
5518
|
return lodash$1.exports;
|
|
5499
5519
|
}
|
|
5500
5520
|
var lodashExports = requireLodash();
|
|
5501
|
-
const defaultConfig = {
|
|
5521
|
+
const defaultConfig = {
|
|
5522
|
+
enabled: false,
|
|
5523
|
+
enforce: false,
|
|
5524
|
+
issuer: "Strapi",
|
|
5525
|
+
email_enabled: false,
|
|
5526
|
+
from_email: "",
|
|
5527
|
+
from_name: "",
|
|
5528
|
+
response_email: "",
|
|
5529
|
+
subject: "Your One-Time Password",
|
|
5530
|
+
text: "Your one-time password is: <%= OTP %>",
|
|
5531
|
+
message: `<div style="margin: 0; padding: 0;">
|
|
5532
|
+
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#f9f9f9">
|
|
5533
|
+
<tr>
|
|
5534
|
+
<td align="center" style="padding: 40px 10px;">
|
|
5535
|
+
<table border="0" cellpadding="0" cellspacing="0" width="600" bgcolor="#ffffff" style="border: 1px solid #dddddd;">
|
|
5536
|
+
<tr>
|
|
5537
|
+
<td align="center" style="padding: 40px 40px 20px 40px;">
|
|
5538
|
+
<font face="Arial, sans-serif" size="5" color="#333333">
|
|
5539
|
+
<strong>Verify Your Account</strong>
|
|
5540
|
+
</font>
|
|
5541
|
+
</td>
|
|
5542
|
+
</tr>
|
|
5543
|
+
<tr>
|
|
5544
|
+
<td align="center" style="padding: 0 40px 20px 40px;">
|
|
5545
|
+
<font face="Arial, sans-serif" size="3" color="#555555" style="line-height: 24px;">
|
|
5546
|
+
Please use the following one-time password to complete your registration. This code will expire in 10 minutes.
|
|
5547
|
+
</font>
|
|
5548
|
+
</td>
|
|
5549
|
+
</tr>
|
|
5550
|
+
<tr>
|
|
5551
|
+
<td align="center" style="padding: 20px 40px;">
|
|
5552
|
+
<table border="0" cellpadding="0" cellspacing="0">
|
|
5553
|
+
<tr>
|
|
5554
|
+
<td align="center" bgcolor="#f4f4f4" style="padding: 20px 30px; font-family: Courier, monospace; font-size: 36px; color: #2d3436;">
|
|
5555
|
+
<strong><%= OTP %></strong>
|
|
5556
|
+
</td>
|
|
5557
|
+
</tr>
|
|
5558
|
+
</table>
|
|
5559
|
+
</td>
|
|
5560
|
+
</tr>
|
|
5561
|
+
<tr>
|
|
5562
|
+
<td align="center" style="padding: 20px 40px 40px 40px;">
|
|
5563
|
+
<font face="Arial, sans-serif" size="2" color="#888888">
|
|
5564
|
+
If you did not request this code, please ignore this email.
|
|
5565
|
+
</font>
|
|
5566
|
+
</td>
|
|
5567
|
+
</tr>
|
|
5568
|
+
</table>
|
|
5569
|
+
<table border="0" cellpadding="0" cellspacing="0" width="600">
|
|
5570
|
+
<tr>
|
|
5571
|
+
<td align="center" style="padding: 20px;">
|
|
5572
|
+
<font face="Arial, sans-serif" size="1" color="#aaaaaa">
|
|
5573
|
+
© <%= YEAR %> Your Company Name
|
|
5574
|
+
</font>
|
|
5575
|
+
</td>
|
|
5576
|
+
</tr>
|
|
5577
|
+
</table>
|
|
5578
|
+
</td>
|
|
5579
|
+
</tr>
|
|
5580
|
+
</table>
|
|
5581
|
+
</div>`
|
|
5582
|
+
};
|
|
5502
5583
|
const getConfigFromForm = (formData) => {
|
|
5503
5584
|
return Array.from(formData.entries()).reduce(
|
|
5504
5585
|
(acc, [key, value]) => {
|
|
5505
|
-
if (key === "enabled" || key === "enforce"
|
|
5506
|
-
|
|
5586
|
+
if (key === "enabled" || key === "enforce" || key === "email_enabled") {
|
|
5587
|
+
acc[key] = value === "on";
|
|
5588
|
+
} else {
|
|
5589
|
+
acc[key] = String(value);
|
|
5590
|
+
}
|
|
5507
5591
|
return acc;
|
|
5508
5592
|
},
|
|
5509
5593
|
Object.assign({}, defaultConfig)
|
|
@@ -5514,22 +5598,30 @@ function SettingsPage() {
|
|
|
5514
5598
|
const { formatMessage } = reactIntl.useIntl();
|
|
5515
5599
|
const { toggleNotification } = admin.useNotification();
|
|
5516
5600
|
const [showWarning, setShowWarning] = React.useState(false);
|
|
5601
|
+
const [showEmailWarning, setShowEmailWarning] = React.useState(false);
|
|
5517
5602
|
const [canSave, setCanSave] = React.useState(false);
|
|
5518
5603
|
const [isSaving, setSaving] = React.useState(false);
|
|
5519
5604
|
const [isLoading, setLoading] = React.useState(true);
|
|
5520
5605
|
const [initialConfig, setInitialConfig] = React.useState(null);
|
|
5521
5606
|
const [enabled, setEnabled] = React.useState(false);
|
|
5607
|
+
const [emailEnabled, setEmailEnabled] = React.useState(false);
|
|
5522
5608
|
const [enforce, setEnforce] = React.useState(false);
|
|
5523
5609
|
const handleSubmit = async (event, confirmed) => {
|
|
5524
5610
|
event?.preventDefault?.();
|
|
5525
5611
|
setSaving(true);
|
|
5526
5612
|
const formData = new FormData(event.currentTarget);
|
|
5527
5613
|
const values = getConfigFromForm(formData);
|
|
5614
|
+
console.log(formData, values);
|
|
5528
5615
|
if (initialConfig?.enabled && !values.enabled && !confirmed) {
|
|
5529
5616
|
setShowWarning(true);
|
|
5530
5617
|
setSaving(false);
|
|
5531
5618
|
return;
|
|
5532
5619
|
}
|
|
5620
|
+
if (initialConfig?.email_enabled && !values.email_enabled && !confirmed) {
|
|
5621
|
+
setShowEmailWarning(true);
|
|
5622
|
+
setSaving(false);
|
|
5623
|
+
return;
|
|
5624
|
+
}
|
|
5533
5625
|
try {
|
|
5534
5626
|
const token = tokenHelpers.getToken();
|
|
5535
5627
|
const response = await fetch("/strapi-identity/config", {
|
|
@@ -5571,7 +5663,7 @@ function SettingsPage() {
|
|
|
5571
5663
|
(async () => {
|
|
5572
5664
|
try {
|
|
5573
5665
|
const response = await fetch("/strapi-identity/config", {
|
|
5574
|
-
headers: {
|
|
5666
|
+
headers: { "Content-Type": "application/json", authorization: `Bearer ${token}` },
|
|
5575
5667
|
signal: ac.signal
|
|
5576
5668
|
});
|
|
5577
5669
|
const json = await response.json();
|
|
@@ -5580,6 +5672,7 @@ function SettingsPage() {
|
|
|
5580
5672
|
if (error) throw new Error(error);
|
|
5581
5673
|
setInitialConfig(data);
|
|
5582
5674
|
setEnabled(data.enabled);
|
|
5675
|
+
setEmailEnabled(data.email_enabled);
|
|
5583
5676
|
setEnforce(data.enforce);
|
|
5584
5677
|
} catch (error) {
|
|
5585
5678
|
console.error("Error fetching config:", error);
|
|
@@ -5616,74 +5709,155 @@ function SettingsPage() {
|
|
|
5616
5709
|
primaryAction: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { disabled: !canSave, loading: isSaving, type: "submit", startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}), children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
|
|
5617
5710
|
}
|
|
5618
5711
|
),
|
|
5619
|
-
/* @__PURE__ */ jsxRuntime.jsx(admin.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5712
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", gap: 6, children: /* @__PURE__ */ jsxRuntime.jsx(admin.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
|
|
5713
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5714
|
+
designSystem.Flex,
|
|
5715
|
+
{
|
|
5716
|
+
direction: "column",
|
|
5717
|
+
alignItems: "stretch",
|
|
5718
|
+
gap: 4,
|
|
5719
|
+
hasRadius: true,
|
|
5720
|
+
background: "neutral0",
|
|
5721
|
+
shadow: "tableShadow",
|
|
5722
|
+
paddingTop: 6,
|
|
5723
|
+
paddingBottom: 6,
|
|
5724
|
+
paddingRight: 7,
|
|
5725
|
+
paddingLeft: 7,
|
|
5726
|
+
children: [
|
|
5727
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h2", children: formatMessage({
|
|
5728
|
+
id: index.getTranslation("profile.title"),
|
|
5729
|
+
defaultMessage: "Two-Factor Authentication"
|
|
5730
|
+
}) }) }),
|
|
5731
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 5, tag: "dl", children: [
|
|
5732
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5733
|
+
designSystem.Field.Root,
|
|
5734
|
+
{
|
|
5735
|
+
hint: formatMessage({
|
|
5736
|
+
id: index.getTranslation("settings.enabled_hint"),
|
|
5737
|
+
defaultMessage: "Enable or disable Two-Factor Authentication for all users."
|
|
5738
|
+
}),
|
|
5739
|
+
children: [
|
|
5740
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({ id: "global.enabled", defaultMessage: "Enabled" }) }),
|
|
5741
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5742
|
+
designSystem.Toggle,
|
|
5743
|
+
{
|
|
5744
|
+
name: "enabled",
|
|
5745
|
+
checked: enabled,
|
|
5746
|
+
onChange: ({ target }) => setEnabled(target.checked),
|
|
5747
|
+
offLabel: formatMessage({
|
|
5748
|
+
id: "app.components.ToggleCheckbox.off-label",
|
|
5749
|
+
defaultMessage: "False"
|
|
5750
|
+
}),
|
|
5751
|
+
onLabel: formatMessage({
|
|
5752
|
+
id: "app.components.ToggleCheckbox.on-label",
|
|
5753
|
+
defaultMessage: "True"
|
|
5754
|
+
})
|
|
5755
|
+
}
|
|
5756
|
+
),
|
|
5757
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5758
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5759
|
+
]
|
|
5760
|
+
}
|
|
5761
|
+
) }),
|
|
5762
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5763
|
+
designSystem.Field.Root,
|
|
5764
|
+
{
|
|
5765
|
+
hint: formatMessage({
|
|
5766
|
+
id: index.getTranslation("settings.enforce_hint"),
|
|
5767
|
+
defaultMessage: "Enforce Multi-Factor Authentication for all users. If enabled, users will be required to set up MFA on their next login."
|
|
5768
|
+
}),
|
|
5769
|
+
children: [
|
|
5770
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5771
|
+
id: index.getTranslation("settings.enforce"),
|
|
5772
|
+
defaultMessage: "Enforce MFA"
|
|
5773
|
+
}) }),
|
|
5774
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5775
|
+
designSystem.Toggle,
|
|
5776
|
+
{
|
|
5777
|
+
name: "enforce",
|
|
5778
|
+
disabled: true,
|
|
5779
|
+
checked: enforce,
|
|
5780
|
+
onChange: ({ target }) => setEnforce(target.checked),
|
|
5781
|
+
offLabel: formatMessage({
|
|
5782
|
+
id: "app.components.ToggleCheckbox.off-label",
|
|
5783
|
+
defaultMessage: "False"
|
|
5784
|
+
}),
|
|
5785
|
+
onLabel: formatMessage({
|
|
5786
|
+
id: "app.components.ToggleCheckbox.on-label",
|
|
5787
|
+
defaultMessage: "True"
|
|
5788
|
+
})
|
|
5789
|
+
}
|
|
5790
|
+
),
|
|
5791
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5792
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5793
|
+
]
|
|
5794
|
+
}
|
|
5795
|
+
) }),
|
|
5796
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5797
|
+
designSystem.Field.Root,
|
|
5798
|
+
{
|
|
5799
|
+
hint: formatMessage({
|
|
5800
|
+
id: index.getTranslation("settings.issuer_hint"),
|
|
5801
|
+
defaultMessage: "Displayed in the MFA app"
|
|
5802
|
+
}),
|
|
5803
|
+
children: [
|
|
5804
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5805
|
+
id: index.getTranslation("settings.issuer"),
|
|
5806
|
+
defaultMessage: "Issuer Name"
|
|
5807
|
+
}) }),
|
|
5808
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5809
|
+
designSystem.TextInput,
|
|
5810
|
+
{
|
|
5811
|
+
name: "issuer",
|
|
5812
|
+
defaultValue: initialConfig?.issuer,
|
|
5813
|
+
placeholder: formatMessage({
|
|
5814
|
+
id: index.getTranslation("settings.issuer"),
|
|
5815
|
+
defaultMessage: "Issuer Name"
|
|
5816
|
+
})
|
|
5817
|
+
}
|
|
5818
|
+
),
|
|
5819
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5820
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5821
|
+
]
|
|
5822
|
+
}
|
|
5823
|
+
) })
|
|
5824
|
+
] })
|
|
5825
|
+
]
|
|
5826
|
+
}
|
|
5827
|
+
),
|
|
5828
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5829
|
+
designSystem.Flex,
|
|
5830
|
+
{
|
|
5831
|
+
direction: "column",
|
|
5832
|
+
alignItems: "stretch",
|
|
5833
|
+
gap: 4,
|
|
5834
|
+
hasRadius: true,
|
|
5835
|
+
background: "neutral0",
|
|
5836
|
+
shadow: "tableShadow",
|
|
5837
|
+
paddingTop: 6,
|
|
5838
|
+
paddingBottom: 6,
|
|
5839
|
+
paddingRight: 7,
|
|
5840
|
+
paddingLeft: 7,
|
|
5841
|
+
children: [
|
|
5842
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "delta", tag: "h2", children: formatMessage({
|
|
5843
|
+
id: index.getTranslation("settings.email_title"),
|
|
5844
|
+
defaultMessage: "Email Settings"
|
|
5845
|
+
}) }) }),
|
|
5846
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 5, tag: "dl", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5639
5847
|
designSystem.Field.Root,
|
|
5640
5848
|
{
|
|
5641
5849
|
hint: formatMessage({
|
|
5642
|
-
id: index.getTranslation("settings.
|
|
5643
|
-
defaultMessage: "Enable or disable
|
|
5850
|
+
id: index.getTranslation("settings.email_enabled_hint"),
|
|
5851
|
+
defaultMessage: "Enable or disable Email MFA."
|
|
5644
5852
|
}),
|
|
5645
5853
|
children: [
|
|
5646
5854
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({ id: "global.enabled", defaultMessage: "Enabled" }) }),
|
|
5647
5855
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5648
5856
|
designSystem.Toggle,
|
|
5649
5857
|
{
|
|
5650
|
-
name: "
|
|
5651
|
-
checked:
|
|
5652
|
-
onChange: ({ target }) =>
|
|
5653
|
-
offLabel: formatMessage({
|
|
5654
|
-
id: "app.components.ToggleCheckbox.off-label",
|
|
5655
|
-
defaultMessage: "False"
|
|
5656
|
-
}),
|
|
5657
|
-
onLabel: formatMessage({
|
|
5658
|
-
id: "app.components.ToggleCheckbox.on-label",
|
|
5659
|
-
defaultMessage: "True"
|
|
5660
|
-
})
|
|
5661
|
-
}
|
|
5662
|
-
),
|
|
5663
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5664
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5665
|
-
]
|
|
5666
|
-
}
|
|
5667
|
-
) }),
|
|
5668
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5669
|
-
designSystem.Field.Root,
|
|
5670
|
-
{
|
|
5671
|
-
hint: formatMessage({
|
|
5672
|
-
id: index.getTranslation("settings.enforce_hint"),
|
|
5673
|
-
defaultMessage: "Enforce Multi-Factor Authentication for all users. If enabled, users will be required to set up MFA on their next login."
|
|
5674
|
-
}),
|
|
5675
|
-
children: [
|
|
5676
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5677
|
-
id: index.getTranslation("settings.enforce"),
|
|
5678
|
-
defaultMessage: "Enforce MFA"
|
|
5679
|
-
}) }),
|
|
5680
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5681
|
-
designSystem.Toggle,
|
|
5682
|
-
{
|
|
5683
|
-
name: "enforce",
|
|
5684
|
-
disabled: true,
|
|
5685
|
-
checked: enforce,
|
|
5686
|
-
onChange: ({ target }) => setEnforce(target.checked),
|
|
5858
|
+
name: "email_enabled",
|
|
5859
|
+
checked: emailEnabled,
|
|
5860
|
+
onChange: ({ target }) => setEmailEnabled(target.checked),
|
|
5687
5861
|
offLabel: formatMessage({
|
|
5688
5862
|
id: "app.components.ToggleCheckbox.off-label",
|
|
5689
5863
|
defaultMessage: "False"
|
|
@@ -5698,40 +5872,108 @@ function SettingsPage() {
|
|
|
5698
5872
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5699
5873
|
]
|
|
5700
5874
|
}
|
|
5701
|
-
) }),
|
|
5702
|
-
/* @__PURE__ */ jsxRuntime.
|
|
5703
|
-
designSystem.Field.Root,
|
|
5704
|
-
|
|
5705
|
-
|
|
5706
|
-
|
|
5707
|
-
|
|
5708
|
-
}),
|
|
5709
|
-
|
|
5710
|
-
|
|
5711
|
-
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5720
|
-
|
|
5721
|
-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
|
|
5728
|
-
|
|
5729
|
-
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5875
|
+
) }) }),
|
|
5876
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 5, tag: "dl", children: [
|
|
5877
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5878
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5879
|
+
id: "PopUpForm.Email.options.from.name.label",
|
|
5880
|
+
defaultMessage: "Shipper name"
|
|
5881
|
+
}) }),
|
|
5882
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.TextInput, { name: "from_name", defaultValue: initialConfig?.from_name || "" }),
|
|
5883
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5884
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5885
|
+
] }) }),
|
|
5886
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5887
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5888
|
+
id: "PopUpForm.Email.options.from.email.label",
|
|
5889
|
+
defaultMessage: "Shipper email"
|
|
5890
|
+
}) }),
|
|
5891
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5892
|
+
designSystem.TextInput,
|
|
5893
|
+
{
|
|
5894
|
+
name: "from_email",
|
|
5895
|
+
defaultValue: initialConfig?.from_email || ""
|
|
5896
|
+
}
|
|
5897
|
+
),
|
|
5898
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5899
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5900
|
+
] }) }),
|
|
5901
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5902
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5903
|
+
id: "PopUpForm.Email.options.response_email.label",
|
|
5904
|
+
defaultMessage: "Response email"
|
|
5905
|
+
}) }),
|
|
5906
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5907
|
+
designSystem.TextInput,
|
|
5908
|
+
{
|
|
5909
|
+
name: "response_email",
|
|
5910
|
+
defaultValue: initialConfig?.response_email || ""
|
|
5911
|
+
}
|
|
5912
|
+
),
|
|
5913
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5914
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5915
|
+
] }) }),
|
|
5916
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5917
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5918
|
+
id: "PopUpForm.Email.options.object.label",
|
|
5919
|
+
defaultMessage: "Subject"
|
|
5920
|
+
}) }),
|
|
5921
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.TextInput, { name: "subject", defaultValue: initialConfig?.subject || "" }),
|
|
5922
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5923
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5924
|
+
] }) }),
|
|
5925
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5926
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5927
|
+
id: "settings.accessibility_message",
|
|
5928
|
+
defaultMessage: "Accessibility Message"
|
|
5929
|
+
}) }),
|
|
5930
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.TextInput, { name: "text", defaultValue: initialConfig?.text || "" }),
|
|
5931
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5932
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5933
|
+
] }) }),
|
|
5934
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 12, xs: 12, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { children: [
|
|
5935
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
5936
|
+
id: index.getTranslation("PopUpForm.Email.options.message.label"),
|
|
5937
|
+
defaultMessage: "Message"
|
|
5938
|
+
}) }),
|
|
5939
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5940
|
+
designSystem.Textarea,
|
|
5941
|
+
{
|
|
5942
|
+
name: "message",
|
|
5943
|
+
defaultValue: initialConfig?.message || "",
|
|
5944
|
+
rows: 15
|
|
5945
|
+
}
|
|
5946
|
+
),
|
|
5947
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
5948
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
5949
|
+
] }) })
|
|
5950
|
+
] })
|
|
5951
|
+
]
|
|
5952
|
+
}
|
|
5953
|
+
)
|
|
5954
|
+
] }) }) })
|
|
5734
5955
|
] }) }),
|
|
5956
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5957
|
+
WarningAlert.WarningAlert,
|
|
5958
|
+
{
|
|
5959
|
+
open: showEmailWarning,
|
|
5960
|
+
onCancel: () => setShowEmailWarning(false),
|
|
5961
|
+
onConfirm: () => {
|
|
5962
|
+
setShowEmailWarning(false);
|
|
5963
|
+
formRef.current && handleSubmit({ currentTarget: formRef.current }, true);
|
|
5964
|
+
},
|
|
5965
|
+
children: [
|
|
5966
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", textAlign: "center", children: formatMessage({
|
|
5967
|
+
id: index.getTranslation("settings.email_warning"),
|
|
5968
|
+
defaultMessage: "Turning off Email MFA will disable Email OTP for all users who have it enabled."
|
|
5969
|
+
}) }),
|
|
5970
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textAlign: "center", fontWeight: "semiBold", children: formatMessage({
|
|
5971
|
+
id: index.getTranslation("app.confirm.body"),
|
|
5972
|
+
defaultMessage: "Are you sure?"
|
|
5973
|
+
}) })
|
|
5974
|
+
]
|
|
5975
|
+
}
|
|
5976
|
+
),
|
|
5735
5977
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5736
5978
|
WarningAlert.WarningAlert,
|
|
5737
5979
|
{
|
|
@@ -2,35 +2,48 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const ar = {
|
|
4
4
|
"plugin.name": "Strapi Identity",
|
|
5
|
-
"
|
|
5
|
+
"admin.subtitle": "إعادة تعيين المصادقة الثنائية للمستخدم.",
|
|
6
|
+
"admin.title": "المصادقة الثنائية",
|
|
7
|
+
"admin.warn-title": "إعادة تعيين 2FA لهذا المستخدم؟",
|
|
8
|
+
"admin.warning": "ستسمح إعادة تعيين المصادقة الثنائية للمستخدم بإعدادها مرة أخرى بواسطة جهاز جديد. هذا الإجراء لا يمكن التراجع عنه.",
|
|
9
|
+
"email_otp.confirm_description": "أدخل الرمز المكون من 6 أرقام المرسل إلى {email}.",
|
|
10
|
+
"email_otp.disable_description": "سنرسل رمز تحقق مكوناً من 6 أرقام إلى {email}. أدخله لتعطيل OTP البريد الإلكتروني.",
|
|
11
|
+
"email_otp.disable_title": "تعطيل OTP البريد الإلكتروني",
|
|
12
|
+
"email_otp.resend_code": "إعادة إرسال الرمز",
|
|
13
|
+
"email_otp.send_code": "إرسال بريد إلكتروني للتحقق",
|
|
14
|
+
"email_otp.setup_description": "سنرسل رمز تحقق مكوناً من 6 أرقام إلى {email}. أدخله لتفعيل OTP البريد الإلكتروني.",
|
|
15
|
+
"email_otp.setup_title": "تفعيل OTP البريد الإلكتروني",
|
|
6
16
|
"general.use_recovery_code": "استخدام رمز الاسترداد",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"profile.
|
|
12
|
-
"profile.
|
|
13
|
-
"profile.toggle_label": "تفعيل المصادقة الثنائية",
|
|
14
|
-
"profile.setup": "إعداد المصادقة الثنائية",
|
|
15
|
-
"profile.recovery_codes": "يرجى حفظ رموز الاسترداد التالية في مكان آمن. يمكن استخدام كل رمز مرة واحدة فقط للوصول إلى حسابك إذا فقدت الوصول إلى تطبيق المصادقة الخاص بك.",
|
|
17
|
+
"general.use_verification_code": "استخدام تطبيق المصادقة",
|
|
18
|
+
"profile.disable_instruction": "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة لتعطيل المصادقة الثنائية.",
|
|
19
|
+
"profile.disable_title": "تعطيل المصادقة الثنائية",
|
|
20
|
+
"profile.email_otp_disabled_hint": "قم بتعطيل تطبيق المصادقة أولاً لتفعيل OTP البريد الإلكتروني.",
|
|
21
|
+
"profile.email_otp_label": "تفعيل OTP البريد الإلكتروني",
|
|
22
|
+
"profile.enter_otp": "أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة للتأكيد.",
|
|
16
23
|
"profile.recovery_codes_warning": "إذا فقدت كل من تطبيق المصادقة ورموز الاسترداد، فستحتاج إلى الاتصال بالمسؤول لاستعادة الوصول إلى حسابك.",
|
|
24
|
+
"profile.recovery_codes": "يرجى حفظ رموز الاسترداد التالية في مكان آمن. يمكن استخدام كل رمز مرة واحدة فقط للوصول إلى حسابك إذا فقدت الوصول إلى تطبيق المصادقة الخاص بك.",
|
|
17
25
|
"profile.scan_qr": "ستحتاج إلى تطبيق مصادقة لمسح رمز الاستجابة السريعة أدناه.",
|
|
18
|
-
"profile.
|
|
19
|
-
"profile.
|
|
20
|
-
"profile.
|
|
21
|
-
"
|
|
26
|
+
"profile.setup": "إعداد المصادقة الثنائية",
|
|
27
|
+
"profile.subtitle": "أضف طبقة أمان إضافية إلى حسابك.",
|
|
28
|
+
"profile.title": "المصادقة الثنائية",
|
|
29
|
+
"profile.toggle_label": "تفعيل المصادقة الثنائية",
|
|
30
|
+
"settings.accessibility_message": "رسالة إمكانية الوصول",
|
|
22
31
|
"settings.description": "إعدادات المكون الإضافي Strapi Identity، مما يسمح لك بتكوين خيارات المصادقة وإعدادات الأمان.",
|
|
23
|
-
"settings.enforced_mfa": "MFA المفروضة",
|
|
24
|
-
"settings.name": "Strapi Identity",
|
|
25
32
|
"settings.enabled_hint": "تمكين أو تعطيل المصادقة الثنائية لجميع المستخدمين.",
|
|
26
|
-
"settings.enforce": "فرض المصادقة المتعددة العوامل (MFA)",
|
|
27
33
|
"settings.enforce_hint": "فرض المصادقة المتعددة العوامل لجميع المستخدمين. في حالة التمكين، سيُطلب من المستخدمين إعداد MFA عند تسجيل الدخول التالي.",
|
|
28
|
-
"settings.
|
|
34
|
+
"settings.enforce": "فرض المصادقة المتعددة العوامل (MFA)",
|
|
35
|
+
"settings.enforced_mfa": "MFA المفروضة",
|
|
29
36
|
"settings.issuer_hint": "يتم عرضه في تطبيق MFA",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
37
|
+
"settings.issuer": "اسم المُصدر",
|
|
38
|
+
"settings.name": "Strapi Identity",
|
|
39
|
+
"settings.title": "إعدادات Strapi Identity",
|
|
40
|
+
"settings.warning": "سيؤثر إيقاف تشغيل MFA على جميع المستخدمين. يرجى مراجعة الإعدادات بعناية قبل الحفظ.",
|
|
41
|
+
"verify_page.error": "الرمز غير صالح. يرجى المحاولة مرة أخرى.",
|
|
42
|
+
"verify_page.resend_error": "فشل إعادة إرسال الرمز. يرجى المحاولة مرة أخرى.",
|
|
43
|
+
"verify_page.resend_success": "تم إرسال الرمز!",
|
|
44
|
+
"verify_page.submit": "إرسال الرمز",
|
|
45
|
+
"verify_page.subtitle_email": "أدخل الرمز الذي أرسلناه إلى عنوان بريدك الإلكتروني.",
|
|
46
|
+
"verify_page.subtitle": "أدخل رمز التحقق للمتابعة.",
|
|
47
|
+
"verify_page.title": "تحقق من هويتك"
|
|
35
48
|
};
|
|
36
49
|
exports.default = ar;
|