@strapi/plugin-users-permissions 5.49.0 → 5.50.1

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.
Files changed (64) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/admin/src/pages/AdvancedSettings/index.jsx +1 -1
  3. package/admin/src/pages/Roles/pages/ListPage/index.jsx +1 -1
  4. package/admin/src/translations/ja.json +46 -7
  5. package/dist/admin/pages/AdvancedSettings/index.js +1 -1
  6. package/dist/admin/pages/AdvancedSettings/index.js.map +1 -1
  7. package/dist/admin/pages/AdvancedSettings/index.mjs +1 -1
  8. package/dist/admin/pages/AdvancedSettings/index.mjs.map +1 -1
  9. package/dist/admin/pages/Roles/pages/ListPage/index.js +1 -1
  10. package/dist/admin/pages/Roles/pages/ListPage/index.js.map +1 -1
  11. package/dist/admin/pages/Roles/pages/ListPage/index.mjs +1 -1
  12. package/dist/admin/pages/Roles/pages/ListPage/index.mjs.map +1 -1
  13. package/dist/admin/translations/ja.json.js +46 -7
  14. package/dist/admin/translations/ja.json.js.map +1 -1
  15. package/dist/admin/translations/ja.json.mjs +46 -7
  16. package/dist/admin/translations/ja.json.mjs.map +1 -1
  17. package/dist/server/controllers/auth.js +133 -114
  18. package/dist/server/controllers/auth.js.map +1 -1
  19. package/dist/server/controllers/auth.mjs +132 -113
  20. package/dist/server/controllers/auth.mjs.map +1 -1
  21. package/dist/server/controllers/validation/auth.js +6 -6
  22. package/dist/server/controllers/validation/auth.js.map +1 -1
  23. package/dist/server/controllers/validation/auth.mjs +6 -6
  24. package/dist/server/controllers/validation/auth.mjs.map +1 -1
  25. package/dist/server/controllers/validation/user.js +16 -9
  26. package/dist/server/controllers/validation/user.js.map +1 -1
  27. package/dist/server/controllers/validation/user.mjs +16 -9
  28. package/dist/server/controllers/validation/user.mjs.map +1 -1
  29. package/dist/server/routes/content-api/auth.js +16 -0
  30. package/dist/server/routes/content-api/auth.js.map +1 -1
  31. package/dist/server/routes/content-api/auth.mjs +16 -0
  32. package/dist/server/routes/content-api/auth.mjs.map +1 -1
  33. package/dist/server/routes/content-api/validation.js +29 -2
  34. package/dist/server/routes/content-api/validation.js.map +1 -1
  35. package/dist/server/routes/content-api/validation.mjs +29 -2
  36. package/dist/server/routes/content-api/validation.mjs.map +1 -1
  37. package/dist/server/services/jwt.js +8 -6
  38. package/dist/server/services/jwt.js.map +1 -1
  39. package/dist/server/services/jwt.mjs +8 -6
  40. package/dist/server/services/jwt.mjs.map +1 -1
  41. package/dist/server/services/users-permissions.js +8 -0
  42. package/dist/server/services/users-permissions.js.map +1 -1
  43. package/dist/server/services/users-permissions.mjs +8 -0
  44. package/dist/server/services/users-permissions.mjs.map +1 -1
  45. package/dist/server/strategies/users-permissions.js +8 -1
  46. package/dist/server/strategies/users-permissions.js.map +1 -1
  47. package/dist/server/strategies/users-permissions.mjs +8 -1
  48. package/dist/server/strategies/users-permissions.mjs.map +1 -1
  49. package/dist/server/utils/refresh-cookie-options.js +27 -0
  50. package/dist/server/utils/refresh-cookie-options.js.map +1 -0
  51. package/dist/server/utils/refresh-cookie-options.mjs +25 -0
  52. package/dist/server/utils/refresh-cookie-options.mjs.map +1 -0
  53. package/lint-staged.config.mjs +1 -0
  54. package/package.json +5 -5
  55. package/rollup.config.mjs +3 -3
  56. package/server/controllers/auth.js +162 -141
  57. package/server/controllers/validation/auth.js +6 -6
  58. package/server/controllers/validation/user.js +22 -9
  59. package/server/routes/content-api/auth.js +12 -0
  60. package/server/routes/content-api/validation.js +32 -2
  61. package/server/services/jwt.js +4 -3
  62. package/server/services/users-permissions.js +2 -0
  63. package/server/strategies/users-permissions.js +6 -1
  64. package/server/utils/refresh-cookie-options.js +20 -0
package/.eslintrc.cjs CHANGED
@@ -8,6 +8,7 @@ const config = {
8
8
  '.eslintrc.cjs',
9
9
  'rollup.config.mjs',
10
10
  'coverage/',
11
+ 'lint-staged.config.mjs',
11
12
  ],
12
13
  overrides: [
13
14
  {
@@ -61,7 +61,7 @@ const AdvancedSettingsPage = () => {
61
61
  type: 'danger',
62
62
  message: formatMessage({
63
63
  id: getTrad('notification.error'),
64
- defaultMessage: 'An error occured',
64
+ defaultMessage: 'An error occurred',
65
65
  }),
66
66
  });
67
67
  },
@@ -89,7 +89,7 @@ export const RolesListPage = () => {
89
89
  } catch (error) {
90
90
  toggleNotification({
91
91
  type: 'danger',
92
- message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),
92
+ message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),
93
93
  });
94
94
  }
95
95
  };
@@ -1,44 +1,83 @@
1
1
  {
2
- "BoundRoute.title": "Bound route to",
2
+ "BoundRoute.title": "バインドされたルート",
3
+ "components.Input.error.validation.email": "有効なメールアドレスではありません",
4
+ "components.Input.error.validation.json": "JSON形式と一致しません",
5
+ "components.Input.error.validation.max": "値が大きすぎます。",
6
+ "components.Input.error.validation.maxLength": "値が長すぎます。",
7
+ "components.Input.error.validation.min": "値が小さすぎます。",
8
+ "components.Input.error.validation.minLength": "値が短すぎます。",
9
+ "components.Input.error.validation.minSupMax": "最大値を超えることはできません。",
10
+ "components.Input.error.validation.regex": "値が正規表現と一致しません。",
11
+ "components.Input.error.validation.required": "この値は必須です。",
12
+ "components.Input.error.validation.unique": "この値はすでに使用されています。",
3
13
  "EditForm.inputSelect.description.role": "新しい認証されたユーザーが選択された役割にアタッチされます。",
4
14
  "EditForm.inputSelect.label.role": "認証されたユーザーのデフォルトの役割",
5
15
  "EditForm.inputToggle.description.email": "ユーザーが異なる認証プロバイダで同じ電子メールアドレスを使用して複数のアカウントを作成できないようにします。",
6
16
  "EditForm.inputToggle.description.email-confirmation": "有効(ON)にすると、新しい登録ユーザーに確認メールが送信されます。",
7
17
  "EditForm.inputToggle.description.email-confirmation-redirection": "あなたのEメールを確認したら、リダイレクト先を選択してください。",
18
+ "EditForm.inputToggle.description.email-reset-password": "アプリケーションのパスワードリセットページのURL",
8
19
  "EditForm.inputToggle.description.sign-up": "あなたの電子メールを確認した後、リダイレクト先を選択しました。",
9
20
  "EditForm.inputToggle.label.email": "メールアドレスごとに1つのアカウント",
10
21
  "EditForm.inputToggle.label.email-confirmation": "Eメールの確認を有効にする",
11
22
  "EditForm.inputToggle.label.email-confirmation-redirection": "リダイレクトURL",
23
+ "EditForm.inputToggle.label.email-reset-password": "パスワードリセットページ",
12
24
  "EditForm.inputToggle.label.sign-up": "申し込みを有効にする",
25
+ "EditForm.inputToggle.placeholder.email-confirmation-redirection": "例: https://yourfrontend.com/email-confirmation-redirection",
26
+ "EditForm.inputToggle.placeholder.email-reset-password": "例: https://yourfrontend.com/reset-password",
27
+ "EditPage.form.roles": "ロールの詳細",
28
+ "Email.template.data.loaded": "メールテンプレートを読み込みました",
29
+ "Email.template.email_confirmation": "メールアドレスの確認",
30
+ "Email.template.form.edit.label": "テンプレートを編集",
31
+ "Email.template.reset_password": "パスワードリセット",
32
+ "Email.template.table.action.label": "操作",
33
+ "Email.template.table.icon.label": "アイコン",
34
+ "Email.template.table.name.label": "名前",
35
+ "Form.advancedSettings.data.loaded": "高度な設定データを読み込みました",
13
36
  "HeaderNav.link.advancedSettings": "高度な設定",
14
37
  "HeaderNav.link.emailTemplates": "メールテンプレート",
15
38
  "HeaderNav.link.providers": "プロバイダー",
39
+ "notification.success.submit": "設定が更新されました",
40
+ "page.title": "設定 - ロール",
41
+ "plugin.description.long": "JWTに基づいた完全な認証プロセスでAPIを保護します。このプラグインには、ユーザーのグループ間で権限を管理できるACL戦略もあります。",
42
+ "plugin.description.short": "JWTに基づく完全な認証プロセスでAPIを保護する",
43
+ "plugin.name": "ロールと権限",
16
44
  "Plugin.permissions.plugins.description": "{name} 個のプラグインに対して許可されたすべてのアクションを定義する",
17
45
  "Plugins.header.description": "ルートにバインドされたアクションのみが以下にリストされています",
18
46
  "Plugins.header.title": "権限",
19
47
  "Policies.header.hint": "アプリケーションのアクションまたはプラグインのアクションを選択し、コグアイコンをクリックしてバインドされたルートを表示します",
20
48
  "Policies.header.title": "高度な設定",
21
49
  "PopUpForm.Email.email_templates.inputDescription": "変数の使用方法がわからない場合は、{link}",
50
+ "PopUpForm.Email.link.documentation": "ドキュメントをご覧ください。",
22
51
  "PopUpForm.Email.options.from.email.label": "送信者Eメール",
23
52
  "PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
24
53
  "PopUpForm.Email.options.from.name.label": "送信者名",
25
54
  "PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
26
55
  "PopUpForm.Email.options.message.label": "メッセージ",
27
56
  "PopUpForm.Email.options.object.label": "件名",
57
+ "PopUpForm.Email.options.object.placeholder": "%APP_NAME% のメールアドレスを確認してください",
28
58
  "PopUpForm.Email.options.response_email.label": "応答メール",
29
59
  "PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
60
+ "PopUpForm.header.edit.email-templates": "メールテンプレートの編集",
61
+ "PopUpForm.header.edit.providers": "プロバイダーの編集",
30
62
  "PopUpForm.Providers.enabled.description": "無効にすると、ユーザーはこのプロバイダを使用できなくなります。",
31
63
  "PopUpForm.Providers.enabled.label": "有効にする",
32
64
  "PopUpForm.Providers.key.label": "クライアントID",
33
65
  "PopUpForm.Providers.key.placeholder": "TEXT",
34
66
  "PopUpForm.Providers.redirectURL.front-end.label": "フロントエンドアプリへのリダイレクトURL",
67
+ "PopUpForm.Providers.redirectURL.label": "{provider}アプリケーションの設定に追加するリダイレクトURL",
35
68
  "PopUpForm.Providers.secret.label": "クライアントの秘密",
36
69
  "PopUpForm.Providers.secret.placeholder": "TEXT",
37
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
70
+ "PopUpForm.Providers.subdomain.label": "ホストURI(サブドメイン)",
38
71
  "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
39
- "PopUpForm.header.edit.email-templates": "メールテンプレートの編集",
40
- "notification.success.submit": "設定が更新されました",
41
- "plugin.description.long": "JWTに基づいた完全な認証プロセスでAPIを保護します。このプラグインには、ユーザーのグループ間で権限を管理できるACL戦略もあります。",
42
- "plugin.description.short": "JWTに基づく完全な認証プロセスでAPIを保護する",
43
- "plugin.name": "ロールと権限"
72
+ "popUpWarning.button.cancel": "キャンセル",
73
+ "popUpWarning.button.confirm": "確認",
74
+ "popUpWarning.title": "確認してください",
75
+ "popUpWarning.warning.cancel": "変更をキャンセルしてもよろしいですか?",
76
+ "Providers.data.loaded": "プロバイダーを読み込みました",
77
+ "Providers.status": "ステータス",
78
+ "Roles.empty": "ロールがまだありません。",
79
+ "Roles.empty.search": "検索に一致するロールがありません。",
80
+ "Settings.roles.deleted": "ロールを削除しました",
81
+ "Settings.roles.edited": "ロールを編集しました",
82
+ "Settings.section-label": "ユーザーと権限プラグイン"
44
83
  }
@@ -45,7 +45,7 @@ const AdvancedSettingsPage = ()=>{
45
45
  type: 'danger',
46
46
  message: formatMessage({
47
47
  id: getTrad('notification.error'),
48
- defaultMessage: 'An error occured'
48
+ defaultMessage: 'An error occurred'
49
49
  })
50
50
  });
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'advanced'],\n async () => {\n const { data } = await get('/users-permissions/advanced');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Form.advancedSettings.data.loaded'),\n defaultMessage: 'Advanced settings data has been loaded',\n })\n );\n },\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occured',\n }),\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\n submitMutation.mutate({\n ...body,\n email_confirmation_redirection: body.email_confirmation\n ? body.email_confirmation_redirection\n : '',\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n primaryAction={\n <Button\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'advanced'],\n async () => {\n const { data } = await get('/users-permissions/advanced');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Form.advancedSettings.data.loaded'),\n defaultMessage: 'Advanced settings data has been loaded',\n })\n );\n },\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occurred',\n }),\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\n submitMutation.mutate({\n ...body,\n email_confirmation_redirection: body.email_confirmation\n ? body.email_confirmation_redirection\n : '',\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n primaryAction={\n <Button\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}
@@ -43,7 +43,7 @@ const AdvancedSettingsPage = ()=>{
43
43
  type: 'danger',
44
44
  message: formatMessage({
45
45
  id: getTrad('notification.error'),
46
- defaultMessage: 'An error occured'
46
+ defaultMessage: 'An error occurred'
47
47
  })
48
48
  });
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'advanced'],\n async () => {\n const { data } = await get('/users-permissions/advanced');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Form.advancedSettings.data.loaded'),\n defaultMessage: 'Advanced settings data has been loaded',\n })\n );\n },\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occured',\n }),\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\n submitMutation.mutate({\n ...body,\n email_confirmation_redirection: body.email_confirmation\n ? body.email_confirmation_redirection\n : '',\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n primaryAction={\n <Button\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":";;;;;;;;;;;;;AAuBA,MAAMA,6BAAAA,GAAgC,kBACpCC,GAAA,CAACC,IAAAA,CAAKC,OAAO,EAAA;AAACC,QAAAA,WAAAA,EAAaC,YAAYC,oBAAoB;AACzD,QAAA,QAAA,gBAAAL,GAAA,CAACM,oBAAAA,EAAAA,EAAAA;;AAIL,MAAMA,oBAAAA,GAAuB,IAAA;IAC3B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,YAAY,EAAE,GAAGC,WAAAA,EAAAA;AACzB,IAAA,MAAMC,WAAAA,GAAcC,cAAAA,EAAAA;AACpB,IAAA,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGC,cAAAA,EAAAA;IACrB,MAAM,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAE3B,MAAM,EACJC,SAAAA,EAAWC,uBAAuB,EAClCC,cAAAA,EAAgB,EAAEC,SAAS,EAAE,EAC9B,GAAGC,OAAAA,CAAQ;AAAEC,QAAAA,MAAAA,EAAQrB,YAAYsB;AAAuB,KAAA,CAAA;AAEzD,IAAA,MAAM,EAAEN,SAAAA,EAAWO,aAAa,EAAEC,IAAI,EAAE,GAAGC,QAAAA,CACzC;AAAC,QAAA,mBAAA;AAAqB,QAAA;KAAW,EACjC,UAAA;AACE,QAAA,MAAM,EAAED,IAAI,EAAE,GAAG,MAAMb,GAAAA,CAAI,6BAAA,CAAA;QAE3B,OAAOa,IAAAA;IACT,CAAA,EACA;AACEE,QAAAA,SAAAA,CAAAA,GAAAA;AACEnB,YAAAA,YAAAA,CACEJ,aAAAA,CAAc;AACZwB,gBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,mCAAA,CAAA;gBACZC,cAAAA,EAAgB;AAClB,aAAA,CAAA,CAAA;AAEJ,QAAA,CAAA;AACAC,QAAAA,OAAAA,CAAAA,GAAAA;YACEzB,kBAAAA,CAAmB;gBACjB0B,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAAS7B,aAAAA,CAAc;AACrBwB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,oBAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,KAAA,CAAA;AAGF,IAAA,MAAMb,YAAYC,uBAAAA,IAA2BM,aAAAA;AAE7C,IAAA,MAAMU,iBAAiBC,WAAAA,CAAY,CAACC,IAAAA,GAASvB,GAAAA,CAAI,+BAA+BuB,IAAAA,CAAAA,EAAO;QACrF,MAAMT,SAAAA,CAAAA,GAAAA;YACJ,MAAMjB,WAAAA,CAAY2B,iBAAiB,CAAC;AAAC,gBAAA,mBAAA;AAAqB,gBAAA;AAAW,aAAA,CAAA;YAErE/B,kBAAAA,CAAmB;gBACjB0B,IAAAA,EAAM,SAAA;AACNC,gBAAAA,OAAAA,EAAS7B,aAAAA,CAAc;AACrBwB,oBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,4BAAA,CAAA;oBACZC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA,CAAA;AACAC,QAAAA,OAAAA,CAAAA,CAAQO,KAAK,EAAA;YACXhC,kBAAAA,CAAmB;gBACjB0B,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASlB,cAAAA,CAAeuB,KAAAA;AAC1B,aAAA,CAAA;AACF,QAAA,CAAA;QACAC,aAAAA,EAAe;AACjB,KAAA,CAAA;AAEA,IAAA,MAAM,EAAEtB,SAAAA,EAAWuB,gBAAgB,EAAE,GAAGN,cAAAA;AAExC,IAAA,MAAMO,eAAe,OAAOL,IAAAA,GAAAA;AAC1BF,QAAAA,cAAAA,CAAeQ,MAAM,CAAC;AACpB,YAAA,GAAGN,IAAI;AACPO,YAAAA,8BAAAA,EAAgCP,IAAAA,CAAKQ,kBAAkB,GACnDR,IAAAA,CAAKO,8BAA8B,GACnC;AACN,SAAA,CAAA;AACF,IAAA,CAAA;AAEA,IAAA,IAAI1B,SAAAA,EAAW;QACb,qBAAOpB,GAAA,CAACC,KAAK+C,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;IAEA,qBACEC,IAAA,CAAChD,KAAKiD,IAAI,EAAA;QAACC,WAAAA,EAAWR,gBAAAA;;AACpB,0BAAA3C,GAAA,CAACC,KAAKmD,KAAK,EAAA;0BACR7C,aAAAA,CACC;oBAAEwB,EAAAA,EAAI,oBAAA;oBAAsBE,cAAAA,EAAgB;iBAAoB,EAChE;AACEoB,oBAAAA,IAAAA,EAAM9C,aAAAA,CAAc;AAClBwB,wBAAAA,EAAAA,EAAIC,OAAAA,CAAQ,iCAAA,CAAA;wBACZC,cAAAA,EAAgB;AAClB,qBAAA;AACF,iBAAA;;0BAGJjC,GAAA,CAACsD,IAAAA,EAAAA;gBAAKC,QAAAA,EAAUX,YAAAA;AAAcY,gBAAAA,aAAAA,EAAe5B,KAAK6B,QAAQ;gBAAEC,gBAAAA,EAAkBC,MAAAA;AAC3E,gBAAA,QAAA,EAAA,CAAC,EAAEC,MAAM,EAAEC,YAAY,EAAEC,QAAQ,EAAE,GAAA;oBAClC,qBACEb,IAAA,CAAAc,QAAA,EAAA;;AACE,0CAAA/D,GAAA,CAACgE,QAAQC,MAAM,EAAA;AACbC,gCAAAA,KAAAA,EAAO3D,aAAAA,CAAc;AACnBwB,oCAAAA,EAAAA,EAAIC,OAAAA,CAAQ,iCAAA,CAAA;oCACZC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;AACAkC,gCAAAA,aAAAA,gBACEnE,GAAA,CAACoE,MAAAA,EAAAA;oCACCC,OAAAA,EAASR,YAAAA;oCACT1B,IAAAA,EAAK,QAAA;oCACLmC,QAAAA,EAAU,CAACR,YAAY,CAACvC,SAAAA;AACxBgD,oCAAAA,SAAAA,gBAAWvE,GAAA,CAACwE,KAAAA,EAAAA,EAAAA,CAAAA;oCACZC,IAAAA,EAAK,GAAA;oCACLC,SAAS,EAAA,IAAA;8CAERnE,aAAAA,CAAc;wCAAEwB,EAAAA,EAAI,aAAA;wCAAeE,cAAAA,EAAgB;AAAO,qCAAA;;;AAIjE,0CAAAjC,GAAA,CAACgE,QAAQW,OAAO,EAAA;AACd,gCAAA,QAAA,gBAAA3E,GAAA,CAAC4E,GAAAA,EAAAA;oCACCC,UAAAA,EAAW,UAAA;oCACXC,SAAS,EAAA,IAAA;oCACTC,MAAAA,EAAO,cAAA;oCACPC,UAAAA,EAAY,CAAA;oCACZC,aAAAA,EAAe,CAAA;oCACfC,WAAAA,EAAa,CAAA;oCACbC,YAAAA,EAAc,CAAA;AAEd,oCAAA,QAAA,gBAAAlC,IAAA,CAACmC,IAAAA,EAAAA;wCAAKC,SAAAA,EAAU,QAAA;wCAASC,UAAAA,EAAW,SAAA;wCAAUC,GAAAA,EAAK,CAAA;;0DACjDvF,GAAA,CAACwF,UAAAA,EAAAA;gDAAWC,OAAAA,EAAQ,OAAA;gDAAQC,GAAAA,EAAI,IAAA;0DAC7BnF,aAAAA,CAAc;oDACbwB,EAAAA,EAAI,iBAAA;oDACJE,cAAAA,EAAgB;AAClB,iDAAA;;AAEF,0DAAAjC,GAAA,CAAC2F,KAAKC,IAAI,EAAA;gDAACL,GAAAA,EAAK,CAAA;AACb,gDAAA,QAAA,EAAA;AACC,oDAAA;wDACEM,KAAAA,EAAO;AACL9D,4DAAAA,EAAAA,EAAIC,OAAAA,CAAQ,iCAAA,CAAA;4DACZC,cAAAA,EAAgB;AAClB,yDAAA;wDACA6D,IAAAA,EAAM;AACJ/D,4DAAAA,EAAAA,EAAIC,OAAAA,CAAQ,uCAAA,CAAA;4DACZC,cAAAA,EACE;AACJ,yDAAA;AACA8D,wDAAAA,OAAAA,EAASnE,KAAKoE,KAAK,CAACC,GAAG,CAAC,CAACC,QAAU;AACjCL,gEAAAA,KAAAA,EAAOK,KAAK7C,IAAI;AAChB8C,gEAAAA,KAAAA,EAAOD,KAAK/D;6DACd,CAAA,CAAA;wDACAkB,IAAAA,EAAM,cAAA;wDACNoB,IAAAA,EAAM,CAAA;wDACNtC,IAAAA,EAAM;AACR,qDAAA;AACGiE,oDAAAA,GAAAA;iDACJ,CAACH,GAAG,CAAC,CAAC,EAAExB,IAAI,EAAE,GAAG4B,KAAAA,EAAO,iBACvBrG,GAAA,CAAC2F,IAAAA,CAAKW,IAAI,EAAA;wDAERC,GAAAA,EAAK9B,IAAAA;wDACLY,SAAAA,EAAU,QAAA;wDACVC,UAAAA,EAAW,SAAA;AAEX,wDAAA,QAAA,gBAAAtF,GAAA,CAACwG,aAAAA,EAAAA;AACE,4DAAA,GAAGH,KAAK;AACT/B,4DAAAA,QAAAA,EACE+B,MAAMhD,IAAI,KAAK,gCAAA,IACfO,MAAAA,CAAOb,kBAAkB,KAAK,KAAA;4DAEhC8C,KAAAA,EAAOtF,aAAAA,CAAc8F,MAAMR,KAAK,CAAA;AAChCC,4DAAAA,IAAAA,EAAMO,MAAMP,IAAI,GAAGvF,aAAAA,CAAc8F,KAAAA,CAAMP,IAAI,CAAA,GAAIW,SAAAA;AAC/CC,4DAAAA,WAAAA,EACEL,MAAMK,WAAW,GAAGnG,aAAAA,CAAc8F,KAAAA,CAAMK,WAAW,CAAA,GAAID;;AAdtDJ,qDAAAA,EAAAA,KAAAA,CAAMhD,IAAI,CAAA;;;;;;;;AAyBjC,gBAAA;;;;AAIR;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../admin/src/pages/AdvancedSettings/index.jsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Typography, useNotifyAT } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport {\n useAPIErrorHandler,\n Page,\n Form,\n InputRenderer,\n useNotification,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery, useQueryClient } from 'react-query';\n\nimport { PERMISSIONS } from '../../constants';\nimport { getTrad } from '../../utils';\n\nimport layout from './utils/layout';\nimport schema from './utils/schema';\n\nconst ProtectedAdvancedSettingsPage = () => (\n <Page.Protect permissions={PERMISSIONS.readAdvancedSettings}>\n <AdvancedSettingsPage />\n </Page.Protect>\n);\n\nconst AdvancedSettingsPage = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const queryClient = useQueryClient();\n const { get, put } = useFetchClient();\n const { formatAPIError } = useAPIErrorHandler();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canUpdate },\n } = useRBAC({ update: PERMISSIONS.updateAdvancedSettings });\n\n const { isLoading: isLoadingData, data } = useQuery(\n ['users-permissions', 'advanced'],\n async () => {\n const { data } = await get('/users-permissions/advanced');\n\n return data;\n },\n {\n onSuccess() {\n notifyStatus(\n formatMessage({\n id: getTrad('Form.advancedSettings.data.loaded'),\n defaultMessage: 'Advanced settings data has been loaded',\n })\n );\n },\n onError() {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: getTrad('notification.error'),\n defaultMessage: 'An error occurred',\n }),\n });\n },\n }\n );\n\n const isLoading = isLoadingForPermissions || isLoadingData;\n\n const submitMutation = useMutation((body) => put('/users-permissions/advanced', body), {\n async onSuccess() {\n await queryClient.invalidateQueries(['users-permissions', 'advanced']);\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTrad('notification.success.saved'),\n defaultMessage: 'Saved',\n }),\n });\n },\n onError(error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n },\n refetchActive: true,\n });\n\n const { isLoading: isSubmittingForm } = submitMutation;\n\n const handleSubmit = async (body) => {\n submitMutation.mutate({\n ...body,\n email_confirmation_redirection: body.email_confirmation\n ? body.email_confirmation_redirection\n : '',\n });\n };\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main aria-busy={isSubmittingForm}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n }),\n }\n )}\n </Page.Title>\n <Form onSubmit={handleSubmit} initialValues={data.settings} validationSchema={schema}>\n {({ values, isSubmitting, modified }) => {\n return (\n <>\n <Layouts.Header\n title={formatMessage({\n id: getTrad('HeaderNav.link.advancedSettings'),\n defaultMessage: 'Advanced Settings',\n })}\n primaryAction={\n <Button\n loading={isSubmitting}\n type=\"submit\"\n disabled={!modified || !canUpdate}\n startIcon={<Check />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n }\n />\n <Layouts.Content>\n <Box\n background=\"neutral0\"\n hasRadius\n shadow=\"filterShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingLeft={7}\n paddingRight={7}\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Typography variant=\"delta\" tag=\"h2\">\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Typography>\n <Grid.Root gap={6}>\n {[\n {\n label: {\n id: getTrad('EditForm.inputSelect.label.role'),\n defaultMessage: 'Default role for authenticated users',\n },\n hint: {\n id: getTrad('EditForm.inputSelect.description.role'),\n defaultMessage:\n 'It will attach the new authenticated user to the selected role.',\n },\n options: data.roles.map((role) => ({\n label: role.name,\n value: role.type,\n })),\n name: 'default_role',\n size: 6,\n type: 'enumeration',\n },\n ...layout,\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={\n field.name === 'email_confirmation_redirection' &&\n values.email_confirmation === false\n }\n label={formatMessage(field.label)}\n hint={field.hint ? formatMessage(field.hint) : undefined}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n />\n </Grid.Item>\n ))}\n </Grid.Root>\n </Flex>\n </Box>\n </Layouts.Content>\n </>\n );\n }}\n </Form>\n </Page.Main>\n );\n};\n\nexport { ProtectedAdvancedSettingsPage, AdvancedSettingsPage };\n"],"names":["ProtectedAdvancedSettingsPage","_jsx","Page","Protect","permissions","PERMISSIONS","readAdvancedSettings","AdvancedSettingsPage","formatMessage","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","queryClient","useQueryClient","get","put","useFetchClient","formatAPIError","useAPIErrorHandler","isLoading","isLoadingForPermissions","allowedActions","canUpdate","useRBAC","update","updateAdvancedSettings","isLoadingData","data","useQuery","onSuccess","id","getTrad","defaultMessage","onError","type","message","submitMutation","useMutation","body","invalidateQueries","error","refetchActive","isSubmittingForm","handleSubmit","mutate","email_confirmation_redirection","email_confirmation","Loading","_jsxs","Main","aria-busy","Title","name","Form","onSubmit","initialValues","settings","validationSchema","schema","values","isSubmitting","modified","_Fragment","Layouts","Header","title","primaryAction","Button","loading","disabled","startIcon","Check","size","fullWidth","Content","Box","background","hasRadius","shadow","paddingTop","paddingBottom","paddingLeft","paddingRight","Flex","direction","alignItems","gap","Typography","variant","tag","Grid","Root","label","hint","options","roles","map","role","value","layout","field","Item","col","InputRenderer","undefined","placeholder"],"mappings":"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"}
@@ -53,7 +53,7 @@ const RolesListPage = ()=>{
53
53
  type: 'danger',
54
54
  message: formatMessage({
55
55
  id: 'notification.error',
56
- defaultMessage: 'An error occured'
56
+ defaultMessage: 'An error occurred'
57
57
  })
58
58
  });
59
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../admin/src/pages/Roles/pages/ListPage/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n"],"names":["RolesListPage","trackUsage","useTracking","formatMessage","locale","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","query","useQueryParams","_q","showConfirmDelete","setShowConfirmDelete","useState","roleToDelete","setRoleToDelete","del","get","useFetchClient","isLoading","isLoadingForPermissions","allowedActions","canRead","canDelete","canCreate","canUpdate","useRBAC","create","PERMISSIONS","createRole","read","readRoles","update","updateRole","delete","deleteRole","isLoadingForData","data","roles","isFetching","refetch","useQuery","fetchData","initialData","enabled","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","id","error","type","message","defaultMessage","err","Error","emptyLayout","getTrad","search","pageTitle","deleteMutation","useMutation","onSuccess","handleConfirmDelete","mutateAsync","sortedRoles","filter","role","name","description","sort","a","b","compare","emptyContent","length","colCount","rowCount","_jsx","Page","Loading","_jsxs","Main","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","to","tag","NavLink","onClick","startIcon","Plus","size","fullWidth","Action","startActions","SearchInput","label","Content","NoPermissions","Table","Thead","Tr","Th","Typography","variant","textColor","VisuallyHidden","TableBody","permissions","onDelete","EmptyStateLayout","content","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","Protect","accessRoles"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../admin/src/pages/Roles/pages/ListPage/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n"],"names":["RolesListPage","trackUsage","useTracking","formatMessage","locale","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","query","useQueryParams","_q","showConfirmDelete","setShowConfirmDelete","useState","roleToDelete","setRoleToDelete","del","get","useFetchClient","isLoading","isLoadingForPermissions","allowedActions","canRead","canDelete","canCreate","canUpdate","useRBAC","create","PERMISSIONS","createRole","read","readRoles","update","updateRole","delete","deleteRole","isLoadingForData","data","roles","isFetching","refetch","useQuery","fetchData","initialData","enabled","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","id","error","type","message","defaultMessage","err","Error","emptyLayout","getTrad","search","pageTitle","deleteMutation","useMutation","onSuccess","handleConfirmDelete","mutateAsync","sortedRoles","filter","role","name","description","sort","a","b","compare","emptyContent","length","colCount","rowCount","_jsx","Page","Loading","_jsxs","Main","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","to","tag","NavLink","onClick","startIcon","Plus","size","fullWidth","Action","startActions","SearchInput","label","Content","NoPermissions","Table","Thead","Tr","Th","Typography","variant","textColor","VisuallyHidden","TableBody","permissions","onDelete","EmptyStateLayout","content","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","Protect","accessRoles"],"mappings":";;;;;;;;;;;;;;;MAqCaA,aAAAA,GAAgB,IAAA;IAC3B,MAAM,EAAEC,UAAU,EAAE,GAAGC,iBAAAA,EAAAA;AACvB,IAAA,MAAM,EAAEC,aAAa,EAAEC,MAAM,EAAE,GAAGC,iBAAAA,EAAAA;IAClC,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,qBAAAA,EAAAA;IAC/B,MAAM,EAAEC,YAAY,EAAE,GAAGC,wBAAAA,EAAAA;AACzB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,oBAAAA,EAAAA;IACpB,MAAMC,EAAAA,GAAKF,OAAOE,EAAAA,IAAM,EAAA;AACxB,IAAA,MAAM,CAACC,iBAAAA,EAAmBC,oBAAAA,CAAqB,GAAGC,cAAAA,CAAS,KAAA,CAAA;IAC3D,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGF,cAAAA,EAAAA;AACxC,IAAA,MAAM,EAAEG,GAAG,EAAEC,GAAG,EAAE,GAAGC,oBAAAA,EAAAA;AAErB,IAAA,MAAM,EACJC,SAAAA,EAAWC,uBAAuB,EAClCC,cAAAA,EAAgB,EAAEC,OAAO,EAAEC,SAAS,EAAEC,SAAS,EAAEC,SAAS,EAAE,EAC7D,GAAGC,aAAAA,CAAQ;AACVC,QAAAA,MAAAA,EAAQC,sBAAYC,UAAU;AAC9BC,QAAAA,IAAAA,EAAMF,sBAAYG,SAAS;AAC3BC,QAAAA,MAAAA,EAAQJ,sBAAYK,UAAU;AAC9BC,QAAAA,MAAAA,EAAQN,sBAAYO;AACtB,KAAA,CAAA;IAEA,MAAM,EACJhB,WAAWiB,gBAAgB,EAC3BC,MAAM,EAAEC,KAAK,EAAE,EACfC,UAAU,EACVC,OAAO,EACR,GAAGC,mBAAAA,CAAS,WAAA,EAAa,IAAMC,SAAAA,CAAUtC,kBAAAA,EAAoBH,eAAeK,YAAAA,CAAAA,EAAe;AAC1FqC,QAAAA,WAAAA,EAAa,EAAC;QACdC,OAAAA,EAAStB;AACX,KAAA,CAAA;AAEA,IAAA,MAAM,EAAEuB,QAAQ,EAAE,GAAGC,uBAAU5C,MAAAA,EAAQ;QACrC6C,WAAAA,EAAa;AACf,KAAA,CAAA;AAEA;;MAGA,MAAMC,SAAAA,GAAYC,wBAAAA,CAAY/C,MAAAA,EAAQ;QACpC6C,WAAAA,EAAa;AACf,KAAA,CAAA;IAEA,MAAM5B,SAAAA,GAAYiB,oBAAoBG,UAAAA,IAAcnB,uBAAAA;AAEpD,IAAA,MAAM8B,uBAAAA,GAA0B,IAAA;AAC9BtC,QAAAA,oBAAAA,CAAqB,CAACD,iBAAAA,CAAAA;AACxB,IAAA,CAAA;IAEA,MAAMwC,UAAAA,GAAa,OAAOC,EAAAA,EAAInD,aAAAA,EAAeG,kBAAAA,GAAAA;QAC3C,IAAI;AACF,YAAA,MAAMY,GAAAA,CAAI,CAAC,yBAAyB,EAAEoC,EAAAA,CAAAA,CAAI,CAAA;AAC5C,QAAA,CAAA,CAAE,OAAOC,KAAAA,EAAO;YACdjD,kBAAAA,CAAmB;gBACjBkD,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAAStD,aAAAA,CAAc;oBAAEmD,EAAAA,EAAI,oBAAA;oBAAsBI,cAAAA,EAAgB;AAAoB,iBAAA;AACzF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,MAAMd,SAAAA,GAAY,OAAOtC,kBAAAA,EAAoBH,aAAAA,EAAeK,YAAAA,GAAAA;QAC1D,IAAI;AACF,YAAA,MAAM,EAAE+B,IAAI,EAAE,GAAG,MAAMpB,GAAAA,CAAI,0BAAA,CAAA;YAC3BX,YAAAA,CAAa,oCAAA,CAAA;YAEb,OAAO+B,IAAAA;AACT,QAAA,CAAA,CAAE,OAAOoB,GAAAA,EAAK;YACZrD,kBAAAA,CAAmB;gBACjBkD,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAAStD,aAAAA,CAAc;oBAAEmD,EAAAA,EAAI,oBAAA;oBAAsBI,cAAAA,EAAgB;AAAoB,iBAAA;AACzF,aAAA,CAAA;AAEA,YAAA,MAAM,IAAIE,KAAAA,CAAMD,GAAAA,CAAAA;AAClB,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAME,WAAAA,GAAc;QAClBrB,KAAAA,EAAO;AACLc,YAAAA,EAAAA,EAAIQ,OAAAA,CAAQ,aAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB,SAAA;QACAK,MAAAA,EAAQ;AACNT,YAAAA,EAAAA,EAAIQ,OAAAA,CAAQ,oBAAA,CAAA;YACZJ,cAAAA,EAAgB;AAClB;AACF,KAAA;AAEA,IAAA,MAAMM,YAAY7D,aAAAA,CAAc;QAC9BmD,EAAAA,EAAI,cAAA;QACJI,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMO,iBAAiBC,sBAAAA,CAAY,CAACZ,KAAOD,UAAAA,CAAWC,EAAAA,EAAInD,eAAeG,kBAAAA,CAAAA,EAAqB;QAC5F,MAAM6D,SAAAA,CAAAA,GAAAA;YACJ,MAAMzB,OAAAA,EAAAA;AACR,QAAA;AACF,KAAA,CAAA;AAEA,IAAA,MAAM0B,mBAAAA,GAAsB,UAAA;QAC1B,MAAMH,cAAAA,CAAeI,WAAW,CAACrD,YAAAA,CAAAA;AACjCF,QAAAA,oBAAAA,CAAqB,CAACD,iBAAAA,CAAAA;AACxB,IAAA,CAAA;AAEA,IAAA,MAAMyD,cAAc,CAAC9B,SAAS,EAAC,EAC5B+B,MAAM,CAAC,CAACC,IAAAA,GAASzB,QAAAA,CAASyB,KAAKC,IAAI,EAAE7D,OAAOmC,QAAAA,CAASyB,IAAAA,CAAKE,WAAW,EAAE9D,EAAAA,CAAAA,CAAAA,CACvE+D,IAAI,CACH,CAACC,CAAAA,EAAGC,CAAAA,GAAM3B,UAAU4B,OAAO,CAACF,EAAEH,IAAI,EAAEI,EAAEJ,IAAI,CAAA,IAAKvB,UAAU4B,OAAO,CAACF,EAAEF,WAAW,EAAEG,EAAEH,WAAW,CAAA,CAAA;AAGjG,IAAA,MAAMK,eAAenE,EAAAA,IAAM,CAAC0D,WAAAA,CAAYU,MAAM,GAAG,QAAA,GAAW,OAAA;AAE5D,IAAA,MAAMC,QAAAA,GAAW,CAAA;AACjB,IAAA,MAAMC,WAAW,CAAC1C,KAAAA,EAAOwC,MAAAA,IAAU,CAAA,IAAK,CAAA;AAExC,IAAA,IAAI3D,SAAAA,EAAW;QACb,qBAAO8D,cAAA,CAACC,WAAKC,OAAO,EAAA,EAAA,CAAA;AACtB,IAAA;IAEA,qBACEC,eAAA,CAACF,WAAKG,IAAI,EAAA;;AACR,0BAAAJ,cAAA,CAACC,WAAKI,KAAK,EAAA;0BACRrF,aAAAA,CACC;oBAAEmD,EAAAA,EAAI,oBAAA;oBAAsBI,cAAAA,EAAgB;iBAAoB,EAChE;oBAAEe,IAAAA,EAAMT;AAAU,iBAAA;;AAGtB,0BAAAmB,cAAA,CAACM,cAAQC,MAAM,EAAA;AACbC,gBAAAA,KAAAA,EAAOxF,aAAAA,CAAc;oBACnBmD,EAAAA,EAAI,cAAA;oBACJI,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAkC,gBAAAA,QAAAA,EAAUzF,aAAAA,CAAc;oBACtBmD,EAAAA,EAAI,iCAAA;oBACJI,cAAAA,EAAgB;AAClB,iBAAA,CAAA;AACAmC,gBAAAA,aAAAA,EACEnE,0BACEyD,cAAA,CAACW,uBAAAA,EAAAA;oBACCC,EAAAA,EAAG,KAAA;oBACHC,GAAAA,EAAKC,sBAAAA;AACLC,oBAAAA,OAAAA,EAAS,IAAMjG,UAAAA,CAAW,gBAAA,CAAA;AAC1BkG,oBAAAA,SAAAA,gBAAWhB,cAAA,CAACiB,UAAAA,EAAAA,EAAAA,CAAAA;oBACZC,IAAAA,EAAK,GAAA;oBACLC,SAAS,EAAA,IAAA;8BAERnG,aAAAA,CAAc;AACbmD,wBAAAA,EAAAA,EAAIQ,OAAAA,CAAQ,mBAAA,CAAA;wBACZJ,cAAAA,EAAgB;AAClB,qBAAA;AAEA,iBAAA,CAAA,GAAA;;AAIR,0BAAAyB,cAAA,CAACM,cAAQc,MAAM,EAAA;AACbC,gBAAAA,YAAAA,gBACErB,cAAA,CAACsB,iBAAAA,EAAAA;AACCC,oBAAAA,KAAAA,EAAOvG,aAAAA,CAAc;wBACnBmD,EAAAA,EAAI,4BAAA;wBACJI,cAAAA,EAAgB;AAClB,qBAAA;;;AAKN,0BAAA4B,eAAA,CAACG,cAAQkB,OAAO,EAAA;;oBACb,CAACnF,OAAAA,kBAAW2D,cAAA,CAACC,UAAAA,CAAKwB,aAAa,EAAA,EAAA,CAAA;oBAC/BpF,OAAAA,IAAW8C,WAAAA,IAAeA,WAAAA,EAAaU,MAAAA,iBACtCM,eAAA,CAACuB,kBAAAA,EAAAA;wBAAM5B,QAAAA,EAAUA,QAAAA;wBAAUC,QAAAA,EAAUA,QAAAA;;0CACnCC,cAAA,CAAC2B,kBAAAA,EAAAA;AACC,gCAAA,QAAA,gBAAAxB,eAAA,CAACyB,eAAAA,EAAAA;;sDACC5B,cAAA,CAAC6B,eAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAA7B,cAAA,CAAC8B,uBAAAA,EAAAA;gDAAWC,OAAAA,EAAQ,OAAA;gDAAQC,SAAAA,EAAU,YAAA;0DACnChH,aAAAA,CAAc;oDAAEmD,EAAAA,EAAI,aAAA;oDAAeI,cAAAA,EAAgB;AAAO,iDAAA;;;sDAG/DyB,cAAA,CAAC6B,eAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAA7B,cAAA,CAAC8B,uBAAAA,EAAAA;gDAAWC,OAAAA,EAAQ,OAAA;gDAAQC,SAAAA,EAAU,YAAA;0DACnChH,aAAAA,CAAc;oDACbmD,EAAAA,EAAI,oBAAA;oDACJI,cAAAA,EAAgB;AAClB,iDAAA;;;sDAGJyB,cAAA,CAAC6B,eAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAA7B,cAAA,CAAC8B,uBAAAA,EAAAA;gDAAWC,OAAAA,EAAQ,OAAA;gDAAQC,SAAAA,EAAU,YAAA;0DACnChH,aAAAA,CAAc;oDACbmD,EAAAA,EAAI,cAAA;oDACJI,cAAAA,EAAgB;AAClB,iDAAA;;;sDAGJyB,cAAA,CAAC6B,eAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAA7B,cAAA,CAACiC,2BAAAA,EAAAA;0DACEjH,aAAAA,CAAc;oDACbmD,EAAAA,EAAI,gBAAA;oDACJI,cAAAA,EAAgB;AAClB,iDAAA;;;;;;0CAKRyB,cAAA,CAACkC,SAAAA,EAAAA;gCACC/C,WAAAA,EAAaA,WAAAA;gCACb7C,SAAAA,EAAWA,SAAAA;gCACXE,SAAAA,EAAWA,SAAAA;gCACX2F,WAAAA,EAAaxF,qBAAAA;gCACbb,eAAAA,EAAiBA,eAAAA;gCACjBsG,QAAAA,EAAU;AAAC1G,oCAAAA,iBAAAA;AAAmBC,oCAAAA;AAAqB;;;uCAIvDqE,cAAA,CAACqC,6BAAAA,EAAAA;wBAAiBC,OAAAA,EAAStH,aAAAA,CAAc0D,WAAW,CAACkB,YAAAA,CAAa;;;;AAGtE,0BAAAI,cAAA,CAACuC,oBAAOC,IAAI,EAAA;gBAACC,IAAAA,EAAM/G,iBAAAA;gBAAmBgH,YAAAA,EAAczE,uBAAAA;AAClD,gBAAA,QAAA,gBAAA+B,cAAA,CAAC2C,mBAAAA,EAAAA;oBAAcC,SAAAA,EAAW3D;;;;;AAIlC;MAEa4D,sBAAAA,GAAyB,IAAA;IACpC,qBACE7C,cAAA,CAACC,WAAK6C,OAAO,EAAA;AAACX,QAAAA,WAAAA,EAAaxF,sBAAYoG,WAAW;AAChD,QAAA,QAAA,gBAAA/C,cAAA,CAACnF,aAAAA,EAAAA,EAAAA;;AAGP;;;;;"}
@@ -51,7 +51,7 @@ const RolesListPage = ()=>{
51
51
  type: 'danger',
52
52
  message: formatMessage({
53
53
  id: 'notification.error',
54
- defaultMessage: 'An error occured'
54
+ defaultMessage: 'An error occurred'
55
55
  })
56
56
  });
57
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../../admin/src/pages/Roles/pages/ListPage/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n"],"names":["RolesListPage","trackUsage","useTracking","formatMessage","locale","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","query","useQueryParams","_q","showConfirmDelete","setShowConfirmDelete","useState","roleToDelete","setRoleToDelete","del","get","useFetchClient","isLoading","isLoadingForPermissions","allowedActions","canRead","canDelete","canCreate","canUpdate","useRBAC","create","PERMISSIONS","createRole","read","readRoles","update","updateRole","delete","deleteRole","isLoadingForData","data","roles","isFetching","refetch","useQuery","fetchData","initialData","enabled","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","id","error","type","message","defaultMessage","err","Error","emptyLayout","getTrad","search","pageTitle","deleteMutation","useMutation","onSuccess","handleConfirmDelete","mutateAsync","sortedRoles","filter","role","name","description","sort","a","b","compare","emptyContent","length","colCount","rowCount","_jsx","Page","Loading","_jsxs","Main","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","to","tag","NavLink","onClick","startIcon","Plus","size","fullWidth","Action","startActions","SearchInput","label","Content","NoPermissions","Table","Thead","Tr","Th","Typography","variant","textColor","VisuallyHidden","TableBody","permissions","onDelete","EmptyStateLayout","content","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","Protect","accessRoles"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../../admin/src/pages/Roles/pages/ListPage/index.jsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport {\n Table,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n VisuallyHidden,\n EmptyStateLayout,\n useCollator,\n useFilter,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport {\n ConfirmDialog,\n useTracking,\n Page,\n SearchInput,\n useNotification,\n useQueryParams,\n useFetchClient,\n useRBAC,\n Layouts,\n} from '@strapi/strapi/admin';\nimport { useIntl } from 'react-intl';\nimport { useMutation, useQuery } from 'react-query';\nimport { NavLink } from 'react-router-dom';\n\nimport { PERMISSIONS } from '../../../../constants';\nimport { getTrad } from '../../../../utils';\n\nimport TableBody from './components/TableBody';\n\nexport const RolesListPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n const { toggleNotification } = useNotification();\n const { notifyStatus } = useNotifyAT();\n const [{ query }] = useQueryParams();\n const _q = query?._q || '';\n const [showConfirmDelete, setShowConfirmDelete] = useState(false);\n const [roleToDelete, setRoleToDelete] = useState();\n const { del, get } = useFetchClient();\n\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canRead, canDelete, canCreate, canUpdate },\n } = useRBAC({\n create: PERMISSIONS.createRole,\n read: PERMISSIONS.readRoles,\n update: PERMISSIONS.updateRole,\n delete: PERMISSIONS.deleteRole,\n });\n\n const {\n isLoading: isLoadingForData,\n data: { roles },\n isFetching,\n refetch,\n } = useQuery('get-roles', () => fetchData(toggleNotification, formatMessage, notifyStatus), {\n initialData: {},\n enabled: canRead,\n });\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n /**\n * @type {Intl.Collator}\n */\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const isLoading = isLoadingForData || isFetching || isLoadingForPermissions;\n\n const handleShowConfirmDelete = () => {\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const deleteData = async (id, formatMessage, toggleNotification) => {\n try {\n await del(`/users-permissions/roles/${id}`);\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const fetchData = async (toggleNotification, formatMessage, notifyStatus) => {\n try {\n const { data } = await get('/users-permissions/roles');\n notifyStatus('The roles have loaded successfully');\n\n return data;\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n\n throw new Error(err);\n }\n };\n\n const emptyLayout = {\n roles: {\n id: getTrad('Roles.empty'),\n defaultMessage: \"You don't have any roles yet.\",\n },\n search: {\n id: getTrad('Roles.empty.search'),\n defaultMessage: 'No roles match the search.',\n },\n };\n\n const pageTitle = formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n });\n\n const deleteMutation = useMutation((id) => deleteData(id, formatMessage, toggleNotification), {\n async onSuccess() {\n await refetch();\n },\n });\n\n const handleConfirmDelete = async () => {\n await deleteMutation.mutateAsync(roleToDelete);\n setShowConfirmDelete(!showConfirmDelete);\n };\n\n const sortedRoles = (roles || [])\n .filter((role) => contains(role.name, _q) || contains(role.description, _q))\n .sort(\n (a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)\n );\n\n const emptyContent = _q && !sortedRoles.length ? 'search' : 'roles';\n\n const colCount = 4;\n const rowCount = (roles?.length || 0) + 1;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: pageTitle }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'Roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n to=\"new\"\n tag={NavLink}\n onClick={() => trackUsage('willCreateRole')}\n startIcon={<Plus />}\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: getTrad('List.button.roles'),\n defaultMessage: 'Add new role',\n })}\n </LinkButton>\n ) : null\n }\n />\n\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage({\n id: 'app.component.search.label',\n defaultMessage: 'Search',\n })}\n />\n }\n />\n\n <Layouts.Content>\n {!canRead && <Page.NoPermissions />}\n {canRead && sortedRoles && sortedRoles?.length ? (\n <Table colCount={colCount} rowCount={rowCount}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({ id: 'global.name', defaultMessage: 'Name' })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <TableBody\n sortedRoles={sortedRoles}\n canDelete={canDelete}\n canUpdate={canUpdate}\n permissions={PERMISSIONS}\n setRoleToDelete={setRoleToDelete}\n onDelete={[showConfirmDelete, setShowConfirmDelete]}\n />\n </Table>\n ) : (\n <EmptyStateLayout content={formatMessage(emptyLayout[emptyContent])} />\n )}\n </Layouts.Content>\n <Dialog.Root open={showConfirmDelete} onOpenChange={handleShowConfirmDelete}>\n <ConfirmDialog onConfirm={handleConfirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nexport const ProtectedRolesListPage = () => {\n return (\n <Page.Protect permissions={PERMISSIONS.accessRoles}>\n <RolesListPage />\n </Page.Protect>\n );\n};\n"],"names":["RolesListPage","trackUsage","useTracking","formatMessage","locale","useIntl","toggleNotification","useNotification","notifyStatus","useNotifyAT","query","useQueryParams","_q","showConfirmDelete","setShowConfirmDelete","useState","roleToDelete","setRoleToDelete","del","get","useFetchClient","isLoading","isLoadingForPermissions","allowedActions","canRead","canDelete","canCreate","canUpdate","useRBAC","create","PERMISSIONS","createRole","read","readRoles","update","updateRole","delete","deleteRole","isLoadingForData","data","roles","isFetching","refetch","useQuery","fetchData","initialData","enabled","contains","useFilter","sensitivity","formatter","useCollator","handleShowConfirmDelete","deleteData","id","error","type","message","defaultMessage","err","Error","emptyLayout","getTrad","search","pageTitle","deleteMutation","useMutation","onSuccess","handleConfirmDelete","mutateAsync","sortedRoles","filter","role","name","description","sort","a","b","compare","emptyContent","length","colCount","rowCount","_jsx","Page","Loading","_jsxs","Main","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","to","tag","NavLink","onClick","startIcon","Plus","size","fullWidth","Action","startActions","SearchInput","label","Content","NoPermissions","Table","Thead","Tr","Th","Typography","variant","textColor","VisuallyHidden","TableBody","permissions","onDelete","EmptyStateLayout","content","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedRolesListPage","Protect","accessRoles"],"mappings":"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"}
@@ -1,48 +1,87 @@
1
1
  'use strict';
2
2
 
3
3
  var ja = {
4
- "BoundRoute.title": "Bound route to",
4
+ "BoundRoute.title": "バインドされたルート",
5
+ "components.Input.error.validation.email": "有効なメールアドレスではありません",
6
+ "components.Input.error.validation.json": "JSON形式と一致しません",
7
+ "components.Input.error.validation.max": "値が大きすぎます。",
8
+ "components.Input.error.validation.maxLength": "値が長すぎます。",
9
+ "components.Input.error.validation.min": "値が小さすぎます。",
10
+ "components.Input.error.validation.minLength": "値が短すぎます。",
11
+ "components.Input.error.validation.minSupMax": "最大値を超えることはできません。",
12
+ "components.Input.error.validation.regex": "値が正規表現と一致しません。",
13
+ "components.Input.error.validation.required": "この値は必須です。",
14
+ "components.Input.error.validation.unique": "この値はすでに使用されています。",
5
15
  "EditForm.inputSelect.description.role": "新しい認証されたユーザーが選択された役割にアタッチされます。",
6
16
  "EditForm.inputSelect.label.role": "認証されたユーザーのデフォルトの役割",
7
17
  "EditForm.inputToggle.description.email": "ユーザーが異なる認証プロバイダで同じ電子メールアドレスを使用して複数のアカウントを作成できないようにします。",
8
18
  "EditForm.inputToggle.description.email-confirmation": "有効(ON)にすると、新しい登録ユーザーに確認メールが送信されます。",
9
19
  "EditForm.inputToggle.description.email-confirmation-redirection": "あなたのEメールを確認したら、リダイレクト先を選択してください。",
20
+ "EditForm.inputToggle.description.email-reset-password": "アプリケーションのパスワードリセットページのURL",
10
21
  "EditForm.inputToggle.description.sign-up": "あなたの電子メールを確認した後、リダイレクト先を選択しました。",
11
22
  "EditForm.inputToggle.label.email": "メールアドレスごとに1つのアカウント",
12
23
  "EditForm.inputToggle.label.email-confirmation": "Eメールの確認を有効にする",
13
24
  "EditForm.inputToggle.label.email-confirmation-redirection": "リダイレクトURL",
25
+ "EditForm.inputToggle.label.email-reset-password": "パスワードリセットページ",
14
26
  "EditForm.inputToggle.label.sign-up": "申し込みを有効にする",
27
+ "EditForm.inputToggle.placeholder.email-confirmation-redirection": "例: https://yourfrontend.com/email-confirmation-redirection",
28
+ "EditForm.inputToggle.placeholder.email-reset-password": "例: https://yourfrontend.com/reset-password",
29
+ "EditPage.form.roles": "ロールの詳細",
30
+ "Email.template.data.loaded": "メールテンプレートを読み込みました",
31
+ "Email.template.email_confirmation": "メールアドレスの確認",
32
+ "Email.template.form.edit.label": "テンプレートを編集",
33
+ "Email.template.reset_password": "パスワードリセット",
34
+ "Email.template.table.action.label": "操作",
35
+ "Email.template.table.icon.label": "アイコン",
36
+ "Email.template.table.name.label": "名前",
37
+ "Form.advancedSettings.data.loaded": "高度な設定データを読み込みました",
15
38
  "HeaderNav.link.advancedSettings": "高度な設定",
16
39
  "HeaderNav.link.emailTemplates": "メールテンプレート",
17
40
  "HeaderNav.link.providers": "プロバイダー",
41
+ "notification.success.submit": "設定が更新されました",
42
+ "page.title": "設定 - ロール",
43
+ "plugin.description.long": "JWTに基づいた完全な認証プロセスでAPIを保護します。このプラグインには、ユーザーのグループ間で権限を管理できるACL戦略もあります。",
44
+ "plugin.description.short": "JWTに基づく完全な認証プロセスでAPIを保護する",
45
+ "plugin.name": "ロールと権限",
18
46
  "Plugin.permissions.plugins.description": "{name} 個のプラグインに対して許可されたすべてのアクションを定義する",
19
47
  "Plugins.header.description": "ルートにバインドされたアクションのみが以下にリストされています",
20
48
  "Plugins.header.title": "権限",
21
49
  "Policies.header.hint": "アプリケーションのアクションまたはプラグインのアクションを選択し、コグアイコンをクリックしてバインドされたルートを表示します",
22
50
  "Policies.header.title": "高度な設定",
23
51
  "PopUpForm.Email.email_templates.inputDescription": "変数の使用方法がわからない場合は、{link}",
52
+ "PopUpForm.Email.link.documentation": "ドキュメントをご覧ください。",
24
53
  "PopUpForm.Email.options.from.email.label": "送信者Eメール",
25
54
  "PopUpForm.Email.options.from.email.placeholder": "kai@doe.com",
26
55
  "PopUpForm.Email.options.from.name.label": "送信者名",
27
56
  "PopUpForm.Email.options.from.name.placeholder": "Kai Doe",
28
57
  "PopUpForm.Email.options.message.label": "メッセージ",
29
58
  "PopUpForm.Email.options.object.label": "件名",
59
+ "PopUpForm.Email.options.object.placeholder": "%APP_NAME% のメールアドレスを確認してください",
30
60
  "PopUpForm.Email.options.response_email.label": "応答メール",
31
61
  "PopUpForm.Email.options.response_email.placeholder": "kai@doe.com",
62
+ "PopUpForm.header.edit.email-templates": "メールテンプレートの編集",
63
+ "PopUpForm.header.edit.providers": "プロバイダーの編集",
32
64
  "PopUpForm.Providers.enabled.description": "無効にすると、ユーザーはこのプロバイダを使用できなくなります。",
33
65
  "PopUpForm.Providers.enabled.label": "有効にする",
34
66
  "PopUpForm.Providers.key.label": "クライアントID",
35
67
  "PopUpForm.Providers.key.placeholder": "TEXT",
36
68
  "PopUpForm.Providers.redirectURL.front-end.label": "フロントエンドアプリへのリダイレクトURL",
69
+ "PopUpForm.Providers.redirectURL.label": "{provider}アプリケーションの設定に追加するリダイレクトURL",
37
70
  "PopUpForm.Providers.secret.label": "クライアントの秘密",
38
71
  "PopUpForm.Providers.secret.placeholder": "TEXT",
39
- "PopUpForm.Providers.subdomain.label": "Host URI (Subdomain)",
72
+ "PopUpForm.Providers.subdomain.label": "ホストURI(サブドメイン)",
40
73
  "PopUpForm.Providers.subdomain.placeholder": "my.subdomain.com",
41
- "PopUpForm.header.edit.email-templates": "メールテンプレートの編集",
42
- "notification.success.submit": "設定が更新されました",
43
- "plugin.description.long": "JWTに基づいた完全な認証プロセスでAPIを保護します。このプラグインには、ユーザーのグループ間で権限を管理できるACL戦略もあります。",
44
- "plugin.description.short": "JWTに基づく完全な認証プロセスでAPIを保護する",
45
- "plugin.name": "ロールと権限"
74
+ "popUpWarning.button.cancel": "キャンセル",
75
+ "popUpWarning.button.confirm": "確認",
76
+ "popUpWarning.title": "確認してください",
77
+ "popUpWarning.warning.cancel": "変更をキャンセルしてもよろしいですか?",
78
+ "Providers.data.loaded": "プロバイダーを読み込みました",
79
+ "Providers.status": "ステータス",
80
+ "Roles.empty": "ロールがまだありません。",
81
+ "Roles.empty.search": "検索に一致するロールがありません。",
82
+ "Settings.roles.deleted": "ロールを削除しました",
83
+ "Settings.roles.edited": "ロールを編集しました",
84
+ "Settings.section-label": "ユーザーと権限プラグイン"
46
85
  };
47
86
 
48
87
  module.exports = ja;
@@ -1 +1 @@
1
- {"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ja.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}