@strapi/plugin-users-permissions 5.0.0-beta.1 → 5.0.0-beta.3

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 (73) hide show
  1. package/admin/src/pages/AdvancedSettings/index.jsx +4 -4
  2. package/admin/src/pages/EmailTemplates/index.jsx +3 -4
  3. package/admin/src/pages/Providers/index.jsx +3 -4
  4. package/admin/src/pages/Roles/pages/CreatePage.jsx +3 -4
  5. package/admin/src/pages/Roles/pages/EditPage.jsx +3 -4
  6. package/admin/src/pages/Roles/pages/ListPage/index.jsx +3 -4
  7. package/dist/_chunks/{index-_UNneVIg.js → index-21XWiNaI.js} +21 -37
  8. package/dist/_chunks/index-21XWiNaI.js.map +1 -0
  9. package/dist/_chunks/{index-gw-9XoIT.js → index-5Su9tV8W.js} +16 -22
  10. package/dist/_chunks/index-5Su9tV8W.js.map +1 -0
  11. package/dist/_chunks/{index-DtWla9tx.mjs → index-EfXIfij8.mjs} +9 -15
  12. package/dist/_chunks/index-EfXIfij8.mjs.map +1 -0
  13. package/dist/_chunks/{index-46oU0LRy.js → index-Ev6k_nHX.js} +11 -17
  14. package/dist/_chunks/index-Ev6k_nHX.js.map +1 -0
  15. package/dist/_chunks/{index-UxzhJuP2.js → index-I7wqiaSz.js} +13 -19
  16. package/dist/_chunks/index-I7wqiaSz.js.map +1 -0
  17. package/dist/_chunks/{index-G9pZniMC.mjs → index-J5bVMwKb.mjs} +10 -16
  18. package/dist/_chunks/index-J5bVMwKb.mjs.map +1 -0
  19. package/dist/_chunks/{index-JO4fO3Yj.js → index-RdT-49jb.js} +12 -12
  20. package/dist/_chunks/{index-JO4fO3Yj.js.map → index-RdT-49jb.js.map} +1 -1
  21. package/dist/_chunks/{index-PTS42_em.mjs → index-Yd7pX7dw.mjs} +12 -12
  22. package/dist/_chunks/{index-PTS42_em.mjs.map → index-Yd7pX7dw.mjs.map} +1 -1
  23. package/dist/_chunks/{index-Vg50EMBp.mjs → index-fIJnE26b.mjs} +14 -30
  24. package/dist/_chunks/index-fIJnE26b.mjs.map +1 -0
  25. package/dist/_chunks/index-oBxjGftZ-Zv9D3a55.js +10335 -0
  26. package/dist/_chunks/index-oBxjGftZ-Zv9D3a55.js.map +1 -0
  27. package/dist/_chunks/index-oBxjGftZ-sZD2cl-K.mjs +10311 -0
  28. package/dist/_chunks/index-oBxjGftZ-sZD2cl-K.mjs.map +1 -0
  29. package/dist/_chunks/{index-oUZpvYqS.mjs → index-oDAXPgSA.mjs} +10 -16
  30. package/dist/_chunks/index-oDAXPgSA.mjs.map +1 -0
  31. package/dist/admin/index.js +1 -1
  32. package/dist/admin/index.mjs +1 -1
  33. package/package.json +8 -8
  34. package/server/bootstrap/index.js +3 -3
  35. package/server/controllers/content-manager-user.js +4 -2
  36. package/server/services/users-permissions.js +3 -3
  37. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs +0 -84380
  38. package/dist/_chunks/EditViewPage-BJdNfzBZ-XIkFGBc4.mjs.map +0 -1
  39. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js +0 -84408
  40. package/dist/_chunks/EditViewPage-BJdNfzBZ-eKwHxgPQ.js.map +0 -1
  41. package/dist/_chunks/Helmet-En-SEnNC.mjs +0 -1008
  42. package/dist/_chunks/Helmet-En-SEnNC.mjs.map +0 -1
  43. package/dist/_chunks/Helmet-d9JljxUo.js +0 -1010
  44. package/dist/_chunks/Helmet-d9JljxUo.js.map +0 -1
  45. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js +0 -1595
  46. package/dist/_chunks/ListViewPage-FE12IpwT-Wq63ge4-.js.map +0 -1
  47. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs +0 -1571
  48. package/dist/_chunks/ListViewPage-FE12IpwT-qmEuoG2g.mjs.map +0 -1
  49. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs +0 -33
  50. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-8gQO_Y5x.mjs.map +0 -1
  51. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js +0 -33
  52. package/dist/_chunks/ReviewWorkflowsColumn-NUu47oVz-ARD7iQQF.js.map +0 -1
  53. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js +0 -209
  54. package/dist/_chunks/constants-D6NLEhwu-4IL8biHd.js.map +0 -1
  55. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs +0 -190
  56. package/dist/_chunks/constants-D6NLEhwu-gRKBHArd.mjs.map +0 -1
  57. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs +0 -16568
  58. package/dist/_chunks/index-1NFAbkxM-Km1zKLTh.mjs.map +0 -1
  59. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js +0 -16593
  60. package/dist/_chunks/index-1NFAbkxM-c8HdvwSA.js.map +0 -1
  61. package/dist/_chunks/index-46oU0LRy.js.map +0 -1
  62. package/dist/_chunks/index-DtWla9tx.mjs.map +0 -1
  63. package/dist/_chunks/index-G9pZniMC.mjs.map +0 -1
  64. package/dist/_chunks/index-UxzhJuP2.js.map +0 -1
  65. package/dist/_chunks/index-Vg50EMBp.mjs.map +0 -1
  66. package/dist/_chunks/index-_UNneVIg.js.map +0 -1
  67. package/dist/_chunks/index-gw-9XoIT.js.map +0 -1
  68. package/dist/_chunks/index-oUZpvYqS.mjs.map +0 -1
  69. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js +0 -63
  70. package/dist/_chunks/useSyncRbac-LNOzRXJ5-5S0qhFuZ.js.map +0 -1
  71. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs +0 -45
  72. package/dist/_chunks/useSyncRbac-LNOzRXJ5-PZzFwA1X.mjs.map +0 -1
  73. package/dist/style.css +0 -84
@@ -1,190 +0,0 @@
1
- import { aj as useGetWorkflowsQuery, ak as useCreateWorkflowMutation, al as useUpdateWorkflowMutation, am as useDeleteWorkflowMutation, an as STAGE_ATTRIBUTE_NAME, g as getTranslation, ao as ASSIGNEE_ATTRIBUTE_NAME, a5 as useAdminUsers, a as useField, a0 as getDisplayName, d as useDoc, ap as getStageColorByHex } from "./index-1NFAbkxM-Km1zKLTh.mjs";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from "@strapi/design-system";
5
- import { useIntl } from "react-intl";
6
- function useReviewWorkflows(params = {}) {
7
- const { id = "", ...queryParams } = params;
8
- const { data, isLoading } = useGetWorkflowsQuery({
9
- id,
10
- populate: "stages",
11
- ...queryParams
12
- });
13
- const [createWorkflow] = useCreateWorkflowMutation();
14
- const [updateWorkflow] = useUpdateWorkflowMutation();
15
- const [deleteWorkflow] = useDeleteWorkflowMutation();
16
- const { workflows, meta } = data ?? {};
17
- return {
18
- // meta contains e.g. the total of all workflows. we can not use
19
- // the pagination object here, because the list is not paginated.
20
- meta,
21
- workflows,
22
- isLoading,
23
- createWorkflow,
24
- updateWorkflow,
25
- deleteWorkflow
26
- };
27
- }
28
- const AssigneeFilter = ({ name }) => {
29
- const [page, setPage] = React.useState(1);
30
- const { formatMessage } = useIntl();
31
- const { data, isLoading } = useAdminUsers({
32
- page
33
- });
34
- const users = data?.users || [];
35
- const field = useField(name);
36
- const handleChange = (value) => {
37
- setPage(1);
38
- field.onChange(name, value);
39
- };
40
- return /* @__PURE__ */ jsx(
41
- Combobox,
42
- {
43
- value: field.value,
44
- "aria-label": formatMessage({
45
- id: "content-manager.components.Filters.usersSelect.label",
46
- defaultMessage: "Search and select an user to filter"
47
- }),
48
- onChange: handleChange,
49
- loading: isLoading,
50
- onLoadMore: () => setPage((prev) => prev + 1),
51
- children: users.map((user) => {
52
- return /* @__PURE__ */ jsx(ComboboxOption, { value: user.id.toString(), children: getDisplayName(user, formatMessage) }, user.id);
53
- })
54
- }
55
- );
56
- };
57
- const StageFilter = (props) => {
58
- const { model } = useDoc();
59
- const { formatMessage } = useIntl();
60
- const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });
61
- const field = useField(props.name);
62
- const [workflow] = workflows ?? [];
63
- return /* @__PURE__ */ jsx(
64
- SingleSelect,
65
- {
66
- "aria-label": formatMessage({
67
- id: "content-manager.components.Filters.reviewWorkflows.label",
68
- defaultMessage: "Search and select an workflow stage to filter"
69
- }),
70
- value: field.value,
71
- onChange: (value) => {
72
- field.onChange(props.name, value);
73
- },
74
- loading: isLoading,
75
- customizeContent: () => /* @__PURE__ */ jsxs(Flex, { as: "span", justifyContent: "space-between", alignItems: "center", width: "100%", children: [
76
- /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", ellipsis: true, children: field.value }),
77
- isLoading ? /* @__PURE__ */ jsx(Loader, { small: true, style: { display: "flex" } }) : null
78
- ] }),
79
- children: (workflow?.stages ?? []).map(({ id, color, name }) => {
80
- const { themeColorName } = getStageColorByHex(color) ?? {};
81
- return /* @__PURE__ */ jsx(
82
- SingleSelectOption,
83
- {
84
- startIcon: /* @__PURE__ */ jsx(
85
- Flex,
86
- {
87
- height: 2,
88
- background: color,
89
- borderColor: themeColorName === "neutral0" ? "neutral150" : void 0,
90
- hasRadius: true,
91
- shrink: 0,
92
- width: 2
93
- }
94
- ),
95
- value: name,
96
- children: name
97
- },
98
- id
99
- );
100
- })
101
- }
102
- );
103
- };
104
- const REVIEW_WORKFLOW_COLUMNS_EE = [
105
- {
106
- name: STAGE_ATTRIBUTE_NAME,
107
- attribute: {
108
- type: "relation",
109
- relation: "oneToMany",
110
- target: "admin::review-workflow-stage"
111
- },
112
- label: {
113
- id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
114
- defaultMessage: "Review stage"
115
- },
116
- searchable: false,
117
- sortable: true,
118
- mainField: {
119
- name: "name",
120
- type: "string"
121
- }
122
- },
123
- {
124
- name: ASSIGNEE_ATTRIBUTE_NAME,
125
- attribute: {
126
- type: "relation",
127
- target: "admin::user",
128
- relation: "oneToMany"
129
- },
130
- label: {
131
- id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),
132
- defaultMessage: "Assignee"
133
- },
134
- searchable: false,
135
- sortable: true,
136
- mainField: {
137
- name: "firstname",
138
- type: "string"
139
- }
140
- }
141
- ];
142
- const REVIEW_WORKFLOW_FILTERS = [
143
- {
144
- mainField: {
145
- name: "name",
146
- type: "string"
147
- },
148
- input: StageFilter,
149
- label: {
150
- id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),
151
- defaultMessage: "Review stage"
152
- },
153
- name: "strapi_stage",
154
- type: "relation"
155
- },
156
- {
157
- type: "relation",
158
- mainField: {
159
- name: "id",
160
- type: "integer"
161
- },
162
- input: AssigneeFilter,
163
- operators: [
164
- {
165
- label: {
166
- id: "components.FilterOptions.FILTER_TYPES.$eq",
167
- defaultMessage: "is"
168
- },
169
- value: "$eq"
170
- },
171
- {
172
- label: {
173
- id: "components.FilterOptions.FILTER_TYPES.$ne",
174
- defaultMessage: "is not"
175
- },
176
- value: "$ne"
177
- }
178
- ],
179
- label: {
180
- id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),
181
- defaultMessage: "Assignee"
182
- },
183
- name: "strapi_assignee"
184
- }
185
- ];
186
- export {
187
- REVIEW_WORKFLOW_COLUMNS_EE,
188
- REVIEW_WORKFLOW_FILTERS
189
- };
190
- //# sourceMappingURL=constants-D6NLEhwu-gRKBHArd.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants-D6NLEhwu-gRKBHArd.mjs","sources":["../../../../core/admin/dist/admin/useReviewWorkflows-HwyFyit7.mjs","../../../../core/admin/dist/admin/constants-D6NLEhwu.mjs"],"sourcesContent":["import { i as useGetWorkflowsQuery, j as useCreateWorkflowMutation, k as useUpdateWorkflowMutation, l as useDeleteWorkflowMutation } from './index-1NFAbkxM.mjs';\n\nfunction useReviewWorkflows(params = {}) {\n const { id = \"\", ...queryParams } = params;\n const { data, isLoading } = useGetWorkflowsQuery({\n id,\n populate: \"stages\",\n ...queryParams\n });\n const [createWorkflow] = useCreateWorkflowMutation();\n const [updateWorkflow] = useUpdateWorkflowMutation();\n const [deleteWorkflow] = useDeleteWorkflowMutation();\n const { workflows, meta } = data ?? {};\n return {\n // meta contains e.g. the total of all workflows. we can not use\n // the pagination object here, because the list is not paginated.\n meta,\n workflows,\n isLoading,\n createWorkflow,\n updateWorkflow,\n deleteWorkflow\n };\n}\n\nexport { useReviewWorkflows as u };\n//# sourceMappingURL=useReviewWorkflows-HwyFyit7.mjs.map\n","import { l as useField, g as useDoc, q as getTranslation } from './reducers-IQWvK_9L.mjs';\nimport { d as useAdminUsers, I as getStageColorByHex, a5 as STAGE_ATTRIBUTE_NAME, a6 as ASSIGNEE_ATTRIBUTE_NAME } from './index-1NFAbkxM.mjs';\nimport { jsx, jsxs } from 'react/jsx-runtime';\nimport * as React from 'react';\nimport { Combobox, ComboboxOption, SingleSelect, Flex, Typography, Loader, SingleSelectOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { g as getDisplayName } from './useDocumentLayout-4trWL6Jz.mjs';\nimport { u as useReviewWorkflows } from './useReviewWorkflows-HwyFyit7.mjs';\n\nconst AssigneeFilter = ({ name }) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page\n });\n const users = data?.users || [];\n const field = useField(name);\n const handleChange = (value) => {\n setPage(1);\n field.onChange(name, value);\n };\n return /* @__PURE__ */ jsx(\n Combobox,\n {\n value: field.value,\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.usersSelect.label\",\n defaultMessage: \"Search and select an user to filter\"\n }),\n onChange: handleChange,\n loading: isLoading,\n onLoadMore: () => setPage((prev) => prev + 1),\n children: users.map((user) => {\n return /* @__PURE__ */ jsx(ComboboxOption, { value: user.id.toString(), children: getDisplayName(user, formatMessage) }, user.id);\n })\n }\n );\n};\n\nconst StageFilter = (props) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { workflows, isLoading } = useReviewWorkflows({ filters: { contentTypes: model } });\n const field = useField(props.name);\n const [workflow] = workflows ?? [];\n return /* @__PURE__ */ jsx(\n SingleSelect,\n {\n \"aria-label\": formatMessage({\n id: \"content-manager.components.Filters.reviewWorkflows.label\",\n defaultMessage: \"Search and select an workflow stage to filter\"\n }),\n value: field.value,\n onChange: (value) => {\n field.onChange(props.name, value);\n },\n loading: isLoading,\n customizeContent: () => /* @__PURE__ */ jsxs(Flex, { as: \"span\", justifyContent: \"space-between\", alignItems: \"center\", width: \"100%\", children: [\n /* @__PURE__ */ jsx(Typography, { textColor: \"neutral800\", ellipsis: true, children: field.value }),\n isLoading ? /* @__PURE__ */ jsx(Loader, { small: true, style: { display: \"flex\" } }) : null\n ] }),\n children: (workflow?.stages ?? []).map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n return /* @__PURE__ */ jsx(\n SingleSelectOption,\n {\n startIcon: /* @__PURE__ */ jsx(\n Flex,\n {\n height: 2,\n background: color,\n borderColor: themeColorName === \"neutral0\" ? \"neutral150\" : void 0,\n hasRadius: true,\n shrink: 0,\n width: 2\n }\n ),\n value: name,\n children: name\n },\n id\n );\n })\n }\n );\n};\n\nconst REVIEW_WORKFLOW_COLUMNS_EE = [\n {\n name: STAGE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n relation: \"oneToMany\",\n target: \"admin::review-workflow-stage\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"name\",\n type: \"string\"\n }\n },\n {\n name: ASSIGNEE_ATTRIBUTE_NAME,\n attribute: {\n type: \"relation\",\n target: \"admin::user\",\n relation: \"oneToMany\"\n },\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee`),\n defaultMessage: \"Assignee\"\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: \"firstname\",\n type: \"string\"\n }\n }\n];\nconst REVIEW_WORKFLOW_FILTERS = [\n {\n mainField: {\n name: \"name\",\n type: \"string\"\n },\n input: StageFilter,\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.stage`),\n defaultMessage: \"Review stage\"\n },\n name: \"strapi_stage\",\n type: \"relation\"\n },\n {\n type: \"relation\",\n mainField: {\n name: \"id\",\n type: \"integer\"\n },\n input: AssigneeFilter,\n operators: [\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$eq\",\n defaultMessage: \"is\"\n },\n value: \"$eq\"\n },\n {\n label: {\n id: \"components.FilterOptions.FILTER_TYPES.$ne\",\n defaultMessage: \"is not\"\n },\n value: \"$ne\"\n }\n ],\n label: {\n id: getTranslation(`containers.list.table-headers.reviewWorkflows.assignee.label`),\n defaultMessage: \"Assignee\"\n },\n name: \"strapi_assignee\"\n }\n];\n\nexport { REVIEW_WORKFLOW_COLUMNS_EE, REVIEW_WORKFLOW_FILTERS };\n//# sourceMappingURL=constants-D6NLEhwu.mjs.map\n"],"names":[],"mappings":"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"}