@strapi/admin 5.0.0-beta.9 → 5.0.0-rc.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.
- package/LICENSE +18 -3
- package/dist/admin/{AdminSeatInfo-cqB8nHFZ.js → AdminSeatInfo-E8azTFQY.js} +5 -5
- package/dist/admin/AdminSeatInfo-E8azTFQY.js.map +1 -0
- package/dist/admin/{AdminSeatInfo-_UxgNKbX.mjs → AdminSeatInfo-Q_hUNC5B.mjs} +5 -5
- package/dist/admin/AdminSeatInfo-Q_hUNC5B.mjs.map +1 -0
- package/dist/admin/{ApplicationInfoPage-6PD2owY8.mjs → ApplicationInfoPage-FvuI2dqs.mjs} +153 -158
- package/dist/admin/ApplicationInfoPage-FvuI2dqs.mjs.map +1 -0
- package/dist/admin/{ApplicationInfoPage-S18loXTF.js → ApplicationInfoPage-ODW6epX5.js} +161 -166
- package/dist/admin/ApplicationInfoPage-ODW6epX5.js.map +1 -0
- package/dist/admin/{AuthResponse-Y4lblDuD.mjs → AuthResponse-J8A48xdo.mjs} +9 -5
- package/dist/admin/AuthResponse-J8A48xdo.mjs.map +1 -0
- package/dist/admin/{AuthResponse-EiDRhJY8.js → AuthResponse-KlTDmm2i.js} +10 -6
- package/dist/admin/AuthResponse-KlTDmm2i.js.map +1 -0
- package/dist/admin/{AuthenticatedLayout-gOaUXjO8.mjs → AuthenticatedLayout-1zXrNSte.mjs} +177 -166
- package/dist/admin/AuthenticatedLayout-1zXrNSte.mjs.map +1 -0
- package/dist/admin/{AuthenticatedLayout-MDNNJRPg.js → AuthenticatedLayout-haMSd2JF.js} +192 -181
- package/dist/admin/AuthenticatedLayout-haMSd2JF.js.map +1 -0
- package/dist/admin/CreateActionEE-Yfp4hs7a.mjs +49 -0
- package/dist/admin/CreateActionEE-Yfp4hs7a.mjs.map +1 -0
- package/dist/admin/CreateActionEE-uqyKLxwI.js +76 -0
- package/dist/admin/CreateActionEE-uqyKLxwI.js.map +1 -0
- package/dist/admin/{CreatePage-puzZjQXr.mjs → CreatePage-UzCNaW8h.mjs} +13 -14
- package/dist/admin/CreatePage-UzCNaW8h.mjs.map +1 -0
- package/dist/admin/{CreatePage-Z_y-A5xj.js → CreatePage-X9rp03gy.js} +5 -5
- package/dist/admin/{CreatePage-Z_y-A5xj.js.map → CreatePage-X9rp03gy.js.map} +1 -1
- package/dist/admin/{CreatePage-GD7KENsP.mjs → CreatePage-embavU6j.mjs} +3 -3
- package/dist/admin/{CreatePage-GD7KENsP.mjs.map → CreatePage-embavU6j.mjs.map} +1 -1
- package/dist/admin/{CreatePage-5V60DKB0.js → CreatePage-zeisnPM2.js} +18 -19
- package/dist/admin/CreatePage-zeisnPM2.js.map +1 -0
- package/dist/admin/{CreateView-EjqRVjU_.mjs → CreateView-SQFk7zP8.mjs} +3 -3
- package/dist/admin/{CreateView-EjqRVjU_.mjs.map → CreateView-SQFk7zP8.mjs.map} +1 -1
- package/dist/admin/CreateView-Smkfwq2U.js +17 -0
- package/dist/admin/{CreateView-VYprogwB.js.map → CreateView-Smkfwq2U.js.map} +1 -1
- package/dist/admin/{CreateView-jM_w7R83.mjs → CreateView-phBO6q6q.mjs} +3 -3
- package/dist/admin/{CreateView-jM_w7R83.mjs.map → CreateView-phBO6q6q.mjs.map} +1 -1
- package/dist/admin/CreateView-yQvtXeP2.js +17 -0
- package/dist/admin/{CreateView-5V271zBl.js.map → CreateView-yQvtXeP2.js.map} +1 -1
- package/dist/admin/{EditPage-vRwS2OJZ.js → EditPage-1svcLlQN.js} +19 -19
- package/dist/admin/EditPage-1svcLlQN.js.map +1 -0
- package/dist/admin/{EditPage-HsLjcfgK.js → EditPage-GM7gM7Np.js} +15 -15
- package/dist/admin/EditPage-GM7gM7Np.js.map +1 -0
- package/dist/admin/{EditPage-W_qlhF-2.mjs → EditPage-QHC3cITE.mjs} +11 -11
- package/dist/admin/EditPage-QHC3cITE.mjs.map +1 -0
- package/dist/admin/{EditPage-WuJtih1X.js → EditPage-ix4Or3TO.js} +96 -91
- package/dist/admin/EditPage-ix4Or3TO.js.map +1 -0
- package/dist/admin/{EditPage-8_dXc9y1.mjs → EditPage-riE7hBMx.mjs} +9 -9
- package/dist/admin/EditPage-riE7hBMx.mjs.map +1 -0
- package/dist/admin/{EditPage-8fk5JEO7.mjs → EditPage-xDZwHLDD.mjs} +91 -86
- package/dist/admin/EditPage-xDZwHLDD.mjs.map +1 -0
- package/dist/admin/{EditView-Cac025JW.mjs → EditView-3TBDETCw.mjs} +10 -10
- package/dist/admin/EditView-3TBDETCw.mjs.map +1 -0
- package/dist/admin/{EditView-lhhZAQtN.js → EditView-z-CFelH2.js} +19 -19
- package/dist/admin/EditView-z-CFelH2.js.map +1 -0
- package/dist/admin/{EditViewPage-Q7N1TLU9.js → EditViewPage-Kw7Ezpay.js} +32 -32
- package/dist/admin/EditViewPage-Kw7Ezpay.js.map +1 -0
- package/dist/admin/{EditViewPage-f56oKqQ-.mjs → EditViewPage-M5Bto2f0.mjs} +23 -23
- package/dist/admin/EditViewPage-M5Bto2f0.mjs.map +1 -0
- package/dist/admin/{EventsTable-y6XT7dVi.js → EventsTable-ihsVS1kY.js} +2 -2
- package/dist/admin/{EventsTable-y6XT7dVi.js.map → EventsTable-ihsVS1kY.js.map} +1 -1
- package/dist/admin/{EventsTable-duSraBTj.mjs → EventsTable-xNALq0Xl.mjs} +2 -2
- package/dist/admin/{EventsTable-duSraBTj.mjs.map → EventsTable-xNALq0Xl.mjs.map} +1 -1
- package/dist/admin/{HomePage-UTLFs-4n.mjs → HomePage-1iC-u-RM.mjs} +3 -3
- package/dist/admin/{HomePage-UTLFs-4n.mjs.map → HomePage-1iC-u-RM.mjs.map} +1 -1
- package/dist/admin/{HomePage-vTms2gld.js → HomePage-5XpRwLIS.js} +3 -3
- package/dist/admin/{HomePage-vTms2gld.js.map → HomePage-5XpRwLIS.js.map} +1 -1
- package/dist/admin/{HomePage-4Hk9puW_.js → HomePage-6JeS-ulc.js} +18 -18
- package/dist/admin/HomePage-6JeS-ulc.js.map +1 -0
- package/dist/admin/{HomePage-d4h0KEnw.mjs → HomePage-pBVsiRLB.mjs} +12 -12
- package/dist/admin/HomePage-pBVsiRLB.mjs.map +1 -0
- package/dist/admin/{InstalledPluginsPage-9ooKCsS7.js → InstalledPluginsPage-QYeyWKla.js} +10 -10
- package/dist/admin/{InstalledPluginsPage-9ooKCsS7.js.map → InstalledPluginsPage-QYeyWKla.js.map} +1 -1
- package/dist/admin/{InstalledPluginsPage-nCdAsAAu.mjs → InstalledPluginsPage-wwA3VULI.mjs} +4 -4
- package/dist/admin/{InstalledPluginsPage-nCdAsAAu.mjs.map → InstalledPluginsPage-wwA3VULI.mjs.map} +1 -1
- package/dist/admin/{Layout-Ax9QtxH1.mjs → Layout-Dg3BpNCD.mjs} +22 -10
- package/dist/admin/Layout-Dg3BpNCD.mjs.map +1 -0
- package/dist/admin/{Layout-Bmmqv9h6.js → Layout-n5Z9I_69.js} +26 -14
- package/dist/admin/Layout-n5Z9I_69.js.map +1 -0
- package/dist/admin/{ListPage-4nzagne8.js → ListPage-8Tez014i.js} +79 -43
- package/dist/admin/ListPage-8Tez014i.js.map +1 -0
- package/dist/admin/{ListPage-10_h7FUt.js → ListPage-8iWYEe2_.js} +50 -49
- package/dist/admin/ListPage-8iWYEe2_.js.map +1 -0
- package/dist/admin/{ListPage-TWLqkRt6.js → ListPage-CxUAyot2.js} +27 -32
- package/dist/admin/ListPage-CxUAyot2.js.map +1 -0
- package/dist/admin/{ListPage-4n-Xb2aE.js → ListPage-KOIEopQN.js} +3 -3
- package/dist/admin/{ListPage-4n-Xb2aE.js.map → ListPage-KOIEopQN.js.map} +1 -1
- package/dist/admin/{ListPage-4kGSO2Ri.mjs → ListPage-Ka430VWJ.mjs} +40 -39
- package/dist/admin/ListPage-Ka430VWJ.mjs.map +1 -0
- package/dist/admin/{ListPage-OE9xQffQ.mjs → ListPage-P4Apgmd-.mjs} +18 -23
- package/dist/admin/ListPage-P4Apgmd-.mjs.map +1 -0
- package/dist/admin/{ListPage-EPIYY3Uf.mjs → ListPage-PfBDJtky.mjs} +71 -35
- package/dist/admin/ListPage-PfBDJtky.mjs.map +1 -0
- package/dist/admin/{ListPage-gbCO5Otz.mjs → ListPage-SnOw9EMq.mjs} +3 -3
- package/dist/admin/{ListPage-gbCO5Otz.mjs.map → ListPage-SnOw9EMq.mjs.map} +1 -1
- package/dist/admin/{ListPage-IgkmnCSY.js → ListPage-XYrZSP2n.js} +15 -22
- package/dist/admin/ListPage-XYrZSP2n.js.map +1 -0
- package/dist/admin/{ListPage-VGqEsiEA.mjs → ListPage-_sJsfVLq.mjs} +7 -14
- package/dist/admin/ListPage-_sJsfVLq.mjs.map +1 -0
- package/dist/admin/{ListView-uHb_Hgib.js → ListView-6U-6GqOi.js} +13 -13
- package/dist/admin/{ListView-uHb_Hgib.js.map → ListView-6U-6GqOi.js.map} +1 -1
- package/dist/admin/{ListView-Zvs5X2St.mjs → ListView-UKJyJnd2.mjs} +4 -4
- package/dist/admin/{ListView-Zvs5X2St.mjs.map → ListView-UKJyJnd2.mjs.map} +1 -1
- package/dist/admin/{ListView-pT2a-fdi.js → ListView-u3bQ6Jrd.js} +13 -13
- package/dist/admin/{ListView-pT2a-fdi.js.map → ListView-u3bQ6Jrd.js.map} +1 -1
- package/dist/admin/{ListView-gKrpPLEM.mjs → ListView-udsJ7zMT.mjs} +4 -4
- package/dist/admin/{ListView-gKrpPLEM.mjs.map → ListView-udsJ7zMT.mjs.map} +1 -1
- package/dist/admin/{Login-EcSP4AMG.js → Login-iUJs_YTe.js} +5 -5
- package/dist/admin/{Login-EcSP4AMG.js.map → Login-iUJs_YTe.js.map} +1 -1
- package/dist/admin/{Login-w4BUlNaE.mjs → Login-qOZJMFOX.mjs} +4 -4
- package/dist/admin/{Login-w4BUlNaE.mjs.map → Login-qOZJMFOX.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-b9NK8XXY.mjs → MagicLinkEE--uHOs_Sh.mjs} +3 -3
- package/dist/admin/{MagicLinkEE-b9NK8XXY.mjs.map → MagicLinkEE--uHOs_Sh.mjs.map} +1 -1
- package/dist/admin/{MagicLinkEE-qT5OE9Pm.js → MagicLinkEE-ZHDAMHRp.js} +3 -3
- package/dist/admin/{MagicLinkEE-qT5OE9Pm.js.map → MagicLinkEE-ZHDAMHRp.js.map} +1 -1
- package/dist/admin/{MarketplacePage-MVRrpUSk.js → MarketplacePage-FLcrHGFN.js} +123 -150
- package/dist/admin/MarketplacePage-FLcrHGFN.js.map +1 -0
- package/dist/admin/{MarketplacePage-oGhZBKgX.mjs → MarketplacePage-KyupKstI.mjs} +111 -138
- package/dist/admin/MarketplacePage-KyupKstI.mjs.map +1 -0
- package/dist/admin/{Ornaments-h_LCCr5P.mjs → Ornaments-jAwgQeK0.mjs} +2 -2
- package/dist/admin/{Ornaments-h_LCCr5P.mjs.map → Ornaments-jAwgQeK0.mjs.map} +1 -1
- package/dist/admin/{Ornaments-UTssGzOw.js → Ornaments-sFPQPOtb.js} +2 -2
- package/dist/admin/{Ornaments-UTssGzOw.js.map → Ornaments-sFPQPOtb.js.map} +1 -1
- package/dist/admin/{Permissions-kNVZVLmu.js → Permissions-SuZE5tW3.js} +265 -277
- package/dist/admin/Permissions-SuZE5tW3.js.map +1 -0
- package/dist/admin/{Permissions-lf6dNG4S.mjs → Permissions-oxdduJgE.mjs} +256 -269
- package/dist/admin/Permissions-oxdduJgE.mjs.map +1 -0
- package/dist/admin/{PrivateRoute-1hyhztQM.mjs → PrivateRoute-4oRTB_tX.mjs} +2 -2
- package/dist/admin/{PrivateRoute-1hyhztQM.mjs.map → PrivateRoute-4oRTB_tX.mjs.map} +1 -1
- package/dist/admin/{PrivateRoute-wBE5vMxe.js → PrivateRoute-ndqg7K6H.js} +3 -3
- package/dist/admin/{PrivateRoute-wBE5vMxe.js.map → PrivateRoute-ndqg7K6H.js.map} +1 -1
- package/dist/admin/{ProfilePage-zk-Py9wt.mjs → ProfilePage-4dKn6UUc.mjs} +10 -10
- package/dist/admin/ProfilePage-4dKn6UUc.mjs.map +1 -0
- package/dist/admin/{ProfilePage-ZlpnTKEF.js → ProfilePage-Ryrm4G10.js} +23 -23
- package/dist/admin/ProfilePage-Ryrm4G10.js.map +1 -0
- package/dist/admin/{PurchaseAuditLogs-9reb0oGz.js → PurchaseAuditLogs-EDV5UGnG.js} +2 -2
- package/dist/admin/{PurchaseAuditLogs-9reb0oGz.js.map → PurchaseAuditLogs-EDV5UGnG.js.map} +1 -1
- package/dist/admin/{PurchaseAuditLogs-iOYsTJA-.mjs → PurchaseAuditLogs-K5ZTiR8K.mjs} +2 -2
- package/dist/admin/{PurchaseAuditLogs-iOYsTJA-.mjs.map → PurchaseAuditLogs-K5ZTiR8K.mjs.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-S3xLiiv7.js → PurchaseSingleSignOn--Cb7M20e.js} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-S3xLiiv7.js.map → PurchaseSingleSignOn--Cb7M20e.js.map} +1 -1
- package/dist/admin/{PurchaseSingleSignOn-X629iA7K.mjs → PurchaseSingleSignOn-c143s7mz.mjs} +2 -2
- package/dist/admin/{PurchaseSingleSignOn-X629iA7K.mjs.map → PurchaseSingleSignOn-c143s7mz.mjs.map} +1 -1
- package/dist/admin/{SSOProviders-AirHFyBl.js → SSOProviders-QBcyB9VI.js} +5 -5
- package/dist/admin/SSOProviders-QBcyB9VI.js.map +1 -0
- package/dist/admin/{SSOProviders-t8D-v8As.mjs → SSOProviders-nMmBLr8g.mjs} +6 -6
- package/dist/admin/SSOProviders-nMmBLr8g.mjs.map +1 -0
- package/dist/admin/{SelectRoles-yM-LT458.mjs → SelectRoles-psJuDrRF.mjs} +4 -4
- package/dist/admin/{SelectRoles-yM-LT458.mjs.map → SelectRoles-psJuDrRF.mjs.map} +1 -1
- package/dist/admin/{SelectRoles-hyiyvsCG.js → SelectRoles-x3GAhhSJ.js} +5 -5
- package/dist/admin/{SelectRoles-hyiyvsCG.js.map → SelectRoles-x3GAhhSJ.js.map} +1 -1
- package/dist/admin/{SingleSignOnPage-3Mfu4dgn.js → SingleSignOnPage-83q-C4t-.js} +17 -17
- package/dist/admin/SingleSignOnPage-83q-C4t-.js.map +1 -0
- package/dist/admin/{SingleSignOnPage-wPZ1tqEk.mjs → SingleSignOnPage-9l6JRqDd.mjs} +7 -7
- package/dist/admin/SingleSignOnPage-9l6JRqDd.mjs.map +1 -0
- package/dist/admin/{Table-OcYvBab7.mjs → Table-I-45hnM1.mjs} +11 -22
- package/dist/admin/Table-I-45hnM1.mjs.map +1 -0
- package/dist/admin/{Table-N9PZc6xL.js → Table-oO6QTH1W.js} +12 -23
- package/dist/admin/Table-oO6QTH1W.js.map +1 -0
- package/dist/admin/{rbac-5b9ylhpa.js → Theme-7W0we6BI.js} +147 -80
- package/dist/admin/Theme-7W0we6BI.js.map +1 -0
- package/dist/admin/{rbac-oJEkQdXG.mjs → Theme-PrUuuGtN.mjs} +140 -81
- package/dist/admin/Theme-PrUuuGtN.mjs.map +1 -0
- package/dist/admin/{TokenTypeSelect-dWn05yGP.js → TokenTypeSelect-26DfB0-O.js} +10 -12
- package/dist/admin/TokenTypeSelect-26DfB0-O.js.map +1 -0
- package/dist/admin/{TokenTypeSelect-v6IYPaBF.mjs → TokenTypeSelect-xCzuaMQo.mjs} +7 -9
- package/dist/admin/TokenTypeSelect-xCzuaMQo.mjs.map +1 -0
- package/dist/admin/{UseCasePage-ijq-Bur_.js → UseCasePage-WtuQk75n.js} +6 -6
- package/dist/admin/{UseCasePage-ijq-Bur_.js.map → UseCasePage-WtuQk75n.js.map} +1 -1
- package/dist/admin/{UseCasePage-P4AFdcDQ.mjs → UseCasePage-fXNd00ES.mjs} +4 -4
- package/dist/admin/{UseCasePage-P4AFdcDQ.mjs.map → UseCasePage-fXNd00ES.mjs.map} +1 -1
- package/dist/admin/{constants-sfZ2gFzJ.js → constants-GyaJoB7C.js} +5 -5
- package/dist/admin/{constants-sfZ2gFzJ.js.map → constants-GyaJoB7C.js.map} +1 -1
- package/dist/admin/{constants-Z-zrJ7Zs.mjs → constants-nzCvle10.mjs} +4 -4
- package/dist/admin/{constants-Z-zrJ7Zs.mjs.map → constants-nzCvle10.mjs.map} +1 -1
- package/dist/admin/{en-K35WIWVM.mjs → en-0Ld-ipyI.mjs} +3 -2
- package/dist/admin/{en-K35WIWVM.mjs.map → en-0Ld-ipyI.mjs.map} +1 -1
- package/dist/admin/{en-G-ukrF2h.js → en-TbnMBjZf.js} +3 -2
- package/dist/admin/{en-G-ukrF2h.js.map → en-TbnMBjZf.js.map} +1 -1
- package/dist/admin/{index-duYn5r8_.js → index-TG8-3711.js} +1524 -1425
- package/dist/admin/index-TG8-3711.js.map +1 -0
- package/dist/admin/{index-EQL2s09p.mjs → index-f6STHGSC.mjs} +1479 -1377
- package/dist/admin/index-f6STHGSC.mjs.map +1 -0
- package/dist/admin/index.js +12 -12
- package/dist/admin/index.mjs +2 -2
- package/dist/admin/{selectors-Ilww6FA-.mjs → selectors-ZpHhvPK4.mjs} +2 -2
- package/dist/admin/{selectors-Ilww6FA-.mjs.map → selectors-ZpHhvPK4.mjs.map} +1 -1
- package/dist/admin/selectors-zQKcCNuz.js +8 -0
- package/dist/admin/{selectors-NDEu6dJa.js.map → selectors-zQKcCNuz.js.map} +1 -1
- package/dist/admin/src/StrapiApp.d.ts +17 -45
- package/dist/admin/src/components/ConfirmDialog.d.ts +18 -8
- package/dist/admin/src/components/Filters.d.ts +4 -8
- package/dist/admin/src/components/Form.d.ts +6 -1
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +1 -1
- package/dist/admin/src/components/FormInputs/types.d.ts +1 -1
- package/dist/admin/src/components/Layouts/HeaderLayout.d.ts +1 -1
- package/dist/admin/src/components/Layouts/Layout.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +1 -1
- package/dist/admin/src/components/Table.d.ts +1 -1
- package/dist/admin/src/constants/filters.d.ts +2 -1
- package/dist/admin/src/constants.d.ts +3 -3
- package/dist/admin/src/core/apis/router.d.ts +73 -0
- package/dist/admin/src/features/Auth.d.ts +2 -2
- package/dist/admin/src/features/StrapiApp.d.ts +2 -1
- package/dist/admin/src/hooks/useSettingsMenu.d.ts +2 -2
- package/dist/admin/src/index.d.ts +2 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +0 -6
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +4 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +2 -4
- package/dist/admin/src/pages/Settings/pages/Users/components/CreateActionCE.d.ts +2 -1
- package/dist/admin/src/reducer.d.ts +7 -2
- package/dist/admin/src/render.d.ts +1 -0
- package/dist/admin/src/router.d.ts +7 -0
- package/dist/admin/src/services/admin.d.ts +5 -5
- package/dist/admin/src/types/permissions.d.ts +1 -1
- package/dist/admin/test.js +17 -16
- package/dist/admin/test.js.map +1 -1
- package/dist/admin/test.mjs +10 -9
- package/dist/admin/test.mjs.map +1 -1
- package/dist/admin/tests/store.d.ts +2 -1
- package/dist/admin/tests/utils.d.ts +2 -1
- package/dist/admin/{useAdminRoles-cq3ZckdQ.mjs → useAdminRoles-Aj5B2oXT.mjs} +2 -2
- package/dist/admin/{useAdminRoles-cq3ZckdQ.mjs.map → useAdminRoles-Aj5B2oXT.mjs.map} +1 -1
- package/dist/admin/{useAdminRoles-2VDDweuC.js → useAdminRoles-JbwI6Lrm.js} +2 -2
- package/dist/admin/{useAdminRoles-2VDDweuC.js.map → useAdminRoles-JbwI6Lrm.js.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-1Xo24v-C.mjs → useLicenseLimitNotification-PaR7jmqd.mjs} +2 -2
- package/dist/admin/{useLicenseLimitNotification-1Xo24v-C.mjs.map → useLicenseLimitNotification-PaR7jmqd.mjs.map} +1 -1
- package/dist/admin/{useLicenseLimitNotification-9iq0TFuF.js → useLicenseLimitNotification-g1vq6nzk.js} +3 -3
- package/dist/admin/{useLicenseLimitNotification-9iq0TFuF.js.map → useLicenseLimitNotification-g1vq6nzk.js.map} +1 -1
- package/dist/admin/{useWebhooks-opYGugiT.js → useWebhooks-0RUEkKAV.js} +4 -4
- package/dist/admin/{useWebhooks-opYGugiT.js.map → useWebhooks-0RUEkKAV.js.map} +1 -1
- package/dist/admin/{useWebhooks-bgdpL7W6.mjs → useWebhooks-7thg-d57.mjs} +4 -4
- package/dist/admin/{useWebhooks-bgdpL7W6.mjs.map → useWebhooks-7thg-d57.mjs.map} +1 -1
- package/dist/admin/{validation-qUTUIssJ.mjs → validation-F0JQeiU1.mjs} +2 -2
- package/dist/admin/{validation-qUTUIssJ.mjs.map → validation-F0JQeiU1.mjs.map} +1 -1
- package/dist/admin/{validation-6PUPWFkz.js → validation-hzptxkSz.js} +2 -2
- package/dist/admin/{validation-6PUPWFkz.js.map → validation-hzptxkSz.js.map} +1 -1
- package/dist/ee/admin/src/constants.d.ts +10 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.d.ts +2 -1
- package/dist/ee/server/index.js +1 -3
- package/dist/ee/server/index.js.map +1 -1
- package/dist/ee/server/index.mjs +1 -3
- package/dist/ee/server/index.mjs.map +1 -1
- package/dist/package.json.d.ts +13 -10
- package/dist/server/index.js +20 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +18 -1
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
- package/package.json +14 -11
- package/dist/admin/AdminSeatInfo-_UxgNKbX.mjs.map +0 -1
- package/dist/admin/AdminSeatInfo-cqB8nHFZ.js.map +0 -1
- package/dist/admin/ApplicationInfoPage-6PD2owY8.mjs.map +0 -1
- package/dist/admin/ApplicationInfoPage-S18loXTF.js.map +0 -1
- package/dist/admin/AuthResponse-EiDRhJY8.js.map +0 -1
- package/dist/admin/AuthResponse-Y4lblDuD.mjs.map +0 -1
- package/dist/admin/AuthenticatedLayout-MDNNJRPg.js.map +0 -1
- package/dist/admin/AuthenticatedLayout-gOaUXjO8.mjs.map +0 -1
- package/dist/admin/CreateActionEE-dGj-JbWV.js +0 -53
- package/dist/admin/CreateActionEE-dGj-JbWV.js.map +0 -1
- package/dist/admin/CreateActionEE-uBGAkLbn.mjs +0 -45
- package/dist/admin/CreateActionEE-uBGAkLbn.mjs.map +0 -1
- package/dist/admin/CreatePage-5V60DKB0.js.map +0 -1
- package/dist/admin/CreatePage-puzZjQXr.mjs.map +0 -1
- package/dist/admin/CreateView-5V271zBl.js +0 -17
- package/dist/admin/CreateView-VYprogwB.js +0 -17
- package/dist/admin/EditPage-8_dXc9y1.mjs.map +0 -1
- package/dist/admin/EditPage-8fk5JEO7.mjs.map +0 -1
- package/dist/admin/EditPage-HsLjcfgK.js.map +0 -1
- package/dist/admin/EditPage-W_qlhF-2.mjs.map +0 -1
- package/dist/admin/EditPage-WuJtih1X.js.map +0 -1
- package/dist/admin/EditPage-vRwS2OJZ.js.map +0 -1
- package/dist/admin/EditView-Cac025JW.mjs.map +0 -1
- package/dist/admin/EditView-lhhZAQtN.js.map +0 -1
- package/dist/admin/EditViewPage-Q7N1TLU9.js.map +0 -1
- package/dist/admin/EditViewPage-f56oKqQ-.mjs.map +0 -1
- package/dist/admin/HomePage-4Hk9puW_.js.map +0 -1
- package/dist/admin/HomePage-d4h0KEnw.mjs.map +0 -1
- package/dist/admin/Layout-Ax9QtxH1.mjs.map +0 -1
- package/dist/admin/Layout-Bmmqv9h6.js.map +0 -1
- package/dist/admin/ListPage-10_h7FUt.js.map +0 -1
- package/dist/admin/ListPage-4kGSO2Ri.mjs.map +0 -1
- package/dist/admin/ListPage-4nzagne8.js.map +0 -1
- package/dist/admin/ListPage-EPIYY3Uf.mjs.map +0 -1
- package/dist/admin/ListPage-IgkmnCSY.js.map +0 -1
- package/dist/admin/ListPage-OE9xQffQ.mjs.map +0 -1
- package/dist/admin/ListPage-TWLqkRt6.js.map +0 -1
- package/dist/admin/ListPage-VGqEsiEA.mjs.map +0 -1
- package/dist/admin/MarketplacePage-MVRrpUSk.js.map +0 -1
- package/dist/admin/MarketplacePage-oGhZBKgX.mjs.map +0 -1
- package/dist/admin/Permissions-kNVZVLmu.js.map +0 -1
- package/dist/admin/Permissions-lf6dNG4S.mjs.map +0 -1
- package/dist/admin/ProfilePage-ZlpnTKEF.js.map +0 -1
- package/dist/admin/ProfilePage-zk-Py9wt.mjs.map +0 -1
- package/dist/admin/SSOProviders-AirHFyBl.js.map +0 -1
- package/dist/admin/SSOProviders-t8D-v8As.mjs.map +0 -1
- package/dist/admin/SingleSignOnPage-3Mfu4dgn.js.map +0 -1
- package/dist/admin/SingleSignOnPage-wPZ1tqEk.mjs.map +0 -1
- package/dist/admin/Table-N9PZc6xL.js.map +0 -1
- package/dist/admin/Table-OcYvBab7.mjs.map +0 -1
- package/dist/admin/TokenTypeSelect-dWn05yGP.js.map +0 -1
- package/dist/admin/TokenTypeSelect-v6IYPaBF.mjs.map +0 -1
- package/dist/admin/index-EQL2s09p.mjs.map +0 -1
- package/dist/admin/index-duYn5r8_.js.map +0 -1
- package/dist/admin/rbac-5b9ylhpa.js.map +0 -1
- package/dist/admin/rbac-oJEkQdXG.mjs.map +0 -1
- package/dist/admin/selectors-NDEu6dJa.js +0 -8
|
@@ -9,13 +9,13 @@ const icons = require('@strapi/icons');
|
|
|
9
9
|
const qs = require('qs');
|
|
10
10
|
const reactIntl = require('react-intl');
|
|
11
11
|
const reactRouterDom = require('react-router-dom');
|
|
12
|
-
const index = require('./index-
|
|
13
|
-
const
|
|
12
|
+
const index = require('./index-TG8-3711.js');
|
|
13
|
+
const Theme = require('./Theme-7W0we6BI.js');
|
|
14
14
|
const useEnterprise = require('./useEnterprise-DUs6BYlP.js');
|
|
15
15
|
const users = require('./users-R5A0kUOV.js');
|
|
16
16
|
const yup = require('yup');
|
|
17
17
|
const admin = require('./admin-p0djr5G6.js');
|
|
18
|
-
const SelectRoles = require('./SelectRoles-
|
|
18
|
+
const SelectRoles = require('./SelectRoles-x3GAhhSJ.js');
|
|
19
19
|
|
|
20
20
|
function _interopNamespace(e) {
|
|
21
21
|
if (e && e.__esModule) return e;
|
|
@@ -39,23 +39,23 @@ const React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
39
39
|
const qs__namespace = /*#__PURE__*/_interopNamespace(qs);
|
|
40
40
|
const yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
41
41
|
|
|
42
|
-
const CreateActionCE = (
|
|
42
|
+
const CreateActionCE = React__namespace.forwardRef((props, ref) => {
|
|
43
43
|
const { formatMessage } = reactIntl.useIntl();
|
|
44
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, {
|
|
44
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { ref, startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Mail, {}), size: "S", ...props, children: formatMessage({
|
|
45
45
|
id: "Settings.permissions.users.create",
|
|
46
46
|
defaultMessage: "Invite new user"
|
|
47
47
|
}) });
|
|
48
|
-
};
|
|
48
|
+
});
|
|
49
49
|
|
|
50
50
|
const ModalForm = ({ onToggle }) => {
|
|
51
51
|
const [currentStep, setStep] = React__namespace.useState("create");
|
|
52
52
|
const [registrationToken, setRegistrationToken] = React__namespace.useState("");
|
|
53
53
|
const { formatMessage } = reactIntl.useIntl();
|
|
54
|
-
const { toggleNotification } =
|
|
54
|
+
const { toggleNotification } = Theme.useNotification();
|
|
55
55
|
const {
|
|
56
56
|
_unstableFormatAPIError: formatAPIError,
|
|
57
57
|
_unstableFormatValidationErrors: formatValidationErrors
|
|
58
|
-
} =
|
|
58
|
+
} = Theme.useAPIErrorHandler();
|
|
59
59
|
const roleLayout = useEnterprise.useEnterprise(
|
|
60
60
|
ROLE_LAYOUT,
|
|
61
61
|
async () => (await Promise.resolve().then(() => require('./ModalForm-wXXenEdW.js'))).ROLE_LAYOUT,
|
|
@@ -81,7 +81,7 @@ const ModalForm = ({ onToggle }) => {
|
|
|
81
81
|
);
|
|
82
82
|
const MagicLink = useEnterprise.useEnterprise(
|
|
83
83
|
SelectRoles.MagicLinkCE,
|
|
84
|
-
async () => (await Promise.resolve().then(() => require('./MagicLinkEE-
|
|
84
|
+
async () => (await Promise.resolve().then(() => require('./MagicLinkEE-ZHDAMHRp.js'))).MagicLinkEE
|
|
85
85
|
);
|
|
86
86
|
const [createUser] = index.useCreateUserMutation();
|
|
87
87
|
const headerTitle = formatMessage({
|
|
@@ -96,13 +96,8 @@ const ModalForm = ({ onToggle }) => {
|
|
|
96
96
|
if ("data" in res) {
|
|
97
97
|
if (res.data.registrationToken) {
|
|
98
98
|
setRegistrationToken(res.data.registrationToken);
|
|
99
|
-
goNext();
|
|
100
|
-
} else {
|
|
101
|
-
toggleNotification({
|
|
102
|
-
type: "danger",
|
|
103
|
-
message: formatMessage({ id: "notification.error", defaultMessage: "An error occured" })
|
|
104
|
-
});
|
|
105
99
|
}
|
|
100
|
+
goNext();
|
|
106
101
|
} else {
|
|
107
102
|
toggleNotification({
|
|
108
103
|
type: "danger",
|
|
@@ -124,8 +119,8 @@ const ModalForm = ({ onToggle }) => {
|
|
|
124
119
|
if (!MagicLink) {
|
|
125
120
|
return null;
|
|
126
121
|
}
|
|
127
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
128
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
122
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { defaultOpen: true, onOpenChange: onToggle, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
|
|
123
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Breadcrumbs, { label: headerTitle, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Crumb, { isCurrent: true, children: headerTitle }) }) }),
|
|
129
124
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
130
125
|
index.Form,
|
|
131
126
|
{
|
|
@@ -135,16 +130,16 @@ const ModalForm = ({ onToggle }) => {
|
|
|
135
130
|
validationSchema: FORM_SCHEMA,
|
|
136
131
|
children: ({ isSubmitting }) => {
|
|
137
132
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
138
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
|
|
139
134
|
currentStep !== "create" && /* @__PURE__ */ jsxRuntime.jsx(MagicLink, { registrationToken }),
|
|
140
135
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { children: [
|
|
141
136
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "beta", tag: "h2", children: formatMessage({
|
|
142
137
|
id: "app.components.Users.ModalCreateBody.block-title.details",
|
|
143
138
|
defaultMessage: "User details"
|
|
144
139
|
}) }),
|
|
145
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 5, children: FORM_LAYOUT.map((row) => {
|
|
140
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 4, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 5, children: FORM_LAYOUT.map((row) => {
|
|
146
141
|
return row.map(({ size, ...field }) => {
|
|
147
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
142
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
148
143
|
index.MemoizedInputRenderer,
|
|
149
144
|
{
|
|
150
145
|
...field,
|
|
@@ -161,11 +156,11 @@ const ModalForm = ({ onToggle }) => {
|
|
|
161
156
|
id: "global.roles",
|
|
162
157
|
defaultMessage: "User's role"
|
|
163
158
|
}) }),
|
|
164
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { gap: 5, children: [
|
|
165
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
159
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { gap: 5, children: [
|
|
160
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(SelectRoles.SelectRoles, { disabled: isDisabled }) }),
|
|
166
161
|
roleLayout.map((row) => {
|
|
167
162
|
return row.map(({ size, ...field }) => {
|
|
168
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
163
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
169
164
|
index.MemoizedInputRenderer,
|
|
170
165
|
{
|
|
171
166
|
...field,
|
|
@@ -180,21 +175,18 @@ const ModalForm = ({ onToggle }) => {
|
|
|
180
175
|
] }) })
|
|
181
176
|
] })
|
|
182
177
|
] }) }),
|
|
183
|
-
/* @__PURE__ */ jsxRuntime.
|
|
184
|
-
designSystem.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
endActions: currentStep === "create" ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", loading: isSubmitting, children: formatMessage(buttonSubmitLabel) }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "button", loading: isSubmitting, onClick: onToggle, children: formatMessage(buttonSubmitLabel) })
|
|
191
|
-
}
|
|
192
|
-
)
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
|
|
179
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
|
|
180
|
+
id: "app.components.Button.cancel",
|
|
181
|
+
defaultMessage: "Cancel"
|
|
182
|
+
}) }),
|
|
183
|
+
currentStep === "create" ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", loading: isSubmitting, children: formatMessage(buttonSubmitLabel) }) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "button", loading: isSubmitting, onClick: onToggle, children: formatMessage(buttonSubmitLabel) })
|
|
184
|
+
] })
|
|
193
185
|
] });
|
|
194
186
|
}
|
|
195
187
|
}
|
|
196
188
|
)
|
|
197
|
-
] });
|
|
189
|
+
] }) });
|
|
198
190
|
};
|
|
199
191
|
const FORM_INITIAL_VALUES = {
|
|
200
192
|
firstname: "",
|
|
@@ -285,21 +277,23 @@ const STEPPER = {
|
|
|
285
277
|
};
|
|
286
278
|
|
|
287
279
|
const ListPageCE = () => {
|
|
288
|
-
const { _unstableFormatAPIError: formatAPIError } =
|
|
280
|
+
const { _unstableFormatAPIError: formatAPIError } = Theme.useAPIErrorHandler();
|
|
289
281
|
const [isModalOpened, setIsModalOpen] = React__namespace.useState(false);
|
|
290
|
-
const permissions =
|
|
282
|
+
const permissions = Theme.useTypedSelector((state) => state.admin_app.permissions);
|
|
291
283
|
const {
|
|
292
284
|
allowedActions: { canCreate, canDelete, canRead }
|
|
293
|
-
} =
|
|
285
|
+
} = Theme.useRBAC(permissions.settings?.users);
|
|
294
286
|
const navigate = reactRouterDom.useNavigate();
|
|
295
|
-
const { toggleNotification } =
|
|
287
|
+
const { toggleNotification } = Theme.useNotification();
|
|
296
288
|
const { formatMessage } = reactIntl.useIntl();
|
|
297
289
|
const { search } = reactRouterDom.useLocation();
|
|
290
|
+
const [showDeleteConfirmation, setShowDeleteConfirmation] = React__namespace.useState(false);
|
|
291
|
+
const [idsToDelete, setIdsToDelete] = React__namespace.useState([]);
|
|
298
292
|
const { data, isError, isLoading } = index.useAdminUsers(qs__namespace.parse(search, { ignoreQueryPrefix: true }));
|
|
299
293
|
const { pagination, users: users$1 = [] } = data ?? {};
|
|
300
294
|
const CreateAction = useEnterprise.useEnterprise(
|
|
301
295
|
CreateActionCE,
|
|
302
|
-
async () => (await Promise.resolve().then(() => require('./CreateActionEE-
|
|
296
|
+
async () => (await Promise.resolve().then(() => require('./CreateActionEE-uqyKLxwI.js'))).CreateActionEE
|
|
303
297
|
);
|
|
304
298
|
const headers = TABLE_HEADERS.map((header) => ({
|
|
305
299
|
...header,
|
|
@@ -323,7 +317,6 @@ const ListPageCE = () => {
|
|
|
323
317
|
});
|
|
324
318
|
}
|
|
325
319
|
} catch (err) {
|
|
326
|
-
console.error(err);
|
|
327
320
|
toggleNotification({
|
|
328
321
|
type: "danger",
|
|
329
322
|
message: formatMessage({
|
|
@@ -338,15 +331,22 @@ const ListPageCE = () => {
|
|
|
338
331
|
navigate(id.toString());
|
|
339
332
|
}
|
|
340
333
|
};
|
|
341
|
-
const handleDeleteClick = (id) => async () =>
|
|
334
|
+
const handleDeleteClick = (id) => async () => {
|
|
335
|
+
setIdsToDelete([id]);
|
|
336
|
+
setShowDeleteConfirmation(true);
|
|
337
|
+
};
|
|
338
|
+
const confirmDelete = async () => {
|
|
339
|
+
await handleDeleteAll(idsToDelete);
|
|
340
|
+
setShowDeleteConfirmation(false);
|
|
341
|
+
};
|
|
342
342
|
if (!CreateAction) {
|
|
343
343
|
return null;
|
|
344
344
|
}
|
|
345
345
|
if (isError) {
|
|
346
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
346
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Error, {});
|
|
347
347
|
}
|
|
348
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
349
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
348
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Theme.Page.Main, { "aria-busy": isLoading, children: [
|
|
349
|
+
/* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Title, { children: formatMessage(
|
|
350
350
|
{ id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
|
|
351
351
|
{
|
|
352
352
|
name: "Users"
|
|
@@ -445,7 +445,8 @@ const ListPageCE = () => {
|
|
|
445
445
|
/* @__PURE__ */ jsxRuntime.jsx(index.Pagination.Links, {})
|
|
446
446
|
] })
|
|
447
447
|
] }),
|
|
448
|
-
isModalOpened && /* @__PURE__ */ jsxRuntime.jsx(ModalForm, { onToggle: handleToggle })
|
|
448
|
+
isModalOpened && /* @__PURE__ */ jsxRuntime.jsx(ModalForm, { onToggle: handleToggle }),
|
|
449
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Root, { open: showDeleteConfirmation, onOpenChange: setShowDeleteConfirmation, children: /* @__PURE__ */ jsxRuntime.jsx(index.ConfirmDialog, { onConfirm: confirmDelete }) })
|
|
449
450
|
] });
|
|
450
451
|
};
|
|
451
452
|
const TABLE_HEADERS = [
|
|
@@ -543,7 +544,7 @@ const ListPage = () => {
|
|
|
543
544
|
ListPageCE,
|
|
544
545
|
async () => (
|
|
545
546
|
// eslint-disable-next-line import/no-cycle
|
|
546
|
-
(await Promise.resolve().then(() => require('./ListPage-
|
|
547
|
+
(await Promise.resolve().then(() => require('./ListPage-KOIEopQN.js'))).UserListPageEE
|
|
547
548
|
)
|
|
548
549
|
);
|
|
549
550
|
if (!UsersListPage) {
|
|
@@ -552,11 +553,11 @@ const ListPage = () => {
|
|
|
552
553
|
return /* @__PURE__ */ jsxRuntime.jsx(UsersListPage, {});
|
|
553
554
|
};
|
|
554
555
|
const ProtectedListPage = () => {
|
|
555
|
-
const permissions =
|
|
556
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
556
|
+
const permissions = Theme.useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);
|
|
557
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(ListPage, {}) });
|
|
557
558
|
};
|
|
558
559
|
|
|
559
560
|
exports.ListPage = ListPage;
|
|
560
561
|
exports.ListPageCE = ListPageCE;
|
|
561
562
|
exports.ProtectedListPage = ProtectedListPage;
|
|
562
|
-
//# sourceMappingURL=ListPage-
|
|
563
|
+
//# sourceMappingURL=ListPage-8iWYEe2_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-8iWYEe2_.js","sources":["../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, ButtonProps } from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>((props, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button ref={ref} startIcon={<Mail />} size=\"S\" {...props}>\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n});\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12}>\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n borderWidth={0}\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n borderWidth={0}\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n <Typography>{isActive ? 'Active' : 'Inactive'}</Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["React","useIntl","jsx","Button","Mail","useNotification","useAPIErrorHandler","useEnterprise","MagicLinkCE","useCreateUserMutation","isBaseQueryError","Modal","jsxs","Breadcrumbs","Crumb","Form","Fragment","Flex","Box","Typography","Grid","InputRenderer","SelectRoles","yup","translatedErrors","useTypedSelector","useRBAC","useNavigate","useLocation","useAdminUsers","qs","users","useDeleteManyUsersMutation","Page","Layouts","SearchInput","Filters","Table","IconButton","NavLink","getDisplayName","Pencil","Trash","Pagination","Dialog","ConfirmDialog","Status"],"mappings":"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"}
|
|
@@ -6,9 +6,10 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const designSystem = require('@strapi/design-system');
|
|
7
7
|
const icons = require('@strapi/icons');
|
|
8
8
|
const reactIntl = require('react-intl');
|
|
9
|
-
const index = require('./index-
|
|
10
|
-
const
|
|
9
|
+
const index = require('./index-TG8-3711.js');
|
|
10
|
+
const Theme = require('./Theme-7W0we6BI.js');
|
|
11
11
|
const React = require('react');
|
|
12
|
+
const styledComponents = require('styled-components');
|
|
12
13
|
const admin = require('./admin-p0djr5G6.js');
|
|
13
14
|
const parseISO = require('date-fns/parseISO');
|
|
14
15
|
const users = require('./users-R5A0kUOV.js');
|
|
@@ -105,8 +106,8 @@ const getDefaultMessage = (value) => {
|
|
|
105
106
|
};
|
|
106
107
|
|
|
107
108
|
const Modal = ({ handleClose, logId }) => {
|
|
108
|
-
const { toggleNotification } =
|
|
109
|
-
const { _unstableFormatAPIError: formatAPIError } =
|
|
109
|
+
const { toggleNotification } = Theme.useNotification();
|
|
110
|
+
const { _unstableFormatAPIError: formatAPIError } = Theme.useAPIErrorHandler();
|
|
110
111
|
const { data, error, isLoading } = useGetAuditLogQuery(logId);
|
|
111
112
|
React__namespace.useEffect(() => {
|
|
112
113
|
if (error) {
|
|
@@ -119,10 +120,10 @@ const Modal = ({ handleClose, logId }) => {
|
|
|
119
120
|
}, [error, formatAPIError, handleClose, toggleNotification]);
|
|
120
121
|
const formatTimeStamp = useFormatTimeStamp();
|
|
121
122
|
const formattedDate = data && "date" in data ? formatTimeStamp(data.date) : "";
|
|
122
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
123
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
124
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
125
|
-
] });
|
|
123
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { defaultOpen: true, onOpenChange: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Breadcrumbs, { label: formattedDate, id: "title", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Crumb, { isCurrent: true, children: formattedDate }) }) }),
|
|
125
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsx(ActionBody, { isLoading, data, formattedDate }) })
|
|
126
|
+
] }) });
|
|
126
127
|
};
|
|
127
128
|
const ActionBody = ({ isLoading, data, formattedDate }) => {
|
|
128
129
|
const { formatMessage } = reactIntl.useIntl();
|
|
@@ -136,7 +137,7 @@ const ActionBody = ({ isLoading, data, formattedDate }) => {
|
|
|
136
137
|
defaultMessage: "Log Details"
|
|
137
138
|
}) }) }),
|
|
138
139
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
139
|
-
designSystem.Grid,
|
|
140
|
+
designSystem.Grid.Root,
|
|
140
141
|
{
|
|
141
142
|
gap: 4,
|
|
142
143
|
gridCols: 2,
|
|
@@ -203,10 +204,14 @@ const ActionBody = ({ isLoading, data, formattedDate }) => {
|
|
|
203
204
|
id: "Settings.permissions.auditLogs.payload",
|
|
204
205
|
defaultMessage: "Payload"
|
|
205
206
|
}) }),
|
|
206
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
207
|
+
/* @__PURE__ */ jsxRuntime.jsx(Payload, { value: JSON.stringify(payload, null, 2), disabled: true })
|
|
207
208
|
] })
|
|
208
209
|
] });
|
|
209
210
|
};
|
|
211
|
+
const Payload = styledComponents.styled(designSystem.JSONInput)`
|
|
212
|
+
max-width: 100%;
|
|
213
|
+
overflow: scroll;
|
|
214
|
+
`;
|
|
210
215
|
const ActionItem = ({ actionLabel, actionName }) => {
|
|
211
216
|
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "baseline", gap: 1, children: [
|
|
212
217
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral600", variant: "sigma", children: actionLabel }),
|
|
@@ -218,8 +223,8 @@ const useAuditLogsData = ({
|
|
|
218
223
|
canReadAuditLogs,
|
|
219
224
|
canReadUsers
|
|
220
225
|
}) => {
|
|
221
|
-
const { toggleNotification } =
|
|
222
|
-
const { _unstableFormatAPIError: formatAPIError } =
|
|
226
|
+
const { toggleNotification } = Theme.useNotification();
|
|
227
|
+
const { _unstableFormatAPIError: formatAPIError } = Theme.useAPIErrorHandler();
|
|
223
228
|
const [{ query }] = index.useQueryParams();
|
|
224
229
|
const {
|
|
225
230
|
data,
|
|
@@ -353,11 +358,11 @@ const getDisplayedFilters = ({
|
|
|
353
358
|
|
|
354
359
|
const ListPage = () => {
|
|
355
360
|
const { formatMessage } = reactIntl.useIntl();
|
|
356
|
-
const permissions =
|
|
361
|
+
const permissions = Theme.useTypedSelector((state) => state.admin_app.permissions.settings);
|
|
357
362
|
const {
|
|
358
363
|
allowedActions: { canRead: canReadAuditLogs, canReadUsers },
|
|
359
364
|
isLoading: isLoadingRBAC
|
|
360
|
-
} =
|
|
365
|
+
} = Theme.useRBAC({
|
|
361
366
|
...permissions?.auditLogs,
|
|
362
367
|
readUsers: permissions?.users.read || []
|
|
363
368
|
});
|
|
@@ -399,23 +404,15 @@ const ListPage = () => {
|
|
|
399
404
|
sortable: false,
|
|
400
405
|
// In this case, the passed parameter cannot and shouldn't be something else than User
|
|
401
406
|
cellFormatter: ({ user }) => user ? user.displayName : ""
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
name: "actions",
|
|
405
|
-
label: formatMessage({
|
|
406
|
-
id: "Settings.permissions.auditLogs.actions",
|
|
407
|
-
defaultMessage: "Actions"
|
|
408
|
-
}),
|
|
409
|
-
sortable: false
|
|
410
407
|
}
|
|
411
408
|
];
|
|
412
409
|
if (hasError) {
|
|
413
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
410
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Error, {});
|
|
414
411
|
}
|
|
415
412
|
const isLoading = isLoadingData || isLoadingRBAC;
|
|
416
413
|
const { results = [] } = auditLogs ?? {};
|
|
417
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
418
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
414
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Theme.Page.Main, { "aria-busy": isLoading, children: [
|
|
415
|
+
/* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Title, { children: formatMessage(
|
|
419
416
|
{ id: "Settings.PageTitle", defaultMessage: "Settings - {name}" },
|
|
420
417
|
{
|
|
421
418
|
name: formatMessage({
|
|
@@ -469,8 +466,6 @@ const ListPage = () => {
|
|
|
469
466
|
return /* @__PURE__ */ jsxRuntime.jsx(index.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: formatTimeStamp(log.date) }) }, name);
|
|
470
467
|
case "user":
|
|
471
468
|
return /* @__PURE__ */ jsxRuntime.jsx(index.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: cellFormatter ? cellFormatter(log, header) : "-" }) }, name);
|
|
472
|
-
case "actions":
|
|
473
|
-
return null;
|
|
474
469
|
default:
|
|
475
470
|
return /* @__PURE__ */ jsxRuntime.jsx(index.Table.Cell, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: log[name] || "-" }) }, name);
|
|
476
471
|
}
|
|
@@ -490,8 +485,8 @@ const ListPage = () => {
|
|
|
490
485
|
) }) })
|
|
491
486
|
] }, log.id)) })
|
|
492
487
|
] }) }),
|
|
493
|
-
/* @__PURE__ */ jsxRuntime.jsxs(index.Pagination.Root, { ...auditLogs?.pagination,
|
|
494
|
-
/* @__PURE__ */ jsxRuntime.jsx(index.Pagination.PageSize, {
|
|
488
|
+
/* @__PURE__ */ jsxRuntime.jsxs(index.Pagination.Root, { ...auditLogs?.pagination, children: [
|
|
489
|
+
/* @__PURE__ */ jsxRuntime.jsx(index.Pagination.PageSize, {}),
|
|
495
490
|
/* @__PURE__ */ jsxRuntime.jsx(index.Pagination.Links, {})
|
|
496
491
|
] })
|
|
497
492
|
] }),
|
|
@@ -499,12 +494,12 @@ const ListPage = () => {
|
|
|
499
494
|
] });
|
|
500
495
|
};
|
|
501
496
|
const ProtectedListPage = () => {
|
|
502
|
-
const permissions =
|
|
497
|
+
const permissions = Theme.useTypedSelector(
|
|
503
498
|
(state) => state.admin_app.permissions.settings?.auditLogs?.main
|
|
504
499
|
);
|
|
505
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
500
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Theme.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(ListPage, {}) });
|
|
506
501
|
};
|
|
507
502
|
|
|
508
503
|
exports.ListPage = ListPage;
|
|
509
504
|
exports.ProtectedListPage = ProtectedListPage;
|
|
510
|
-
//# sourceMappingURL=ListPage-
|
|
505
|
+
//# sourceMappingURL=ListPage-CxUAyot2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListPage-CxUAyot2.js","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n Modal as DSModal,\n Typography,\n Breadcrumbs,\n Crumb,\n Field,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <DSModal.Root defaultOpen onOpenChange={handleClose}>\n <DSModal.Content>\n <DSModal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </DSModal.Header>\n <DSModal.Body>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </DSModal.Body>\n </DSModal.Content>\n </DSModal.Root>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid.Root\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid.Root>\n <Field.Root>\n <Field.Label>\n {formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n </Field.Label>\n <Payload value={JSON.stringify(payload, null, 2)} disabled />\n </Field.Root>\n </>\n );\n};\n\nconst Payload = styled(JSONInput)`\n max-width: 100%;\n overflow: scroll;\n`;\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n borderWidth={0}\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["adminApi","useIntl","parseISO","useNotification","useAPIErrorHandler","React","jsx","DSModal","jsxs","Breadcrumbs","Crumb","Flex","Loader","Fragment","Box","Typography","Grid","Field","styled","JSONInput","useQueryParams","useAdminUsers","useField","Combobox","ComboboxOption","users","getDisplayName","useTypedSelector","useRBAC","Page","Layouts","Filters","Table","IconButton","Eye","Pagination"],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const ListPage = require('./ListPage-
|
|
7
|
-
const useLicenseLimitNotification = require('./useLicenseLimitNotification-
|
|
6
|
+
const ListPage = require('./ListPage-8iWYEe2_.js');
|
|
7
|
+
const useLicenseLimitNotification = require('./useLicenseLimitNotification-g1vq6nzk.js');
|
|
8
8
|
|
|
9
9
|
const UserListPageEE = () => {
|
|
10
10
|
useLicenseLimitNotification.useLicenseLimitNotification();
|
|
@@ -12,4 +12,4 @@ const UserListPageEE = () => {
|
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.UserListPageEE = UserListPageEE;
|
|
15
|
-
//# sourceMappingURL=ListPage-
|
|
15
|
+
//# sourceMappingURL=ListPage-KOIEopQN.js.map
|