From 76c96f45328968dd2f0a287cedc6ddbc72d5fb5f Mon Sep 17 00:00:00 2001 From: BrooklynIT Date: Mon, 13 Jan 2025 13:44:36 -0500 Subject: [PATCH] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit fceac3a966cf35825ceb2e2e9ba0d3e26dac40b5 Merge: 50d1b090 33c4ee9e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 11:19:44 2025 +0100 Merge pull request #3156 from sfaxluke/main commit 33c4ee9e56dab14cdf7df7f0006ce0c67c7ea889 Author: Luke Steward <87503131+sfaxluke@users.noreply.github.com> Date: Mon Jan 13 10:16:14 2025 +0000 Restoring GitHub Assets Realised that the logos were also lost in the rewrite commit 50d1b09087c7c10921de825c645a709268918ad4 Merge: e08ef0eb 2a2bf6ef Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 11:02:15 2025 +0100 Merge pull request #3155 from sfaxluke/patch-1 Restore README.md commit 2a2bf6ef9a38a8edfd9f5a221bd3bc4bb2d58433 Author: Luke Steward <87503131+sfaxluke@users.noreply.github.com> Date: Mon Jan 13 09:59:38 2025 +0000 Restore README.md commit e08ef0eb07ddb526701ce09bef4fd9ee9e0c9cc5 Merge: 23cc6923 94378e8d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 10:58:46 2025 +0100 Merge pull request #3154 from KelvinTegelaar/dev const to let commit 94378e8d9fd7f88e59403f239125e678d84f86d2 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 10:57:32 2025 +0100 const to let commit 23cc6923ad206a214d3e9d6a33d3cea521aef3d6 Merge: f31b1e8d b1c9aa5f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 10:36:51 2025 +0100 Merge pull request #3149 from KelvinTegelaar/dev Dev commit b1c9aa5fd2ac81e31dbef3aca23a913d9b098c70 Merge: a8f0cc18 f31b1e8d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 10:36:42 2025 +0100 Merge branch 'main' into dev commit a8f0cc18160699f17c8717491da37a2e475fba3e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 13 10:32:44 2025 +0100 version up commit 4a941782fad6fa8c29e9096d66c58185a3618d65 Merge: 1de81424 de237fe2 Author: John Duprey Date: Sat Jan 11 14:09:37 2025 -0500 Merge pull request #3116 from JohnDuprey/dev display tweaks commit de237fe2ffdd2ac08967acb8f63723c1305b5497 Merge: 60e20c3d 1de81424 Author: John Duprey Date: Sat Jan 11 14:08:24 2025 -0500 Merge pull request #222 from KelvinTegelaar/dev [pull] dev from KelvinTegelaar:dev commit 60e20c3d9dbbc15ccefbd7d5fbc3a75d2febd389 Author: John Duprey Date: Sat Jan 11 13:41:10 2025 -0500 fix cipp backup wording update infobar layout when icons are not present commit a8924b3e911a29d588d3e064039ba867353350a2 Author: John Duprey Date: Sat Jan 11 13:27:43 2025 -0500 fix padding if labels not present tidy dashboard page try to safely handle standards commit f31b1e8d539fea77cbc70a036af2f4020f9f5615 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 19:24:34 2025 +0100 Delete .github/workflows/azure-static-web-apps-mango-field-04aac4710.yml commit 913b358ed89e36be22537c6881dfca39661c34b5 Author: John Duprey Date: Sat Jan 11 12:52:58 2025 -0500 fix blocked tenants disappearing commit 1de81424cd3fc7fb1f058f3c8336ac99682dc287 Merge: f2247a12 b80d6085 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 18:37:03 2025 +0100 Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev commit f2247a12dfc083e7c98d9a12b4ae06143cc55836 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 18:37:02 2025 +0100 array fix commit ec2f1df1afb6acd1501620171c74a8d92dd819af Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 02:45:56 2025 +0100 ci: add Azure Static Web Apps workflow file on-behalf-of: @Azure opensource@microsoft.com commit b80d6085b8a70cf666707de3e6c94cea6cc2c241 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 02:43:01 2025 +0100 Update AzureDeploymentTemplate_regionoptions.json commit fb776d75502b56f6f7d8791dbd0a3132310be273 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 02:42:49 2025 +0100 Update AzureDeploymentTemplate_regionoptions.json commit 609f8d905c19a9e590165da2e887534799cd8a67 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Jan 11 02:41:16 2025 +0100 Update AzureDeploymentTemplate.json commit 6b03ae9a90b61e25da663bef184204da66eff91b Author: John Duprey Date: Fri Jan 10 14:22:42 2025 -0500 add run now on timers commit 81ee51ffa0576b02dc60ee5600a44cec3cde3e97 Author: John Duprey Date: Fri Jan 10 13:40:30 2025 -0500 update ARM templates commit 6820ee3d52bfe32086ddcd79076d0da91154b7b9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 17:53:55 2025 +0100 Add files via upload commit 9bc082bd3b6adb944f9fe0f4aa5c8b47cb6a023e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 17:53:39 2025 +0100 Add files via upload commit 3900ec51693e9ab3af81bc543e6092085f00df00 Author: John Duprey Date: Fri Jan 10 11:35:33 2025 -0500 fix links in offcanvas commit 1813c254ec13a074f3d032b08ce9ed69606c3d77 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 15:04:45 2025 +0100 Delete .github/workflows/azure-static-web-apps-yellow-meadow-0b9b21603.yml commit f87a5fa13fe3caeebf65765e319ded7fe4d58efa Merge: 3f4315e8 5927d58c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 14:47:18 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3f4315e81d97fb11f285ad1b8757cb27da73138d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 14:47:16 2025 +0100 up versions commit 5927d58c0420308437149b7115f3a19c4d2a1d9c Merge: 8fa9809b 9f0012aa Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 14:35:39 2025 +0100 Merge pull request #3040 from Ren-Roros-Digital/ViewRoomList feat: added view rooms in Room Lists commit 8fa9809b55a0a463530988acd2300f1ec733a48e Merge: c84b7534 94a10507 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 14:35:29 2025 +0100 Merge pull request #3042 from Ren-Roros-Digital/messagingpolicy feat: New Global Teams Messaging Policy standard commit c84b7534416dab4ddf3d3383f3ff0bfaed2f8355 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 10 11:24:34 2025 +0100 fix required field commit 94a105077296eca9293e0416de5ef319ed7430b1 Author: Esco Date: Fri Jan 10 09:54:00 2025 +0100 fix: update input field requirement commit af54bbc73521f1a17f4fccfe6434fe04822f3af0 Author: Esco Date: Thu Jan 9 11:55:03 2025 +0100 feat: New Global Teams Messaging Policy standard commit 096d041fe3cedd495438e7b353b5f67301d5b600 Author: John Duprey Date: Fri Jan 10 00:30:46 2025 -0500 cipp timer table commit 4ed17a7ae377a140d278b58216cbbd40744e671a Author: John Duprey Date: Thu Jan 9 23:03:34 2025 -0500 update mailbox rules dynamically generate property list for offcanavas add remove mailbox rule action commit c1835adbd516bf0a2077968d2a81aa21519af44a Author: John Duprey Date: Thu Jan 9 18:32:58 2025 -0500 exclude switches from addedComponentsFilled check commit 1b9ae2a44cb5a9af065d7226c80dd2e33acbbc4d Author: John Duprey Date: Thu Jan 9 18:32:29 2025 -0500 tweak query key to ensure fresh relationship list commit 620faf9028de4ad91cc3e4f26eaaffb6e2d6ec26 Merge: 330e1129 c2b89fc8 Author: John Duprey Date: Thu Jan 9 17:33:30 2025 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 330e11298db6ca34b9e73675e20f020a24f14789 Author: John Duprey Date: Thu Jan 9 17:33:27 2025 -0500 user exchange settings page tweaks commit c2b89fc844cf460e18b1c5f8b266351b7922eae9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 23:19:28 2025 +0100 readd template library commit 6006a1eeb5ac036bb0d6d92cc91d4a0323d6ff8c Merge: 59d48fa4 465029ff Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 23:01:16 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 59d48fa4834a213637ccecfdbd6f23e108db8ac3 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 23:01:15 2025 +0100 button added. commit 465029ffc4590fb85742eae72750fef602518f90 Author: John Duprey Date: Thu Jan 9 16:20:23 2025 -0500 cleanup tables, remove currentTheme from user settings commit 0b76ef77f51fe450991eebec119182f7af787daf Author: John Duprey Date: Thu Jan 9 15:41:25 2025 -0500 tweaks and bugfixes Add default [] for filters prop in tabletoptoolbar Add formatting for risky users Add mail prop to Edit Group form commit b6a74b4ddd6da96eb4998df2951723d7207238aa Author: John Duprey Date: Thu Jan 9 14:06:19 2025 -0500 Add TanStack query dev tools in production cleanup reference in CippTablePage add developer card in preferences commit 779690fda52a9bf906acdb8d49ceac219c744380 Author: John Duprey Date: Thu Jan 9 13:42:04 2025 -0500 display tweaks for mobile fix theme selector in popover fix mobile nav width cleanup preferences, update to grid2 breakpoints commit b5cfe5d182e1ff379178601772aec4f651855878 Author: John Duprey Date: Thu Jan 9 12:54:26 2025 -0500 remove tenant overview option from preferences commit f99fae1dbd01df5d827412155281b4a0cd6c3db6 Author: John Duprey Date: Thu Jan 9 12:53:08 2025 -0500 remove default theme from settings commit 1e826cceb173d4e1d1869f1aa5579ac9252e1eee Author: John Duprey Date: Thu Jan 9 11:53:48 2025 -0500 handle array for filter.$select commit 1aa54c28340d5b953d46322925097417e0d5b4af Merge: bfea8307 217929c4 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 17:38:57 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit bfea830767987783d3f2c4eba4cb6dd2c7e43c5d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 17:38:56 2025 +0100 fixes datatable commit 217929c42762d1250476fd58cdeab39c05acab04 Author: John Duprey Date: Thu Jan 9 10:28:02 2025 -0500 move message trace update trace detail dialog box loading indicator add same to quarantine page commit 607210e5b706cd631fcb108ad066f807793ce014 Author: John Duprey Date: Thu Jan 9 09:49:46 2025 -0500 remove tenant from title commit 6a190758f51b694eba4e3f199879f15f14d9defc Author: John Duprey Date: Thu Jan 9 09:45:55 2025 -0500 stack infobar above card for backups commit 7e496476efbf9c6224e7f99d3b5c51aa25777128 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 15:36:57 2025 +0100 text changes when standard is not scheduled commit b8422e5384a2c9c33c927053f577534b6874a742 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 14:29:06 2025 +0100 fixes issues with multipost commit f8ff47ae102641dc2b4eca60840adb05a9571114 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 12:07:41 2025 +0100 fixes hover bug commit 3fe3d2b2b915a1bc401f9e65404f9e2dea67abfa Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 9 11:42:45 2025 +0100 using same id in both props commit 1cbeb068f4f6bc287886bb26e946a3be960efc50 Merge: 3447feeb fc4ba8f4 Author: John Duprey Date: Wed Jan 8 12:22:30 2025 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3447feebbf29f4efe9d3f43e842b045341137c39 Author: John Duprey Date: Wed Jan 8 12:17:07 2025 -0500 prevent links from having null values disable tenant info button on all tenants commit fc4ba8f41a903a279422bd40fb63c06cdf22750d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 18:15:26 2025 +0100 fixes to new darkweb scanning commit 822447f3ddab74467a88f9d5b74b7f50e75356cf Merge: 672e3544 5d39457a Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 15:41:15 2025 +0100 Merge pull request #3038 from Ren-Roros-Digital/risklocation fix: display risk detection location commit 672e3544dca2cc6d66b865e84ecee5a8801251e8 Merge: c4fa8280 e0f61a3c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 15:27:21 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit c4fa8280910122b3492dc76371294e1132965b43 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 15:27:19 2025 +0100 fix load issue and typo commit e0f61a3c0d170652a6b9ee4f4fbaa4b7cc70fb74 Author: John Duprey Date: Wed Jan 8 09:09:59 2025 -0500 add manualFields true handling for autopilot devices commit 9f0012aaf58f3c98f9181fc59a8942063fcc4cd5 Author: Esco Date: Wed Jan 8 14:39:05 2025 +0100 feat: added view rooms in Room Lists commit ccd1b974a867593e049d25dc4ebc3b317c7d67a1 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 13:54:38 2025 +0100 new password breach alert commit d62d5fd23f1a21f70cee97953bc88c9c1caaa5ab Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 13:42:53 2025 +0100 added update now button commit 5af42c109f1651a14403286925dfe3649918951d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 13:19:06 2025 +0100 addedbreach searches commit 507690acf115f5de5ba94ba62dd2fc6b98803f0e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Jan 8 12:01:00 2025 +0100 remove commit 5d39457aeb6c5d8437e4bc54c50069f06ad7dd6a Author: Esco Date: Wed Jan 8 09:44:03 2025 +0100 fix: test-path CIPP-API-Processor commit 6d8992f2a76068a4fba647aa7c7d8680620d9e08 Author: Esco Date: Wed Jan 8 09:38:33 2025 +0100 fix: display risk detection location commit b03cca0a267f459682dc027cd675b9ce82039cb7 Author: John Duprey Date: Tue Jan 7 23:38:24 2025 -0500 sharepoint & onedrive fixes commit ce1762e1856ad8a59e43474d522e04bc64fe650c Author: John Duprey Date: Tue Jan 7 18:33:37 2025 -0500 Update index.js commit 44bb0bd091bf7e57e5fa69896372785875af2c34 Author: John Duprey Date: Tue Jan 7 18:29:44 2025 -0500 sharepoint/onedrive fixes commit 0b1b9f5f959db9e9a38e507747dabf34fc3933b3 Author: John Duprey Date: Tue Jan 7 18:29:25 2025 -0500 add $format commit e61676a269540c7b5b2724f39e23e54eea33790a Author: John Duprey Date: Tue Jan 7 14:40:23 2025 -0500 wording commit a92d4ec70dee9a5c1c12f48622d30f0bfa131251 Author: John Duprey Date: Tue Jan 7 13:20:56 2025 -0500 case sensitivity commit 7284dacdf5775a323ba4380bdc4e694b82dd11e0 Author: John Duprey Date: Tue Jan 7 13:08:24 2025 -0500 null safety sherweb commit a856789621b3286dce346400cd14c1b58e87a6d7 Author: John Duprey Date: Tue Jan 7 12:59:23 2025 -0500 fix import errors with csv button add hibp error handling commit 29cc8282732220c61c1d6e0b53e63ae3cf5ff11d Merge: f8e8c507 1b67be3c Author: John Duprey Date: Tue Jan 7 12:39:40 2025 -0500 Merge pull request #3036 from cipp-ashe/interface-rewrite adding csv export component for api retrieved raw data and added it to user breachlookup page commit 1b67be3ccbce747bf8413323534f92918d41a6ad Author: cipp-ashe Date: Tue Jan 7 12:35:31 2025 -0500 adding csv export component for retrieved data and added it to user breaklookup page. commit f8e8c507bb79b13207202da7c7ecf054cbceee4c Author: John Duprey Date: Tue Jan 7 12:33:12 2025 -0500 fix user post for sharepoint and groups commit e691aad342fbf61a72b6a5a4dbc94ded14c69328 Author: John Duprey Date: Tue Jan 7 12:32:54 2025 -0500 api dialog, support bulk array parsing commit 7a4e3d6659ce1ea23ac8188fcb0d472b48cca5c5 Merge: b4e91e48 f967d6d4 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Jan 7 17:59:04 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit f967d6d4a28fcdb9b7942257ec95ec296874bab7 Author: John Duprey Date: Tue Jan 7 11:54:53 2025 -0500 fix backup refresh button commit b4e91e4894f0f22dc2e5b789ff75d211f06b3264 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Jan 7 17:48:55 2025 +0100 fix some breach stuff commit 9d9affd81df722b32882c610447c4d40eea318f0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Jan 7 14:32:50 2025 +0100 config changes commit 0b65f87b4bfb98ce2b620b3404931fff536f5c68 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Jan 7 14:28:15 2025 +0100 introducing hibp commit be2a21bec9a2bd9cfe13cb0bac9c072d3c116e4a Author: John Duprey Date: Mon Jan 6 22:16:06 2025 -0500 Fix connectors/templates Displaying details Deleting templates Enabling/disabling connectors Deleting connectors Viewing connector details commit 6b422e0f74bae3a6f93831b5520c6edba5eec184 Author: John Duprey Date: Mon Jan 6 16:18:38 2025 -0500 Update version.json commit d730451ec7d18db1b45626811acd0c88eab0dfe5 Merge: 5b69b5bd 31a6ebd7 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 22:08:30 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 5b69b5bdaef9f8b656fb473084ffe558d2c48128 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 22:08:26 2025 +0100 menu updates commit 31a6ebd798d15f1259ade0811ae520e647f0783c Author: John Duprey Date: Mon Jan 6 15:33:53 2025 -0500 add icons for actions commit 455f2cf46ab942860296df0b6e0889bb8cb990c7 Author: John Duprey Date: Mon Jan 6 15:00:38 2025 -0500 add clear immutable id commit 5eeb9254a60ac1ec27063f981724024c3483ccb9 Author: John Duprey Date: Mon Jan 6 12:55:26 2025 -0500 fix odata type issue and From format in mbx rule commit 1985001c1c66b217feb1f9522aaf71289d3b2eb4 Author: John Duprey Date: Mon Jan 6 12:39:43 2025 -0500 Update CippCustomRoles.jsx commit 4ab561b03ccc1640d7a1299ce217550ca4117652 Author: John Duprey Date: Mon Jan 6 12:30:30 2025 -0500 custom role tweaks commit b1b8ebe0f55857c5dbb721e428f2c9d030d6efea Merge: f2ab08fd 5d8e0593 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 17:32:01 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit f2ab08fd060f27ea4e79ecf76c1f89df3aa05bfb Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 17:32:00 2025 +0100 filter variant improvements commit 5d8e05930ef209c15b0ee85be898d7f050c164a3 Author: John Duprey Date: Mon Jan 6 10:53:24 2025 -0500 null safe check commit 5b2e4855925f887052067dbb49c6e071a537f391 Author: John Duprey Date: Mon Jan 6 09:34:13 2025 -0500 Update side-nav.js commit 7b2463a49be52bac96954ed36e73b45d12c8e6a8 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 14:49:06 2025 +0100 time failover added to filter variant commit c560b676e26cf2d6dad5abdf42a0a193382ee6c5 Merge: db2abdb8 238d8ef8 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 14:44:32 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit db2abdb8e7acfaa185f5ffe09e94e35247ca85b2 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 14:44:28 2025 +0100 fixes commit 238d8ef89b8393b3f3b9dcdf27d728d0b3f99c7f Merge: e07b5a02 777d7c47 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 14:19:24 2025 +0100 Merge pull request #3032 from Ren-Roros-Digital/riskdetections fix: add missing apiDataKey to Risk Detections commit 777d7c47efa1cd07297fbe2c2d3a3625f6d412b5 Author: Esco Date: Mon Jan 6 14:18:22 2025 +0100 fix: add missing apiDataKey to Risk Detections commit e07b5a02a16d12f77cd6dd6eadda518636682e34 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Jan 6 01:22:55 2025 +0100 added tenantpolicy commit 073e8f6fc562a4fb9c1bf2f9d5a7754f7cbdc01b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 23:42:52 2025 +0100 fixes chart issues commit 43af0e6be91001690c96ab846ff1d1ee357e2b1f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 23:25:03 2025 +0100 config updates commit 6a2406f73cfe620d085f3a997c81b855df123e26 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 23:23:16 2025 +0100 Fixes config issues commit 4195ac7ee5ccb6fb766c55678a614552dbe0a2a4 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 22:24:02 2025 +0100 New sponsor logo commit 0014b20ef591399e552088a87554bf3799cf84d4 Merge: a9607dca 9a02539f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 21:28:57 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a9607dca5dec2c755dbd80c4480c20486a18b48b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 21:28:56 2025 +0100 logo stuff commit 9a02539f4956cad0f1257304cf2ea6bed02889ec Author: John Duprey Date: Sun Jan 5 15:09:19 2025 -0500 add useFormState commit 03ee7054797881a1f73f2c1a91cfbbf18431dc26 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Jan 5 20:23:15 2025 +0100 sponsors bar commit fd10a89d8898f67ffd6031b1029849d391df599e Author: John Duprey Date: Sun Jan 5 13:39:15 2025 -0500 field mapping tweaks commit 8b2517ee280c756d6a9f83185ec55f8063bab5b7 Author: John Duprey Date: Fri Jan 3 09:52:42 2025 -0500 handle unixtime in string commit ef4cfcf869154861345cf8df3d92d7e79686a7cf Author: John Duprey Date: Fri Jan 3 00:21:37 2025 -0500 fix field mapping refresh commit fda1ad1abeb4c40b8e62b59c86d5daaafda95337 Author: John Duprey Date: Fri Jan 3 00:18:08 2025 -0500 fix tenant mapping save commit 99b979a03257232f637fe92e246c4125fbbadbb0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 3 02:30:54 2025 +0100 remove console logs commit 4309660e81c6ff20d7b0faa85dcb7ea418fb9851 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 3 01:07:39 2025 +0100 universal search fix commit fb27874a9291060fad52c87106e9b8db3d9f08bd Merge: 3398a9c9 67fdcef4 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 3 00:03:16 2025 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3398a9c904ffc09712f339779286773fb7551ffc Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Jan 3 00:03:15 2025 +0100 fixes tenant id commit 67fdcef43d0fd4f337d420e78dee39a1e79d67bc Author: John Duprey Date: Thu Jan 2 16:55:30 2025 -0500 Add onedrive pre-provision and shortcut commit 560d78d8500bf3705f44a27bf3528747eca08f2c Merge: e01a14a8 bf83efa0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 2 18:25:05 2025 +0100 Merge pull request #3028 from BNWEIN/interface-rewrite Added Connection Filter commit e01a14a8d2efae536c95f0e41340be9b70fb0a6e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 2 17:42:02 2025 +0100 Add remove MFA devices and sherweb commit bf83efa0e492a8f7c18feddb16960551d216e08f Author: BNWEIN Date: Thu Jan 2 16:28:54 2025 +0000 Added Connection Filter added Connection Filter functionality to the front end. commit aa9494b4a491c57da891d82fef97374d14737791 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Jan 2 15:47:17 2025 +0100 Fixes for Ben commit c08859be4a23c5c72149e4de6622684b4c038a07 Author: John Duprey Date: Tue Dec 31 11:34:18 2024 -0500 Update get-cipp-formatting.js commit 1cfb8a1c5baea70a3d6192af78e72216b18b8318 Author: John Duprey Date: Tue Dec 31 01:32:52 2024 -0500 graph explorer fixes commit 45443bb9836a8c44a269dd5ff992ed31dbe737db Author: John Duprey Date: Mon Dec 30 21:41:08 2024 -0500 graph explorer fixes commit 6302a3faca85f1ea3fc4a3912100807056d7bfd7 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 30 17:41:14 2024 +0100 Remove the Azure App Service build and deployment workflow config commit 76b43d54c1f9dd05e15aa5103aa923fb51aeaed7 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 30 17:33:12 2024 +0100 Add or update the Azure App Service build and deployment workflow config commit 0d6fcdc8ada3d14fa9cd5b9063203bb21c4225c0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 24 16:06:03 2024 +0100 updates commit 60a9974b285150ac96fb0c7131f8a36dd5737642 Merge: 5293b57a c8beada6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 24 01:05:23 2024 +0100 Merge pull request #3018 from MWGMorningwood/patch-2 Fix displayName labelField to displayName to comply with API output commit 5293b57a37df0dfdf57aebabbf500e377b35259b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 24 00:44:07 2024 +0100 Subscription changes commit 7e48f920d4f2c654cb3154d328b51228ea477c1f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 23 20:28:17 2024 +0100 Add ability to buy licenses too commit 0d52b62f70983096d3185e04c0af35ed33a1da2d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 23 19:51:44 2024 +0100 list csp licenses commit f13258c9473873f1048f5e86dbd74fcaaeede5d0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 23 19:32:39 2024 +0100 integration mapping fixes commit 1194d884450e6473947e1c6f33055c7ddccc9dd4 Author: John Duprey Date: Sat Dec 21 19:42:59 2024 -0500 Update CippStandardsSideBar.jsx commit b62b3c4365b8b08d7837b8fba9d40cc72ddc4af2 Author: John Duprey Date: Sat Dec 21 19:25:55 2024 -0500 require form state valid commit 977c570b83a97a3006324bdacc180223e9ff564a Author: John Duprey Date: Sat Dec 21 18:36:33 2024 -0500 fix saving template commit c8beada62d1d40763d3eea264bda92d88ac944b6 Author: Woody <2997336+MWGMorningwood@users.noreply.github.com> Date: Fri Dec 20 23:36:28 2024 -0500 Fix displayName labelField to displayName to comply with API/table output Output casing of Displayname does not match front-ends expectations. Other template labelFields have similar casing deviations from standard, so changing this to follow suit. commit 074b194ab6c0d08888f5b84bb76aee9b40e33a11 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 21 00:44:26 2024 +0100 fixes selectedActions commit d83f9afb146976663f3a48f86b835505f64eb181 Author: John Duprey Date: Fri Dec 20 18:05:23 2024 -0500 fix backup output commit c7d46d07bfebabcbb5862bf1701a9ae01f103033 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 21 00:04:06 2024 +0100 Fixes nullsafe handling of standards commit 30e01c5ee0b87656220c10b7369fe9362a928178 Author: John Duprey Date: Fri Dec 20 17:25:48 2024 -0500 graph explorer prettification commit 65772649ac5a9e4a422fda77f6be8318b8ab7717 Author: John Duprey Date: Fri Dec 20 17:10:14 2024 -0500 graph filter tweaks commit 9be2c7b57a2add59b7be06f8a068183d638ff609 Author: John Duprey Date: Fri Dec 20 14:57:10 2024 -0500 add success check commit 977a5d787af8d15ae7bb46f43182fd947fd3f7db Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 20 14:19:32 2024 +0100 updates standards commit a0f7ac76ad37b14a0407726c4a96149d7345f40e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 20 14:06:10 2024 +0100 remove required fields commit 9f9eab8492ae6f7b742b1fa40497ef778b3d0fa0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 20 13:57:26 2024 +0100 required false commit 15758e966a3fe789f7c574b4a46b30a5c9d95f11 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 20 13:00:58 2024 +0100 added all tenants commit b2720fbe1ebfde9f291014f0949d1acf88bb8778 Author: John Duprey Date: Thu Dec 19 23:54:46 2024 -0500 exclude metadata property cleanup import commit a3f5c9e62f781cd7216f817bc692582ae8145234 Author: John Duprey Date: Thu Dec 19 13:34:47 2024 -0500 new presets, enterprise apps fix commit 2f3ffd6e586a2434f3513c4703775e723489bf29 Author: John Duprey Date: Thu Dec 19 12:39:56 2024 -0500 Update CippGraphExplorerFilter.js commit 58dc741feb0c173ba738c8c3b47d34675603d827 Merge: 80c5cdc0 f1293a90 Author: John Duprey Date: Thu Dec 19 12:39:14 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit f1293a90df859eade8babe319123990471619352 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 18:29:06 2024 +0100 remove 302 error handling commit 80c5cdc069f2fd96622517f41f1380f8224e3fcf Author: John Duprey Date: Thu Dec 19 12:19:24 2024 -0500 add cipp package info commit 42ba6907bf5912dd7b2c478d45424da049e67328 Author: John Duprey Date: Thu Dec 19 12:11:18 2024 -0500 Update CippPermissionReport.jsx commit 8d8bbe3a410f73e2a3a82ce7491890684caeab30 Author: John Duprey Date: Thu Dec 19 12:05:51 2024 -0500 fix menu error and tenant filter change commit e74cae0eb7e9e9ad272bca2ba242d0a95a22bbdb Author: John Duprey Date: Thu Dec 19 11:56:44 2024 -0500 remove log commit c9882fd925e02a46a29ac2312eeb67fc8bf9432f Merge: a6ff046a ce382491 Author: John Duprey Date: Thu Dec 19 11:25:55 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a6ff046a5268dbb57359cc10219e1626d91df3bc Author: John Duprey Date: Thu Dec 19 11:25:51 2024 -0500 graph explorer presets commit ce382491f7809e7ac082b59406ac70b0722b0407 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 13:09:32 2024 +0100 reset to default implementation commit 035f6aaf192d2f61078d3e93c8bc4cfc34c2afda Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 12:15:15 2024 +0100 caps commit c54cb88138b810fe709daf979f9318c33208ccf6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 12:14:01 2024 +0100 added nullsafe commit 0c6360d58c2d49b1b796857f54945f346b99ee9c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 12:11:36 2024 +0100 incorrect post vs get commit 744ce827beaf64f7efcde5bb28cf0c1f9cd83e28 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 19 12:07:58 2024 +0100 fix filters issue commit b5dcbfe2b97b4b28b2de76af14ccc246d8e8f46b Author: John Duprey Date: Wed Dec 18 18:30:25 2024 -0500 graph table filters commit 3e2b419f70e5494c9ad7a495648f684193038cda Author: John Duprey Date: Wed Dec 18 17:51:32 2024 -0500 permission report null safety commit 6ec779fea7ef00f10be41cd45c4a7543a1c14be9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Dec 18 22:48:55 2024 +0100 edit permissions rename commit 0dc7c1c4b9a539eed445b9f6ffbe16fb302b5c5f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Dec 18 22:37:46 2024 +0100 fixes #5 commit 2486df5a9a1bc6e67c63db31df95a523abbefd76 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Dec 18 21:33:15 2024 +0100 fix layout commit c987ed166e44866f8760bc93f59361af2df6941c Author: John Duprey Date: Wed Dec 18 15:20:48 2024 -0500 Add warning to table page when no tenant selected commit 838a0c336c49c5c204e69634dfd13a55a37afb3b Author: John Duprey Date: Wed Dec 18 15:03:13 2024 -0500 fix portal links in tenant list & column saving tidy up table names add icon for sharepoint commit fc335d1b55fbdcbf7f88c350d1f33c6050fd1326 Author: John Duprey Date: Wed Dec 18 13:37:24 2024 -0500 standard tweaks add gdap roles and timezone select boxes back commit c0e63d3de52e5917cb417d9b8671f1e9b2c4a1c7 Author: John Duprey Date: Wed Dec 18 13:03:51 2024 -0500 don't send search query back to dialog box commit 680dfc093b2043894bb49c23284eb66159e5074d Author: John Duprey Date: Wed Dec 18 12:48:44 2024 -0500 debounce standards search & tweak action chips commit e05175500c8b0afb61f7d173a5abb792b9557741 Author: John Duprey Date: Wed Dec 18 12:30:12 2024 -0500 add action chips commit 1af74c79547849c3e37383e0d4e0189bd5f88a57 Author: John Duprey Date: Wed Dec 18 10:19:07 2024 -0500 Update CippTenantResults.jsx commit a207a1ce194a0d2ffb8875564227e40912573663 Author: John Duprey Date: Tue Dec 17 14:26:51 2024 -0500 formatting tweaks commit 8e2dfa6b2225c551f40c19b77ee6f2c2f3dc7601 Author: John Duprey Date: Tue Dec 17 13:19:36 2024 -0500 permission check fixes commit 897168a93f527bad6c68b3b189f13399358f8413 Author: John Duprey Date: Tue Dec 17 12:48:59 2024 -0500 add refresh button to field mapping commit 2a4c9a3653edfbff21cb267d33fd10ab0e9b63e9 Author: John Duprey Date: Tue Dec 17 12:37:39 2024 -0500 add integration refresh button commit 3939ee70f62e917cea8ea889a73215c028f986cc Author: John Duprey Date: Tue Dec 17 12:33:09 2024 -0500 fix tenant mapping bug commit 185db390a966ddcd16e6f53e57c33a2dc43bf0cf Author: John Duprey Date: Tue Dec 17 12:28:32 2024 -0500 fix required fields on tenant mapping commit 5300dc15437915de5b32f488b7ccd8643d72e991 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 18:22:03 2024 +0100 dont need this commit 5a6ac2459d115a91899a8204867e0a3522816447 Merge: 7330654e 087579c6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 18:21:42 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 7330654e6039b9241e436feea079c9d0e0aae3a1 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 18:21:40 2024 +0100 update favicons commit 087579c62f5742c2061b987f1498eee6aa38611a Author: John Duprey Date: Tue Dec 17 12:21:34 2024 -0500 fix clearing table data on integration tenant map commit 5692bf5e08730b17d4f83628e3214efa6f5a8939 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 17:29:09 2024 +0100 fixes exports dates commit e5d59dedd4c76f3fc834d180a478cbcdc0447f2a Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 16:54:00 2024 +0100 bug #2: old settings sometimes get in the way of new settings. commit 80ae1bab1b6ba0076d7707f821ed6cbf4d8bb30b Merge: debc732e 0a3d6b4b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 13:21:43 2024 +0100 Merge pull request #3010 from Ren-Roros-Digital/KittyTerminal feat: Launch in Kitty Terminal commit 0a3d6b4b1ed48bbc764c1978f2fa8552720061a0 Author: Esco Date: Mon Dec 16 21:50:33 2024 +0100 feat: Launch in Kitty Terminal commit debc732e406ad177d0914c12aff0527e050381e9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 02:30:43 2024 +0100 nullsafe commit 865377d6da7d00830feb6360b0754ad915e16879 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 17 02:30:24 2024 +0100 actions foreach nullsafe. commit 4005a4db7275c2d36a3f4f4fd5dbc103caaa9a91 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 23:24:20 2024 +0100 updated sherweb commit 343f511afaea83b9fa8df5bcadbfc682c53dafa9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 21:12:17 2024 +0100 version up for rc1 commit e33dac2cff17466f9fc8c551ecd24c8499b1aa29 Merge: 4727d524 70cc2093 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 21:10:32 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4727d52499a1a8cd6c3d2f26b43229f07fd3d606 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 21:10:31 2024 +0100 Edit alert dependancy fix commit 70cc20930aa15160f7aa4be9bd160510fe5bf72d Author: John Duprey Date: Mon Dec 16 11:57:31 2024 -0500 Update audit-log-translations.json commit 1e6eef7e85a2100e675a4c9d72ce81748d07f62f Merge: 7dd8d6ff f81a0dde Author: John Duprey Date: Mon Dec 16 11:52:33 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 7dd8d6ff19d59732fb1eaba98f093cc41337679f Author: John Duprey Date: Mon Dec 16 11:52:19 2024 -0500 new translations, bugfixes commit f81a0dde2ae3a3713d3e81d304d9d64bb18db59d Merge: 2701af41 459c9dfa Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 17:52:08 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 2701af417a564ddf7eed0c10f77b488dd6910f3b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 17:51:31 2024 +0100 pushing new filters commit 459c9dfa5b83f8eeab49db6d7383210171b42ec9 Author: John Duprey Date: Mon Dec 16 11:32:46 2024 -0500 Update log.js commit a4d13309116e10c4e88f4f17f2fbed06b051ce0d Author: John Duprey Date: Mon Dec 16 11:17:39 2024 -0500 audit log value translations commit ccd1e9923c2ff33c23ef34b192cc58aed863b8e7 Author: John Duprey Date: Mon Dec 16 10:39:46 2024 -0500 audit log prettification commit 3ccc9fa3b5fbc67f07b3777fe412149609a88019 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 15:03:02 2024 +0100 compatibility fixes commit 7e00077046023d91bf1605f0fa3eed8590e46e2d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 14:20:08 2024 +0100 backwards compatibility commit f5bc335744cac277f26b6b7f030627b474b290df Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 14:08:39 2024 +0100 edit contact changes commit ac5d9570f0212cdfbb64c838036662f103ce1086 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 14:04:58 2024 +0100 refresh issues on reload commit dc54c19f2d70828687758b6bd11a522f638a5563 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 13:30:58 2024 +0100 correct typo commit 8f2fb68258403aa54424b23e186ca9cec7bc0eb3 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 13:13:40 2024 +0100 fix disabled commit 4f2e0f4e24dff50f671e34d71a8c5cb883321067 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 13:02:02 2024 +0100 302 fix commit 0f81f48d3a7baa33147e687a295a923c4b535fd7 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 12:49:47 2024 +0100 update commit 7c032e7b32313761909308d7e323f7aca010dbf2 Author: John Duprey Date: Sun Dec 15 23:12:44 2024 -0500 Update CippGeoLocation.jsx commit 7030696077644b88d20f41c92e94e79db2c4e478 Author: John Duprey Date: Sun Dec 15 22:57:16 2024 -0500 log prettification commit 36fe5ae48ebf4b453f6e04818c4a48a3cbd3b50b Author: John Duprey Date: Sun Dec 15 21:55:51 2024 -0500 multi-marker support and clustering commit 53551878475d11b57781c2fd1616ebc11c79d35d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 02:19:07 2024 +0100 sherweb mapping commit 801b9a8635aadade60731227323b9bf06de00bc9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 16 01:26:50 2024 +0100 introduce sherweb extension commit e071f9d4f67d78b66c0da7d0e1b256c7fcf7ad5c Author: John Duprey Date: Sun Dec 15 14:45:03 2024 -0500 geo ip lookup commit a06798baa9456c1201d09eb76c656b1523df9179 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 20:36:59 2024 +0100 icons commit e45292efec5e013f9e6da157cb086064ae66d66e Author: John Duprey Date: Sun Dec 15 13:58:09 2024 -0500 audit log page commit 812931448edb941cd5d4ae3f18610085915b9824 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 16:01:08 2024 +0100 remove layout stuff commit a658fd43ebc32c46ffcec526498ffe4df2cf2635 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 15:36:17 2024 +0100 config update commit 7ccc9a42d41c34a9db99b8be034c1cf58fc30ecb Merge: 12e50e94 adadf894 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 14:34:28 2024 +0100 Merge pull request #3005 from Ren-Roros-Digital/AnalyticsDeviceScores-new feat: Added InTune Device Score List commit 12e50e941fb6c8b69c1fba5ffc000c8dd91b08c0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 13:37:17 2024 +0100 extra error handling commit ece2786ab5984eb92fa2ee4204ea7ddf9c785e7c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 13:34:11 2024 +0100 errors commit 249f77cf00e005614331cb6004fad22fa677f77b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 13:25:18 2024 +0100 show error if there is no exchange mailbox commit d8d76f3479ac732b6e24bf4e04aee50e5408850c Author: John Duprey Date: Sun Dec 15 03:02:27 2024 -0500 cippgeolocation card commit c08ccc1ea0e2d9e0a88b086527275533d073b66f Author: John Duprey Date: Sun Dec 15 01:49:20 2024 -0500 audit logs fixes and improvements single log view page added map component needs to be prettied up also need to save more location info to knownipdb commit 671c9c8cf4313eb90c254fb17c6b225b029a420c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 03:14:21 2024 +0100 fixes something, I forgot commit 21f46eb9351ca10d2e6bcc40fb41283327b5c515 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 03:00:32 2024 +0100 return null in weird cases commit aa563765b09149f0166c4d45665eecdcca5585cf Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 02:44:38 2024 +0100 added nullsafe commit f736c97390a45de0e91507729e61bc3be868904e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 01:10:50 2024 +0100 update for 401 commit 53e412598f77c26af9a60219075d5c1a5a0985f8 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:59:50 2024 +0100 update static web app commit 4be04d4e1f575c0e1946679e447cef27a896fd8f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:44:48 2024 +0100 menu improvements commit 406825cbd6adf2679984672df98dabccf6929b2c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:37:55 2024 +0100 integration nullsafe commit a604db6a97d2c35cad3270b9fdcd2c2c3834d160 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:34:36 2024 +0100 menu updates commit cd53918b9b98bb4f67707729d97a4ae2680e86d6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:26:03 2024 +0100 add a fallback commit 8d17de089c9fb3ab5294357f51b7f0173abf02a8 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 15 00:04:21 2024 +0100 updates to nav commit 50975ecdfea7001060ae171089d8da4b663dc483 Merge: 5efbe5db 112d21cc Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 22:16:35 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 5efbe5db57f8bf422245b8c3df788be65ddef2ea Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 22:16:33 2024 +0100 filter stuff commit 112d21cc41454bdc765078c4a62c18588b36ae27 Author: John Duprey Date: Sat Dec 14 15:31:25 2024 -0500 api result fixes set forwarding to single value commit c5d7f8a2f515d6e03925eb26264735de7eb79d3e Author: John Duprey Date: Sat Dec 14 14:44:46 2024 -0500 fix label error commit 3965a020dbcedba358763f26c18a1b5874f13e2f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 20:16:47 2024 +0100 tooltip commit 05516f41af96f185c4e28423b0c2142b46f4484f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 20:11:53 2024 +0100 null safe commit 26bae3d7c83f8b29a48d333064c13bef3ca7549d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 20:05:48 2024 +0100 nullsafe items commit a468f379c2533a8af9d9120e42e180650208c406 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 20:02:19 2024 +0100 Setupupdate commit 34821f11e5ba4ba1763f505306d6bce3535098ea Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 19:53:07 2024 +0100 updates commit b5beddab6d8adbc156ae61e6b751f7bda227f250 Merge: 7cf3283c 680c44c3 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 19:40:59 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 7cf3283cac789bca633dd88f626d358dbeac97ed Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 19:40:57 2024 +0100 force wizard when setup has not yet been performed commit 680c44c3543fc5d78b288e4829a19bfb6f7d0708 Author: John Duprey Date: Sat Dec 14 13:25:39 2024 -0500 user exchange settings tweaks commit 5e537e5292994e2dc2c8986e3ba27a1073c87db1 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 17:28:11 2024 +0100 updates commit 647c070c1810fb1a28d72dfa9e1a992bc5ffb2c5 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 14:53:56 2024 +0100 Updates commit 9ec7b00708f9f96753b99bb23780cb2a651eb18d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 14:39:04 2024 +0100 improvements commit 52c1331c45caa09f99b1580fe673e4cb14aa7793 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 13:49:18 2024 +0100 bar chart home page commit 132e42ef4f5e03aed9446dd8c28f3fa2469ee386 Merge: c13bb8fa 8caf2fd0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 13:14:50 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit c13bb8fa339053ab49e06aada364c59b95d312e3 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 13:14:48 2024 +0100 release candidate prep commit 8caf2fd04b9bf30f64c3bd580d36077596259bbb Author: John Duprey Date: Sat Dec 14 02:34:58 2024 -0500 form tweaks commit 1082b7738b7a930c32a124beccc9d9217ba781fe Author: John Duprey Date: Sat Dec 14 02:23:21 2024 -0500 Update CippExchangeSettingsForm.jsx commit 41c561d6f17070d83aebf28651e06f4fca067cd8 Author: John Duprey Date: Fri Dec 13 19:58:39 2024 -0500 mailbox restore list commit 789bd97eba0a32b61e2124357334d76b7b42fe58 Author: John Duprey Date: Fri Dec 13 19:53:15 2024 -0500 Update add.jsx commit 2a5ca73731b2d87d1d85e058361c2be3b0f0458e Merge: ff06416d 2f0368f1 Author: John Duprey Date: Fri Dec 13 19:43:53 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit ff06416d7d7dd0bf507924de2662b746fa2d695e Author: John Duprey Date: Fri Dec 13 19:43:51 2024 -0500 mailbox restore form commit 2f0368f194843169269be9b194303379779d65c9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 01:36:35 2024 +0100 Fix secure score reporting commit 86b844fa23d1dff2747538461bc3f431a66b9feb Merge: 3f8a5348 165c9c4c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 01:21:24 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3f8a53483d27834c6759426cec5c784bcba1df03 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 01:21:22 2024 +0100 bug fixes commit 165c9c4c6d045100475d6a6dec34984003f80c8b Author: John Duprey Date: Fri Dec 13 18:56:27 2024 -0500 restore cleanup commit e9bb9f52952979dc15290e6c0214c5a721441326 Merge: 392e9179 89dd5ed3 Author: John Duprey Date: Fri Dec 13 18:56:09 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 392e9179751470a41f4e7c81ac0c6f764138c2bb Author: John Duprey Date: Fri Dec 13 18:55:26 2024 -0500 Create MailboxRestoreDetails.jsx commit b0be1c17a7118fe41cd749dd80f59c3c73e68039 Author: John Duprey Date: Fri Dec 13 18:55:05 2024 -0500 add extra offcanvas props commit 89dd5ed3361dbd97c6f99f11131de91dfc3cc9d2 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 00:38:56 2024 +0100 get stuff commit 5ef2a0e99735713bfeae0f726bcb908dbb90952b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 00:07:41 2024 +0100 actions commit 3b25d6c6b696d8f74e1e543e46703d0c0b2e326e Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 14 00:01:21 2024 +0100 Fix scrollbars commit 0a4704e5318908875c1ad7c4aa2b48056ddb2c34 Merge: 417b6153 8676b5c6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 23:45:55 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 417b61530abb4a7831f3cb1c846b830dc42efebd Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 23:45:53 2024 +0100 design fixes commit 8676b5c6de96ad624cf018cb7ff1acb6cff3eddf Author: John Duprey Date: Fri Dec 13 17:07:04 2024 -0500 add more date fields commit 404f8901ab2804631d2a590c1ac4a285dbdb91af Merge: 0880b87f e8910616 Author: John Duprey Date: Fri Dec 13 17:02:54 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit e8910616e3b6465e60d28a44c1c3b9a10ab5aee9 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 22:58:23 2024 +0100 updates to api results commit 0880b87f1a27cb9ac2b8bd890bd5b508f84e6d74 Merge: b394573a 18a48585 Author: John Duprey Date: Fri Dec 13 16:48:20 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit b394573aff14ff86486136d35f0f7a17fc110d57 Author: John Duprey Date: Fri Dec 13 16:48:17 2024 -0500 fix retry button disable conditions commit 18a48585b8ccf652cc8a63048e37805bb27de9dd Merge: 4de1731d b9813b4b Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 22:27:52 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4de1731d7e38bba5765f01802dbc988716949b83 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 22:27:50 2024 +0100 updates to cippapiresults commit b9813b4b13e48e808fc0e4a330986261a4774367 Author: John Duprey Date: Fri Dec 13 16:26:46 2024 -0500 ensure date picker gets other props commit c59f77725ae2fcbd54797045c4eff16d4dd3a81b Author: John Duprey Date: Fri Dec 13 16:25:11 2024 -0500 fix defaults commit e707a94b2489bdbc300ebadb662aaa77a430fa62 Merge: 639f45ba b3cbea4c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 22:08:40 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 639f45baf818520100f6a30b1965abb4a44abbda Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 22:08:38 2024 +0100 updates to api results for now commit b3cbea4c11adccfdd1a163a9df1055ac8a3015e7 Author: John Duprey Date: Fri Dec 13 15:51:39 2024 -0500 date & time picker commit 6e4653e038f5b48c29db6bd4792fbfd529ffefdb Author: John Duprey Date: Fri Dec 13 15:46:08 2024 -0500 provide default date timestamps commit 6334e81feef5fe29dd4599ed55c87d27bc852485 Author: John Duprey Date: Fri Dec 13 15:35:28 2024 -0500 add clear button commit b2130ba93737c4f72a3af6aa75a3f6bb2be09e9a Author: John Duprey Date: Fri Dec 13 15:28:33 2024 -0500 improved message trace commit c96ff16c1d0c8067ab5f92d4bdcbbd8c4ee974c5 Author: John Duprey Date: Fri Dec 13 12:22:30 2024 -0500 message trace improvements commit 1e0e72e1605401592e77f8b9209f4f2e97b1085f Author: John Duprey Date: Fri Dec 13 10:22:37 2024 -0500 message trace - support multiple emails, mesageId commit 9952359741c529832d2e11bcb1ef3524adfa6198 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 15:14:41 2024 +0100 conversions for stanrds changes commit 2091fb32a0b222b8e5777df94ac1aed5d72f969c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 15:02:36 2024 +0100 convert legacy stuff commit b441927fc97e6ccc0430f9427b9db57e2a84eedf Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 12:51:59 2024 +0100 removed console.logs and fixed bulk requests commit 7e777b6957af94385f2ffea7a4303b642f942488 Author: John Duprey Date: Thu Dec 12 23:46:38 2024 -0500 nav cleanup add exchange cmdlet page commit a152e8ed1c2c0a5e0fd82a087ca17cd1af31ca73 Author: John Duprey Date: Thu Dec 12 23:02:23 2024 -0500 Add link style to message viewer commit cbfc23ea9fae24c83c89e21a40ab43e672c9e4b7 Author: John Duprey Date: Thu Dec 12 22:51:42 2024 -0500 add message trace to quarantine commit 56fc877d6d830f57e899953444a370f075785938 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 13 00:40:23 2024 +0100 updated standards commit 982e0519ecd2fb17884ca1fddffa4f0a3dc10e0b Merge: 73e8058b d94d9541 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 12 22:52:13 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 73e8058baa32ca9d83abb2cf3142ab073ce90ff4 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu Dec 12 22:51:43 2024 +0100 standards updates commit d94d95410140bde50b2310d603a9e378b3b31b45 Author: John Duprey Date: Thu Dec 12 16:23:55 2024 -0500 fix message header alignment commit a4787295625e322705a8b6466732e9ed46339243 Author: John Duprey Date: Thu Dec 12 16:13:16 2024 -0500 layout and action icons commit d6ef2a2812e664484570c802a9b1d239ebf4c817 Author: John Duprey Date: Thu Dec 12 15:46:19 2024 -0500 message trace commit f763c5270af88169a3e369bca1e431c9b739a53e Author: John Duprey Date: Thu Dec 12 13:18:45 2024 -0500 quarantine message viewer commit dd4a099f5b67b8cceecb70b60ba91710b446bcf4 Author: John Duprey Date: Thu Dec 12 11:50:17 2024 -0500 Update CippMessageViewer.jsx commit a5ef3bbf041370b2cfca9e630b168c251d3fd05d Author: John Duprey Date: Thu Dec 12 11:16:59 2024 -0500 remove dara from status check add additional info to tooltip commit 92d0dcf6fcc39dbd3fff729217a5d11449d6b92c Author: John Duprey Date: Thu Dec 12 11:08:06 2024 -0500 integration layout tweaks commit a5e9927f4fffb4bfbdbae002e952537b5379e405 Author: John Duprey Date: Thu Dec 12 11:02:10 2024 -0500 sherweb integration frontend commit f5bcc2900900854c6aa6b377a539cc420d7a4bea Author: John Duprey Date: Thu Dec 12 01:07:27 2024 -0500 Add authentication results icon dark/light mode for html view commit cd337b3f852d4eab54863d80d95d63e1ef4f1923 Author: John Duprey Date: Wed Dec 11 22:44:49 2024 -0500 remove logs commit 50139af3d536eaef496c958484111eb84769dc69 Author: John Duprey Date: Wed Dec 11 22:39:45 2024 -0500 replace modal with dialog commit 2b053b0bfc9375c0edbdf0a4b72c290e99c9e160 Author: John Duprey Date: Wed Dec 11 19:16:56 2024 -0500 fix message viewer downloads also add inline cid: image parsing commit 49bc184f1c36f84cb0412ae6ac341ac581a084a1 Author: John Duprey Date: Wed Dec 11 18:59:42 2024 -0500 message viewer initial build attachments still broken, need to replace modal remove duplicate relationship page commit 9aff8c7793d3ac8a712ac43ba91ce7f1ce486db5 Author: John Duprey Date: Wed Dec 11 17:39:31 2024 -0500 add eml-parse-js commit 73101397793b5e49ee56960e3642504bfda6ec03 Author: John Duprey Date: Wed Dec 11 17:35:42 2024 -0500 trigger update when id specified by query string commit adadf894368072dcbcf5d1575ed4336b17cf7965 Author: Esco Date: Wed Oct 9 14:38:41 2024 +0200 feat: Added InTune Device Score List commit c60627ed2d8180ce03c3742d6b4f8b590ffc959f Author: John Duprey Date: Wed Dec 11 10:20:22 2024 -0500 more null safety commit 367a47f4819d92b2afac16e93cedc3ca455d1d3e Author: John Duprey Date: Wed Dec 11 10:09:19 2024 -0500 null safety commit 1c9ee54905bb3ae71979dd6a178b1aa7494cbd5c Author: John Duprey Date: Wed Dec 11 09:28:22 2024 -0500 tenant offboarding commit c2a9c6c95ab2593bd3da5d54de9c216db010c9c6 Author: John Duprey Date: Tue Dec 10 19:45:19 2024 -0500 Update offboarding.js commit 392b368dc7752ba571443846240fa052ce68cc14 Author: John Duprey Date: Tue Dec 10 18:08:09 2024 -0500 Update offboarding.js commit 4d596b41226e499f90dc270240b04f6dac3ea77f Author: John Duprey Date: Tue Dec 10 17:55:48 2024 -0500 fix nav highlights commit 3e8a4b600c1c61a3293f2c1bb89d36f3603b9619 Author: John Duprey Date: Tue Dec 10 17:55:22 2024 -0500 Tenant offboarding commit 8a693e709ae6a5c1a5c23b3a41488e0fe8b53347 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 10 12:42:10 2024 +0100 fixes link commit b86ef6f341249645a47cc245e6abca63a4fe5ec1 Merge: 8253491f 8dfb8f52 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 10 11:25:25 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 8253491fdba29f7eef9466408ee6c91c0e39adbc Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 10 11:24:44 2024 +0100 button to resize columns commit 8dfb8f52e0e64aa5facaa22ce9614068874e4663 Author: John Duprey Date: Mon Dec 9 22:11:02 2024 -0500 add login check to unauthenticated page commit 91b4fc519c7665bdd7634fc397cfe388b9bc4678 Author: John Duprey Date: Mon Dec 9 13:47:43 2024 -0500 GDAP UX fixes Adding form validation for autoComplete fields Adding info bubbles on forms Preventing submit until form errors are cleared commit 2fd219b97be3d3e996ba9e019556eb1dbebcba98 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 13:44:16 2024 +0100 remove redudnant function commit 6f6004dad156e91af4945b7f1fe2d9825ca2685f Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 13:36:37 2024 +0100 removed annoying console.logs commit 6152b8954d3d69613254d849373ee14092bfe927 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:22:32 2024 +0100 Update dev_deploy.yml commit 51b42f54f8b3adc21e1ee875052e97277dd95b69 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:12:05 2024 +0100 case correction commit 6e7c3a5f19e6309bc3a32ca1b597ff0617ff4123 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:10:34 2024 +0100 fix typo commit 00f7a9627c09d8bc59ae3d95b0fdf126189c3d09 Merge: 73c37365 936cb8f6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:10:23 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 73c373650b9df3b5ac2dba6c35a8aa4ea94a2b23 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:10:21 2024 +0100 fix commit 936cb8f6c42b47dee9302dae8159022822dfc255 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 12:04:43 2024 +0100 Update dev_deploy.yml commit cdd7353ac30325158629e45190e480c02c6bf1ee Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 11:12:09 2024 +0100 updates to menu commit 7d57bd6b542104377c1de163a32db952d74a25ff Author: John Duprey Date: Sun Dec 8 22:28:42 2024 -0500 fix polling for onboarding status Add error state to wizardsteps commit 0008a4c34c04647d358e7bd4d87e0fcdb69db57f Author: John Duprey Date: Sun Dec 8 21:33:30 2024 -0500 add card title to cipptablebutton commit ff8f55b01b86b0d8cb9e0631e2a0f22fba2f5c58 Author: John Duprey Date: Sun Dec 8 21:16:13 2024 -0500 Update index.js commit 04b7a5964d38f735bcbcffbb5ac13692c46254ef Author: John Duprey Date: Sun Dec 8 21:15:19 2024 -0500 Formatting commit 810d848aecc628244befd87eed4703fc55590e43 Author: John Duprey Date: Sun Dec 8 20:40:45 2024 -0500 extended info nested object/array support commit d48c33448f879ce7bd323dff0830b138e8520d50 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Dec 9 00:14:50 2024 +0100 edit page updated commit 7ae29beee58abec6879e735e42669cfbf6b0c544 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 23:13:11 2024 +0100 fixes little interface problem commit 837eee03794e2734cb17b5c03db1d72cf98130b5 Merge: 6ddd7851 26f798d6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 21:52:48 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 6ddd78515b18422f3e0c0a467f4ccf78af9c06ab Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 21:52:46 2024 +0100 Updates commit 26f798d6aa06e8d88baa40bcefaba9409990f48a Author: John Duprey Date: Sun Dec 8 14:43:53 2024 -0500 GDAP role mappings commit ded3195afc216da408115e9c694b898a1d2d7c26 Author: John Duprey Date: Sun Dec 8 01:55:48 2024 -0500 Update index.js commit 5f2e5d348047106a0a754d02a066e1e0fe885ea8 Author: John Duprey Date: Sun Dec 8 01:52:26 2024 -0500 GDAP relationship view commit cb6323c9b9a4dcabea9c8f38ebbf15c957b5831c Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 02:09:08 2024 +0100 filter resets commit 1747d96b9994a68ec05e20f12b79f947206c1505 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 02:05:43 2024 +0100 Improve clearing commit 25823bdf47880b9c1391a66e5b4b48cc3e84f7bb Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sun Dec 8 01:55:15 2024 +0100 add custom filters commit d714030b9f82c83ce0ec5b7f33f1d98090b4dd84 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 20:16:30 2024 +0100 improved device compliance report commit f86941c9e738abd14567f82e7f8917d702ad2781 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 19:32:12 2024 +0100 updates commit ae9b2761fd7d3cdfb85eb5a88682c3cb8cae12d1 Merge: 5f9ca1dd 09079658 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 16:13:05 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 5f9ca1ddfa9f4948f49d2775f02510fb02372b29 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 16:13:03 2024 +0100 all tenants updates commit 09079658cf808721ca55d6374577a0066c963e68 Merge: d0e67d23 f4e77560 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 16:12:56 2024 +0100 Merge pull request #3001 from kris6673/interface-rewrite Comment out apiDataKey in reports to make reports work commit d0e67d235360e27c0f53dfb74581db4e902b1228 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 16:06:18 2024 +0100 All Tenants fix commit c457cf611b9a9dfd05313d96f9a98ea765f6cfa2 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 12:51:22 2024 +0100 pages commit b5cc541c5f33384b34522049d6541dd7a4c51bff Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 12:10:27 2024 +0100 added pages commit bd139ec272ce62f79b6546b8d7a00698f91c6adb Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 01:18:19 2024 +0100 Add transport rule commit f4e7756094aa9ecfa537900e393d3e059e41c556 Author: Kristian Kjærgård Date: Sat Dec 7 01:00:49 2024 +0100 Comment out apiDataKey in reports so the pages work commit e16e79f68d62e55df5b94578dcd75a9b25b9536d Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Sat Dec 7 00:24:40 2024 +0100 finish new pages commit ebccadc21aa5857a88ba6e8600b2fa49c41ed1c0 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 6 23:25:11 2024 +0100 added forms commit c81f352c189f126507eab4cb007fc182c5b94e48 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 6 22:49:36 2024 +0100 pages add commit 69250dabf1ec03e07d541ba77b886c6a06672772 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 6 20:05:33 2024 +0100 add team done commit ca0375fb6cd22b8dfce497e357d8120811ad40cc Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 6 14:26:39 2024 +0100 perfect intune commit 5d9084390ae1ffe67ab5f1c3eca7152ae2ecdb18 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri Dec 6 13:38:42 2024 +0100 prettification of policy overviews commit 8d4385ba605e8ec68c57d60c145f404e75c51b50 Merge: a153e077 5a9b9f91 Author: KelvinTegelaar Date: Thu Dec 5 22:43:13 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a153e07714a0ccd05df035ebc6dd9d9a84fad9c0 Author: KelvinTegelaar Date: Thu Dec 5 22:43:10 2024 +0100 changes rewrite commit 5a9b9f91597d46b9cf4cf4d89e3162ee6a13a487 Author: John Duprey Date: Wed Dec 4 18:12:35 2024 -0500 Update start.js commit 443634988ecfcfc3bed8dd5c1ec7750e0231a975 Author: John Duprey Date: Wed Dec 4 17:56:23 2024 -0500 tenant onboarding commit 974ae066d8a076c00d5f7dfefc2ff9ee7d622ad0 Author: John Duprey Date: Wed Dec 4 09:41:25 2024 -0500 cleanup import commit e798b357b49e15e42e84c44cd81663d1b33a5e70 Author: John Duprey Date: Wed Dec 4 09:39:30 2024 -0500 gdap invite commit bcc65e1fb692258fc6ab3d6b5fa7e7749baf5d79 Author: John Duprey Date: Wed Dec 4 09:38:42 2024 -0500 integration sync page commit 80f7eda6942e97f48cfced6bc3156862c3d93b1d Merge: 315176cd 6f424688 Author: KelvinTegelaar Date: Tue Dec 3 23:08:42 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 315176cd944976391fa9eb889b345fcc51abab2b Author: KelvinTegelaar Date: Tue Dec 3 23:08:40 2024 +0100 add autopilot status page commit 6f42468841042fb0005730c0386cf64873cbb62b Merge: f33887ed d4b11340 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Dec 3 22:05:18 2024 +0100 Merge pull request #2988 from Ren-Roros-Digital/riskdetections fix: add missing apiData to Risk Detection report commit f33887ed2c6f481fcb16f86caa4a6ce7082ef3fc Author: KelvinTegelaar Date: Tue Dec 3 17:46:32 2024 +0100 autopilot finishing touches commit 111c37744e860d3a7c90f84319db0098c62c2255 Author: KelvinTegelaar Date: Tue Dec 3 17:39:43 2024 +0100 csv import commit 3a04d46e51cf8661c5117745e66f76c82e18de3a Author: KelvinTegelaar Date: Tue Dec 3 00:41:17 2024 +0100 add package searches commit 62d9a4ee8c4f1e7a045acdbd3cbf8d1b47b47a95 Merge: 2159f455 da2c170b Author: KelvinTegelaar Date: Mon Dec 2 23:07:42 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 2159f45504d6adaf228f804e951409437fca51c7 Author: KelvinTegelaar Date: Mon Dec 2 23:07:40 2024 +0100 new applicationsnew applications commit da2c170b01c9a562f1a6442db4b809252dfac938 Author: John Duprey Date: Mon Dec 2 16:21:01 2024 -0500 onboarding form commit 23ff7c2686bc9f7b620daa90fbed2a717fe0f26b Author: John Duprey Date: Mon Dec 2 12:39:33 2024 -0500 GDAP relationships commit c5b47df1c1578c9aa4728f9b4f94e65373308c31 Merge: 3e2640b9 ccfcfeb0 Author: KelvinTegelaar Date: Mon Dec 2 16:56:25 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3e2640b9887090b1d14a006e2c54bd59a9d543b7 Author: KelvinTegelaar Date: Mon Dec 2 16:56:23 2024 +0100 defender deployment commit d4b11340e5e8eb6de494c61b121a913d9691ae7a Author: Esco Date: Wed Nov 20 14:05:18 2024 +0100 fix: countryList case sensitivity commit 8265dd61fa246815143f0fcf9795eacd942d5aa2 Author: Esco Date: Wed Nov 20 13:55:29 2024 +0100 fix: Risk Detections Research Compromised Account commit 59d2f0d9893ca5d9cd4e885242634d9a3755e272 Author: Esco Date: Wed Nov 20 13:17:52 2024 +0100 fix: add missing apiData to Risk Detection report commit ccfcfeb0201e215b7e49c1c77172489ab6c4a7bc Author: John Duprey Date: Sun Dec 1 21:27:36 2024 -0500 role mapping validation commit 92f1dd368c7d7cd87c22a247a14906cc96f98dfb Author: John Duprey Date: Sun Dec 1 20:35:12 2024 -0500 gdap onboarding form commit cd60c612b94d4b28aed2c3595d0718c640146e32 Author: KelvinTegelaar Date: Sun Dec 1 23:31:33 2024 +0100 report commit a444bf5ec6cfc0cac71ab180e042e7bd8da1cb07 Author: KelvinTegelaar Date: Sun Dec 1 22:09:35 2024 +0100 add named location commit 5e05209befcf005fc6b4f36d4d90af5c562d8e48 Merge: aa1bf5e0 c6c90fd0 Author: KelvinTegelaar Date: Sun Dec 1 19:58:38 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit aa1bf5e04fe83aa46d3151018bd6680cd11d1bb5 Author: KelvinTegelaar Date: Sun Dec 1 19:58:35 2024 +0100 Added vacation mode commit c6c90fd03f5da8ebfc09cdb9a414b258b80e550c Author: John Duprey Date: Fri Nov 29 19:22:13 2024 -0500 onboarding form tweaks commit 9a32726025bd93562dd7a02748e1413cb803ca26 Author: John Duprey Date: Fri Nov 29 19:09:17 2024 -0500 gdap onboarding commit fe5c0d66e37043fd74f875f0e425e0e462401a49 Author: John Duprey Date: Fri Nov 29 17:03:51 2024 -0500 wording commit 84fe7064585fa54303ca53cc64ea3bcd933489a3 Author: John Duprey Date: Fri Nov 29 11:59:56 2024 -0500 GDAP overview bugfixes commit 5b03a8ca72f1cdb4903d52d77e6d6e5e5f97fa03 Author: KelvinTegelaar Date: Fri Nov 29 00:27:13 2024 +0100 named locations commit a2d744e60898fec676ad3603d3c9546212e3d28e Author: KelvinTegelaar Date: Thu Nov 28 21:08:38 2024 +0100 finished ip whitelist commit a73ea8add564dca5f5d93b56d353d4b3d470f227 Author: KelvinTegelaar Date: Thu Nov 28 12:13:22 2024 +0100 app approval wizard commit fc97eb3de7ae0c73cc3989466ce615eea6717fc2 Author: KelvinTegelaar Date: Thu Nov 28 11:49:20 2024 +0100 added cipp datatable as formobject. commit 304fbf94daeeb3155f5ca45b78b387ac7f2d8ef5 Author: John Duprey Date: Thu Nov 28 01:23:15 2024 -0500 GDAP invites commit 7f6137f7e1b91a807963919bf0849c793a435acb Author: John Duprey Date: Tue Nov 26 18:00:50 2024 -0500 GDAP role templates commit aa217adc30b3ddeed2f399dc60f48430a0695dd8 Author: John Duprey Date: Tue Nov 26 17:27:53 2024 -0500 GDAP role templates commit 206d6e7f71b14c918f2aeb7cc10b2998f5a0c34f Author: KelvinTegelaar Date: Tue Nov 26 23:09:00 2024 +0100 backup restore start commit e89a3b45c9cd596a64068a7ee3b4538a8b7ba22d Author: KelvinTegelaar Date: Tue Nov 26 22:35:08 2024 +0100 basic backups commit bf0d570258dcb708fee9ebb6bd51de9629e09cc7 Author: John Duprey Date: Tue Nov 26 12:41:52 2024 -0500 Update index.js commit 12f6fc332d0c51a99a5757025c14cd351a46d9b6 Author: John Duprey Date: Tue Nov 26 12:37:52 2024 -0500 Role templates commit 6b8731f3d48401e84ecc3a5061f94dc8308b4031 Author: John Duprey Date: Tue Nov 26 11:46:12 2024 -0500 Add JSON view commit eeedc2132a27fe6d08693a618e65a35f24682800 Author: John Duprey Date: Tue Nov 26 11:10:33 2024 -0500 fix outlined input padding commit d5aaafdb44eac5d4ad4bbee3655061b0e41f927e Author: John Duprey Date: Tue Nov 26 11:06:21 2024 -0500 bulk add role mapping to template commit ce9dc2cc9f5d7b4956f9c832a6efd5559d398bd3 Author: John Duprey Date: Tue Nov 26 11:05:04 2024 -0500 fix selected rows commit df7bb33f5f50e31f9906d7b00d71a700ff719a0a Author: John Duprey Date: Tue Nov 26 11:04:53 2024 -0500 fix bulk actions with multiPost=false commit a328ffb9aebb2e1fbc7c001b2308a090da228f78 Author: John Duprey Date: Tue Nov 26 11:04:08 2024 -0500 fix autocomplete input commit a084b0e1f6ac4c56610aceee567b72bcc9bd8a7b Author: KelvinTegelaar Date: Tue Nov 26 14:51:36 2024 +0100 fix tenantfilter loop commit 8f2fff512fd62100b077d94317a04689cb73d3bd Author: John Duprey Date: Mon Nov 25 22:08:21 2024 -0500 Add roles commit 1b592d7d2ff37defe6fe88adfa2043939c835e1a Author: KelvinTegelaar Date: Mon Nov 25 22:52:50 2024 +0100 allow direct edits of forms via url commit 10b589204f6ee9858ede17537f55aaa332006868 Author: KelvinTegelaar Date: Mon Nov 25 21:31:55 2024 +0100 added no card commit d3d33fc926aca0355847bb2485b79383ca75077d Author: John Duprey Date: Sat Nov 23 22:52:24 2024 -0500 Update relationships.js commit 3ed3ec423530d2c4863df82ca9b18f6a0ec17d9b Author: John Duprey Date: Sat Nov 23 22:34:10 2024 -0500 GDAP Management commit ddf26f23278dce319e92c515c32680562b68c683 Author: John Duprey Date: Sat Nov 23 18:55:07 2024 -0500 Update CippRemediationCard.jsx commit 21cb0f84aa79f4bc117a06abf5cc19928ccd3fdc Author: John Duprey Date: Sat Nov 23 18:50:13 2024 -0500 bec button styling commit aeda1a50043f17425175b3d2a4f025b2bb5a8d45 Author: John Duprey Date: Sat Nov 23 18:37:06 2024 -0500 add toast reset button close popover when no notifications are available commit 43ad4e5803444be0a407cedcfedee958091e6e75 Author: John Duprey Date: Fri Nov 22 22:54:29 2024 -0500 profile photos commit 840c651d989dbd33c8e8a7339e7714759210cca6 Author: John Duprey Date: Fri Nov 22 22:23:24 2024 -0500 Update CippButtonCard.jsx commit 4e94c107eac2b3feae5b96d08570614fe5e00476 Author: John Duprey Date: Fri Nov 22 22:17:06 2024 -0500 button card enhancements added accordion component with expand control tweaking layout improving performance on apppermissionbuilder commit 6d2e2784268887b789dbe81a89fc2434bc5e335c Author: John Duprey Date: Fri Nov 22 18:29:08 2024 -0500 graph explorer tweaks commit dc46877aa827d3b4f2299dac1f9ede981bfb173d Author: John Duprey Date: Fri Nov 22 18:00:10 2024 -0500 autocomplete grouping support commit 16fac19f417e8cbe7bb66ec4adbdba97791bf641 Author: John Duprey Date: Fri Nov 22 17:38:37 2024 -0500 Graph explorer Add default presets Remove certain values to prevent graph errors when set to false Handling of $select when blank string commit 0d3de7d613d35f71e62743b1acf62f7127e11d4b Author: John Duprey Date: Fri Nov 22 17:19:34 2024 -0500 add preset owner support in commit 7f3a424bb6ae528c0e4e07476dd44510de17394a Author: KelvinTegelaar Date: Fri Nov 22 23:10:45 2024 +0100 added error toasts to tenant switching commit ff15fc9ce310115dd6dce9c67f341f35ec6ec31f Merge: 44884755 45e013ef Author: KelvinTegelaar Date: Fri Nov 22 23:03:02 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 44884755d956f2b6c3518fec3427da1e5850c92e Author: KelvinTegelaar Date: Fri Nov 22 23:03:00 2024 +0100 toasting commit 45e013ef6d57326831736b43f8632112e2b12400 Author: John Duprey Date: Fri Nov 22 16:54:03 2024 -0500 Fix preset import/export Remove empty values Convert $select to string commit c5eebdffd3cc57477ead9cb90d6aad27e44c17f1 Author: John Duprey Date: Fri Nov 22 13:04:46 2024 -0500 graph explorer/scheduelr tweaks commit e17053fbd030701fd28ba46807a550288055a8ac Merge: 4d3c7610 4dab189e Author: John Duprey Date: Fri Nov 22 13:04:06 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4dab189ebc10f7c360cfe58fc7c98f6c109d172b Author: KelvinTegelaar Date: Fri Nov 22 18:56:11 2024 +0100 push new notifications commit 4d3c7610c6956ce7b55cf2073c2e08bca616c470 Author: John Duprey Date: Fri Nov 22 12:26:24 2024 -0500 add validator commit 7df0c33b5e34037fc6cc83eb6a016b078ab66783 Author: KelvinTegelaar Date: Fri Nov 22 16:30:27 2024 +0100 test commit 0e71f9daac256d15ead03c0c579dcb5d99576715 Author: KelvinTegelaar Date: Fri Nov 22 15:48:57 2024 +0100 fixes commit ce75f74045de429b8cf90da4f9c85761d8f2cf0a Author: KelvinTegelaar Date: Fri Nov 22 13:06:02 2024 +0100 pages batch commit a1e54f4a832c7d0e911dd7f4b840df3f20c1bed0 Author: KelvinTegelaar Date: Fri Nov 22 12:38:29 2024 +0100 added pages commit 0bc70da72950378a0194d7f1f0e33598655c61e8 Author: KelvinTegelaar Date: Thu Nov 21 22:52:59 2024 +0100 add portal formatting commit 057577fc5ffd6eab804f33390bb8a5b4e02d23ce Author: KelvinTegelaar Date: Thu Nov 21 22:48:13 2024 +0100 finish tenant overview page commit 464113ce0926daaf7f7488da1e5be27a62e52fc2 Author: KelvinTegelaar Date: Thu Nov 21 19:02:05 2024 +0100 add pages commit c8f747480c3097ba2b2f391a0e2ac8264222e96f Author: KelvinTegelaar Date: Thu Nov 21 17:50:16 2024 +0100 connect deploy group templates commit a8f6c9bd54c492ef5ae61f5a7a6514508cb984a0 Author: KelvinTegelaar Date: Thu Nov 21 14:40:12 2024 +0100 fixes commit 652412e2b9e189e587f744f1d9f73e5f7eafe23c Merge: dec86c18 432c92b6 Author: KelvinTegelaar Date: Thu Nov 21 12:57:40 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit dec86c18f464f0c9d727d89bb07b684f6a0e9c77 Author: KelvinTegelaar Date: Thu Nov 21 12:57:38 2024 +0100 fixes tenant jump commit 432c92b688685981f195734d34aaa8e6ec4b5279 Author: John Duprey Date: Wed Nov 20 22:21:10 2024 -0500 GDAP role lookup commit 199c4ded85f75923f67251b190da91240fc3b0ca Author: John Duprey Date: Wed Nov 20 22:10:24 2024 -0500 Fix utilColumnsFromAPI ensure that all the properties are nested accordingly adjust translation to support dot notation converting to ' - ' commit 7b978edbf665c01c23230db75d37550e15fe49ad Author: John Duprey Date: Wed Nov 20 21:08:05 2024 -0500 add iso8601 duration parsing support commit 952923ba6d7651b0615ec94711096001e5df47a7 Author: John Duprey Date: Wed Nov 20 21:07:33 2024 -0500 Update sam-app-roles.js commit 62217ad6358bc01881df8aca5140ab39174ef867 Author: KelvinTegelaar Date: Wed Nov 20 23:46:58 2024 +0100 text corrections commit c2cafdf7a9a0429f6bd947dda05427c32813f266 Author: KelvinTegelaar Date: Wed Nov 20 23:44:31 2024 +0100 bec finishing commit be7a0338da2bbd7b561fd769e5d21d8080ffb4ea Author: John Duprey Date: Wed Nov 20 15:20:10 2024 -0500 Create sam-app-roles.js commit 1ae311d1138cbd2c85ee45d9541afa5cdf0451b0 Author: John Duprey Date: Wed Nov 20 15:20:06 2024 -0500 fix grid import commit a73e874f0fc12dc2ec8246f86598f729975fd65d Author: John Duprey Date: Wed Nov 20 14:19:58 2024 -0500 Accordion expands for custom roles and permissions commit 678f6082a606477626b233addcc26607a2fd4572 Author: John Duprey Date: Wed Nov 20 14:07:37 2024 -0500 fix Grid import commit 89e48cadcca4b956cffe499284338b25bf49c01b Author: KelvinTegelaar Date: Wed Nov 20 18:23:04 2024 +0100 bec updates commit 9bbfe7ef132da5f522e3d5b5e726591c2d7345c6 Author: KelvinTegelaar Date: Tue Nov 19 18:25:38 2024 +0100 filter out link actions commit 6e31fba948a72a273583e03eda6b2d33cc4d9d67 Author: KelvinTegelaar Date: Tue Nov 19 18:16:18 2024 +0100 start of bec commit a0620426b2e495701e4be8c481f241698cb5fd2c Author: KelvinTegelaar Date: Tue Nov 19 14:04:18 2024 +0100 add CA tester commit c0bab08a0a1451f603f529833ddc14b563b0b109 Author: KelvinTegelaar Date: Tue Nov 19 12:27:23 2024 +0100 fix cal permissions commit b005107ccbb1cd58150ac1ea4d4cbbd5d70b9e43 Merge: c49db6f0 4f709a23 Author: KelvinTegelaar Date: Tue Nov 19 12:22:26 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit c49db6f006e4694840ad60386711ad236458e696 Author: KelvinTegelaar Date: Mon Nov 18 23:56:17 2024 +0100 fix view user link commit 4f709a23737bcf430847155294591797a4658751 Author: John Duprey Date: Mon Nov 18 17:53:41 2024 -0500 add delete dialog cleanup commented code and unused references commit 4016589e39b3c1b3876b6da73a42877c85c311cb Author: KelvinTegelaar Date: Mon Nov 18 23:49:58 2024 +0100 fixes commit 0aa7bd617915320127d59f6ad78722dc1456cea5 Merge: 7ca9b82d 42f0bbf1 Author: KelvinTegelaar Date: Mon Nov 18 23:26:17 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 7ca9b82d284bfc77cb56f51907b1f3b618c60183 Author: KelvinTegelaar Date: Mon Nov 18 23:26:14 2024 +0100 added wysiwyg commit 42f0bbf1c56977c42d44295e3be9e83704cb7089 Author: John Duprey Date: Mon Nov 18 17:18:57 2024 -0500 custom role tweaks commit 446e7218eeb49f17443f89651b8453d129f54db5 Merge: 3140247d abdecf7e Author: KelvinTegelaar Date: Mon Nov 18 22:43:40 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3140247dd135d999ac1c5fa18b0062ac9f864709 Author: KelvinTegelaar Date: Mon Nov 18 22:43:37 2024 +0100 forms commit abdecf7ed00bee2a79c1fffec7c5309139007d13 Author: John Duprey Date: Mon Nov 18 15:45:52 2024 -0500 allow additional radio props like disabled commit 34f252e4603202afad038a7606b61c8af241a1bf Merge: c5050f00 07a86ead Author: John Duprey Date: Mon Nov 18 15:45:03 2024 -0500 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit c5050f00c3040e5fd1ab631cd8dfbad61f828d49 Author: John Duprey Date: Mon Nov 18 15:44:29 2024 -0500 custom roles commit 07a86ead5e145cb360fc30150ce9723b47c40cc1 Author: KelvinTegelaar Date: Mon Nov 18 21:32:54 2024 +0100 fixes scroll commit 6cd611298516e356be76f9afc209b01a54737278 Author: KelvinTegelaar Date: Mon Nov 18 19:02:15 2024 +0100 prepopulate ooo stuff commit b8ace9ab1087c1e7447335d0f5ae0b5aac975aa3 Author: KelvinTegelaar Date: Mon Nov 18 18:02:30 2024 +0100 ooo commit 1339d2f6ffcd931b53a2fdd54761d18c4961a8e8 Author: KelvinTegelaar Date: Mon Nov 18 16:37:57 2024 +0100 mailbox page commit d70ad08be330649ce695933f3f1e0fede4c8264e Author: KelvinTegelaar Date: Mon Nov 18 00:25:14 2024 +0100 exchange window commit 239da0b58abfa5ca282cbb633fcb9a7e4a7fd577 Merge: f5781723 e8680fd0 Author: KelvinTegelaar Date: Sun Nov 17 19:37:25 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit f5781723734e8588d03fabb3abbe4528105f2a95 Author: KelvinTegelaar Date: Sun Nov 17 19:37:14 2024 +0100 new view commit e8680fd0333fd3fad836d6f7b16a4f42964908dd Author: John Duprey Date: Fri Nov 15 14:47:08 2024 -0500 Add api results commit 1e1653a7616c4cd5bc519da4e8b04050a67eea8c Author: John Duprey Date: Fri Nov 15 10:30:14 2024 -0500 fix margins commit 28d0d431fce135f15cbd732b61ee2ea7f1db1bda Author: KelvinTegelaar Date: Fri Nov 15 12:51:03 2024 +0100 headers commit 24a448cb1bc92f8f47ffaa949150d210c29767ae Author: KelvinTegelaar Date: Fri Nov 15 12:48:01 2024 +0100 edit user upgrade commit c70da814e70e9c6a6d9d7fd560ba0b255c02da83 Author: John Duprey Date: Thu Nov 14 17:20:45 2024 -0500 redact cpv data commit c398a286f8a2d0f8ca88f6494dd48e5d8f42602a Author: KelvinTegelaar Date: Thu Nov 14 23:12:52 2024 +0100 nullsafe commit 261a84caf3e09c373e6151b76e2cdcd9e5871466 Author: KelvinTegelaar Date: Thu Nov 14 23:09:29 2024 +0100 nullsafe useeffect commit 4e9e1d2737d9bdab292eae9ac25d8427797471af Author: KelvinTegelaar Date: Thu Nov 14 23:08:04 2024 +0100 null safe commit bdd667bc1fdbb6a199ea6d587f64bddd0743d554 Author: KelvinTegelaar Date: Thu Nov 14 23:04:57 2024 +0100 more null saftey commit 2a6082ec4bc1d0afc679eff05830c10962579de2 Author: KelvinTegelaar Date: Thu Nov 14 23:03:38 2024 +0100 add null saftey columndefaults commit bae43fca5d89e2b7415caba396a08db60bdb4d1e Author: KelvinTegelaar Date: Thu Nov 14 19:34:50 2024 +0100 license management improvements commit 1d9e5b7cf9ed3517babe65d429f722d9db08d90e Author: KelvinTegelaar Date: Thu Nov 14 18:16:22 2024 +0100 improved add user edit user commit ebe3517971060094c3cf61d50834a217f99f32fd Author: KelvinTegelaar Date: Thu Nov 14 13:35:10 2024 +0100 css fixes commit 07b89dfead4590d5ecc1abd422b0dfd2813e550f Author: KelvinTegelaar Date: Thu Nov 14 01:28:17 2024 +0100 connect add user commit b4647beb289942d4b39d855c83673e046b6201a6 Author: KelvinTegelaar Date: Wed Nov 13 20:46:16 2024 +0100 attach apis commit 295be681eea3034c082257afbb47405b9bcf96e6 Author: KelvinTegelaar Date: Wed Nov 13 00:10:08 2024 +0100 change wording and order commit 853bd09aba7d3dff2aa4cefc7027737d90147153 Author: KelvinTegelaar Date: Tue Nov 12 23:57:43 2024 +0100 prefered columns fix commit dbc1e02e531fb5ca09a70f13d5b3c0efa5e10a29 Author: KelvinTegelaar Date: Tue Nov 12 23:36:10 2024 +0100 column selection commit 60501c8b61def65a450fb25ca490e0d4b17ebe09 Author: KelvinTegelaar Date: Tue Nov 12 15:23:02 2024 +0100 fixes csv export commit 377c4f522e1f92d4d5af3d06eb006db289038e25 Author: KelvinTegelaar Date: Tue Nov 12 14:25:52 2024 +0100 fixes pdf export commit 672cf2b27cf1885ce8a941859491e692ecdb6021 Author: KelvinTegelaar Date: Tue Nov 12 13:36:35 2024 +0100 use classicgrid for bar commit 9449a736e28f7b854210f4ec5d925bfb70d38b53 Author: KelvinTegelaar Date: Tue Nov 12 12:49:05 2024 +0100 data improvements commit 438c9e18f4b7e7d7d22dd8f846bee43c78816173 Merge: 770bd376 cabe1570 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Nov 12 11:45:00 2024 +0100 Merge pull request #2979 from Ren-Roros-Digital/launchitall fix: fix for Launch it all🚀 commit cabe157015b321cf5e52721dbf7ab0631e2f0acb Author: Esco Date: Tue Nov 12 11:40:55 2024 +0100 fix: fix for Launch it all🚀 commit 770bd37617eb36583e9b8853da20dd91dc1c9394 Merge: ce483f08 11379540 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue Nov 12 11:34:35 2024 +0100 Merge pull request #2978 from Ren-Roros-Digital/NewStandards feat: 3 new standards and TeamsGlobalMeetingPolicy fixes commit 11379540c55f0732964b68264af7272476b07873 Author: Esco Date: Tue Nov 12 11:28:03 2024 +0100 fix: autoComplete commit 765b54f4c0ab34e477a3ea876517b38e0507797a Author: Esco Date: Tue Nov 12 11:02:15 2024 +0100 feat: Customization MeetingChatEnabledType commit c1989686164ac18dd35154131904334032471f24 Author: Esco Date: Tue Nov 12 10:56:13 2024 +0100 feat: New TeamsEnrollUser Standard commit 65729e6ddc672201916237359dcb6d182ed67625 Author: Esco Date: Tue Nov 12 10:56:02 2024 +0100 feat: added IntuneComplianceSettings standard commit 313c1437f389fdf1e7bc887074680ccb7f3d19b4 Author: Esco Date: Tue Nov 12 10:12:48 2024 +0100 feat: new Guest Invite standard commit ea908b6c152900757f0e5280085e3cf37d125d17 Author: Esco Date: Tue Nov 12 10:00:02 2024 +0100 feat: Customize AllowAnonymousUsersToJoinMeeting commit ce483f08fa4c267be9770923270db2a7e3abd577 Author: KelvinTegelaar Date: Sun Nov 3 13:22:09 2024 +0100 another missin g import commit f43ccd7af1af063ae7bef81be47dfd907902ac51 Author: KelvinTegelaar Date: Sun Nov 3 13:21:28 2024 +0100 lost import commit f57b4a8c2f471b4cbad4da9352c870cff29343f0 Author: KelvinTegelaar Date: Sun Nov 3 13:01:08 2024 +0100 upgrade packages commit 99918fa3c8dc9f908521f2c39c674fc26347c94c Author: KelvinTegelaar Date: Sun Nov 3 12:46:53 2024 +0100 toolbar stuff commit 6c69b00031fe0d0fa80a9110d93aaa3422ac4b01 Author: KelvinTegelaar Date: Sat Nov 2 19:16:54 2024 +0100 updates commit 0c35e70d291fa251410701ae1aff64f733da6ec5 Merge: 1b2ccd71 58edcb55 Author: KelvinTegelaar Date: Sat Nov 2 18:08:36 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 1b2ccd71d9be93abd1f39065e181b487182a4575 Author: KelvinTegelaar Date: Sat Nov 2 18:08:33 2024 +0100 several fixes commit 58edcb555c0c4ee99afa0122ad821ccdd5739e89 Author: John Duprey Date: Sat Nov 2 12:52:14 2024 -0400 fix refresh button commit 660aef5d0191c2cdfe238b52570f4551e1fe26ae Author: KelvinTegelaar Date: Sat Nov 2 16:58:56 2024 +0100 fix preprocessing of data commit 6cc44b4818107fdb6b1c1d0eb57aafe51f6c2a30 Merge: 4d57ebab 5c100b43 Author: KelvinTegelaar Date: Sat Nov 2 16:49:37 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4d57ebabf60433c86cd8819631d89dd4d6547fdf Author: KelvinTegelaar Date: Sat Nov 2 16:49:34 2024 +0100 fix table toolbar commit 5c100b43955dbff6f4821ecc92716df5e2cc18f2 Author: John Duprey Date: Sat Nov 2 11:39:36 2024 -0400 permission check tweak commit b18604b339bdc2fee1b0a715520da1d20a22c257 Author: John Duprey Date: Sat Nov 2 11:39:15 2024 -0400 permission builder tweaks commit 0f3968f60ace3b9b7651b8d94779d0ae03be9574 Merge: d5e2b7fa 4ac52542 Author: KelvinTegelaar Date: Sat Nov 2 16:24:49 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit d5e2b7fa29c20789bd50b48b29f23fffadc956fc Author: KelvinTegelaar Date: Sat Nov 2 16:22:16 2024 +0100 new column selector commit 4ac5254290505b8512cf1cc77a2064f0bec0f2a4 Author: John Duprey Date: Fri Nov 1 17:38:57 2024 -0400 fix version check commit 2b3094b2a8ecea8d089018bc0b33748c1f501600 Author: John Duprey Date: Fri Nov 1 17:28:57 2024 -0400 begin custom roles commit 932f376d1d6649920171c42752efb75923c25c74 Author: John Duprey Date: Fri Nov 1 16:51:13 2024 -0400 tidy builder alerts fix accordion expand on delete service principal commit 5041f1a9175fb4b3ca814437b87817c3aa4d24fe Author: John Duprey Date: Fri Nov 1 16:36:34 2024 -0400 Add confirmation dialogs commit fa4c622ebca35eb8be99464d1f68d06d309a6d60 Author: John Duprey Date: Fri Nov 1 14:30:19 2024 -0400 add service principal creation onCreateOption commit 4ac237f9b698b8ef02e931d6c223858f5da26f5d Author: John Duprey Date: Fri Nov 1 13:51:01 2024 -0400 manifest import validation commit 62685c7e8eb08a99c03d4cb754cf8715eabb47dd Author: John Duprey Date: Fri Nov 1 13:13:44 2024 -0400 Add manifest import Update bulk actions to support customFunction and noConfirm commit e85b236fac0aa4ad8d57ca258465a18a4d4aa930 Author: John Duprey Date: Fri Nov 1 11:55:46 2024 -0400 save permissions/ monitor for changes use lodash for deep compare add submit handler and api results commit a01e5a9f03f781fa264da52d7e2400d744602aac Author: John Duprey Date: Fri Nov 1 11:49:57 2024 -0400 fix default form state commit 981d1714b17f7a8adb12311d0edf37197346ad41 Author: John Duprey Date: Fri Nov 1 10:38:53 2024 -0400 sort permissions commit 328830e0e84675b0d70f74c008dfa9a36a78586f Author: John Duprey Date: Fri Nov 1 10:31:56 2024 -0400 switch span to div, add more disabled conditions commit 7099f6a27d891433aa564dc424abc04ac6b631c6 Author: John Duprey Date: Fri Nov 1 10:25:40 2024 -0400 fix onClick issue with tooltips and buttons commit 5893a6c5e6a97721e71449a834bd595772a8183c Author: John Duprey Date: Fri Nov 1 10:15:53 2024 -0400 add handling for manual input entries commit 23b8275fb335207247b09aed9832027fef6b39e0 Author: KelvinTegelaar Date: Fri Nov 1 13:35:41 2024 +0100 improvements to data structering. commit 72967864a1a747099948cd1e618fa5e7b5a17946 Author: John Duprey Date: Fri Nov 1 00:25:55 2024 -0400 Update CippAppPermissionBuilder.jsx commit b4705cbfe1b90223325a710f51ace58043d93552 Author: John Duprey Date: Fri Nov 1 00:02:14 2024 -0400 fix data length commit 55dc05dce3b96e89fa0449e9c3e03fecc37f8a25 Author: John Duprey Date: Thu Oct 31 23:52:50 2024 -0400 fix mui errors for disabled buttons commit fb117a5f9927524ad8bdaed6ed717001d21a949f Author: John Duprey Date: Thu Oct 31 23:49:29 2024 -0400 skip dialog box for custom function with noconfirm commit 7a647509f99a6b90e31cb7ab8d04deb05e960d36 Author: John Duprey Date: Thu Oct 31 17:19:33 2024 -0400 permission builder commit a29b743507768c564bf6566bda5ce1c7c2abc303 Author: John Duprey Date: Thu Oct 31 09:11:03 2024 -0400 update icons for sam app permissions commit 99d7452c729f4ffe3c9fc04f86bd47b5762418a4 Author: John Duprey Date: Thu Oct 31 09:10:44 2024 -0400 tweak standard accordion commit 294ad8b7c3accdf1af0e128a4e1d648a894578b4 Author: KelvinTegelaar Date: Thu Oct 31 12:22:45 2024 +0100 majorly improve row performance commit 07126880bb1408426c1435d74517064a99aec24f Author: KelvinTegelaar Date: Thu Oct 31 10:55:22 2024 +0100 remove console log commit bf657e5e5c07d9d6cf0e92438662f4745580998f Author: KelvinTegelaar Date: Thu Oct 31 10:55:08 2024 +0100 fixes bug with memoisation commit 6edf11352ad4181795d831a0b75258f7ca773a30 Author: KelvinTegelaar Date: Thu Oct 31 00:37:06 2024 +0100 remove console log commit 4ae3264e9b0f11e76510d3279e5a4d30a0128bc6 Merge: 433e7ffd d81a2bea Author: KelvinTegelaar Date: Thu Oct 31 00:03:30 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 433e7ffd7dd172e58fdac8c186486bd5333fc07d Author: KelvinTegelaar Date: Thu Oct 31 00:03:28 2024 +0100 performance improvements. commit d81a2bea2c366507fc50132962c80111bd4a94eb Author: John Duprey Date: Wed Oct 30 17:47:01 2024 -0400 app permission tweaks commit f1427410f0ab8158c85f42578c52b63e012fb676 Author: John Duprey Date: Wed Oct 30 13:45:43 2024 -0400 adding card style fix too commit a9b4e1b294e29e89d32a784ae94e9a0e43277205 Author: KelvinTegelaar Date: Wed Oct 30 18:42:05 2024 +0100 fix appearing table commit 50de7e9ec5e34caed3acaf9b93b945230fe9db2e Author: KelvinTegelaar Date: Wed Oct 30 18:24:47 2024 +0100 labelsizing commit 8631c6fc5a0006ef2d0ecf5c20d5201eeca04723 Author: KelvinTegelaar Date: Wed Oct 30 18:04:59 2024 +0100 fix general labels commit 404886dd3f1b672dc0956621b7a86058d7afe7e7 Merge: 4b276320 3250c574 Author: KelvinTegelaar Date: Wed Oct 30 09:55:53 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4b27632019cfb673a305da500ef71d99a88aeca5 Author: KelvinTegelaar Date: Wed Oct 30 09:55:50 2024 +0100 improvements commit 3250c57472fc370f6b2b6cf6f47dd6ca18106c68 Author: cipp-ashe Date: Wed Oct 30 01:35:10 2024 -0400 pushing changes to emiail/reports pages: antiphishing-filters, mailbox-cas-settings, mailbox-statistic, malware-filters, safeattachement-filters, safelights-filters, sharedmailboxenabledaccount commit 1241744843e22faf1c64adc3e6939faeacf1d15d Author: cipp-ashe Date: Wed Oct 30 01:21:12 2024 -0400 pushing converted changes for email/contacts, tenant-allow-block-list, list-cnnnector-templates, list-connectors, list-spamfilers, list-templates & mailbox restores. commit 9e35cdf79ed7ba96752fe1509efc43b0313fc9e4 Author: cipp-ashe Date: Wed Oct 30 00:58:27 2024 -0400 pushing pages for transport list-rules list-templates, application list applications queue, autopilot list-devices, autopilot list-profiles, list-status-pages, list-appprotection-policies, list-compliance-policies commit 9508fa62d568ea1f3f5eb031e918f3050a4cfc62 Author: cipp-ashe Date: Wed Oct 30 00:35:10 2024 -0400 pushing list-policies and list templates for MEM pages commit 6b5bad5e3658ba0953a7b83a95e1d8f58a9208c8 Author: John Duprey Date: Wed Oct 30 00:10:28 2024 -0400 Update CippAppPermissionBuilder.jsx commit 57391586fd03d975db0884e1ed00404bfc242069 Author: John Duprey Date: Tue Oct 29 23:31:32 2024 -0400 superadmin pages offloading, tenant mode done started app permissions commit a95c1c4e012186ee8ead700a6237c2aee4236cc2 Author: KelvinTegelaar Date: Tue Oct 29 22:28:18 2024 +0100 updates to ca form commit 57be98d9063819e435c3b80fae1a9facd4e3e1f1 Merge: 753a4e09 fa6f6fee Author: KelvinTegelaar Date: Tue Oct 29 22:25:02 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 753a4e09f1f968cb954ab52dec3c8713cceaf363 Author: KelvinTegelaar Date: Tue Oct 29 22:24:59 2024 +0100 Ca deploy commit fa6f6feef34565eb87a6d509a4c683c3ccc51435 Author: John Duprey Date: Tue Oct 29 16:51:11 2024 -0400 Create CippAppPermissionBuilder.jsx commit 79143bcccd5eabf02f494318ae534044cd085919 Author: cipp-ashe Date: Tue Oct 29 16:13:04 2024 -0400 updates to extension-sync, list-rooms, room-list, list-defender, list-defender-tvm, list-alerts, list-device-compliance, onedrive/list, list-sharepoint, list-team, teams-activity. commit 64c3347661c44f89bb324acfe41466a8f5b47e3d Merge: 300996cf 76d13f65 Author: KelvinTegelaar Date: Tue Oct 29 18:04:50 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 300996cfa4dbb3b16353ff4a3a31c153e91e148a Merge: 24117659 2e82d431 Author: KelvinTegelaar Date: Tue Oct 29 18:04:42 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 241176592ff64c1676094e3af2f27ebdd379636d Author: KelvinTegelaar Date: Tue Oct 29 18:04:39 2024 +0100 push changes commit 76d13f655060926def9313522b128cba0fdb89d0 Merge: b0941931 2e82d431 Author: John Duprey Date: Tue Oct 29 13:04:38 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit b0941931259473892b7f916bb174621dab4cf819 Author: John Duprey Date: Tue Oct 29 13:04:27 2024 -0400 superadmin, tenant mode commit 2e82d4318151b697e46606daff389351d6e69187 Author: cipp-ashe Date: Tue Oct 29 13:03:18 2024 -0400 adding pages commit bfe17907a0ad628d1bcca46ed46d934b357e0419 Author: John Duprey Date: Tue Oct 29 11:29:22 2024 -0400 excluded licenses Add replace for _ characters Remove maintenance page from settings commit cbf0f3128c0d8e62f1e9d42dbc1c46e7c43a0667 Author: John Duprey Date: Tue Oct 29 10:39:26 2024 -0400 Update partner-webhooks.js commit 13e0640e4838742a885f53efc54fb14b824a64bd Author: John Duprey Date: Tue Oct 29 10:18:59 2024 -0400 Update partner-webhooks.js commit 2738edaa5c2bfaef97d4f4a05718d62dd2cc8000 Author: John Duprey Date: Tue Oct 29 10:17:04 2024 -0400 layout tweaks commit 6a8b6d0730f804a0ac9caf4a30dc611f5cf20b5e Author: KelvinTegelaar Date: Tue Oct 29 11:30:49 2024 +0100 form perfections commit 78979325dd107deac6b571f333b7e9eb019eb3cc Merge: 3ab47bfd 16a54624 Author: KelvinTegelaar Date: Tue Oct 29 09:53:42 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3ab47bfd3b6a7e8cb540f37df078935334647c76 Author: KelvinTegelaar Date: Tue Oct 29 09:53:40 2024 +0100 allow resetting of state commit 16a5462445eef921b708d3f52dd477ae9d823f46 Author: John Duprey Date: Tue Oct 29 00:37:58 2024 -0400 Update partner-webhooks.js commit 7966cb2f61b16f8cbefdae7d920f400d5eeba5ea Author: John Duprey Date: Tue Oct 29 00:28:23 2024 -0400 add copy to clipboard commit cfa19258bf51f2cc580b00380dab2483af25a1ec Author: John Duprey Date: Tue Oct 29 00:19:00 2024 -0400 webhook testing commit 8a6f0a8c257f75b4f6f7637d14482e4022ed24bf Author: John Duprey Date: Mon Oct 28 21:06:13 2024 -0400 spacing commit da51fbfdcffad38b087055889109ce544841e1af Author: John Duprey Date: Mon Oct 28 20:57:13 2024 -0400 fix alignment issues commit 2732e0697f86b417940135d126659f00c4b97d82 Merge: 3b833533 ecbbdabf Author: KelvinTegelaar Date: Mon Oct 28 23:57:05 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3b8335339180aa4a59fe01aabfff7c5e35ac7b36 Author: KelvinTegelaar Date: Mon Oct 28 23:57:02 2024 +0100 wizard updates commit ecbbdabf0a386d5148873bce80c5a0077db4ebbe Author: John Duprey Date: Mon Oct 28 18:48:21 2024 -0400 partner webhook commit 272b66c80ff69f30d131db4007c6f613d8db50e4 Merge: a6f80848 3957179f Author: KelvinTegelaar Date: Mon Oct 28 23:10:49 2024 +0100 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a6f808482f441ab8b4cd1d6a30f9fbde781e7d98 Author: KelvinTegelaar Date: Mon Oct 28 23:10:40 2024 +0100 sam rewrite commit 3957179fc6ce6d5a3ae65ca24fe910b6bf137a73 Author: John Duprey Date: Mon Oct 28 17:43:53 2024 -0400 notifications commit 961e336b2c72ada9243cadb0b431c71bde0a0d32 Author: John Duprey Date: Mon Oct 28 15:32:54 2024 -0400 backend tweaks commit 99890ca7a250834ed62fde9ebe0a7a2bc590926e Author: John Duprey Date: Mon Oct 28 15:25:42 2024 -0400 backend links commit 1464921d951a8afb7d219aec814aa494a1d6c561 Author: John Duprey Date: Mon Oct 28 12:47:18 2024 -0400 remove right border on last info bar item commit 7ae18de125597d86374a0bbed7e473fc20352ac5 Author: John Duprey Date: Mon Oct 28 12:06:50 2024 -0400 Move user settings to preferences Update nav - remove User Settings from sidebar Add Preferences to account popover commit 5a0d9935961ccd00d3ae57773a97133e12890561 Author: KelvinTegelaar Date: Mon Oct 28 15:11:28 2024 +0100 addd showpassword stuff commit a627731640e8b9b0db675bea54c3fb4e061ddfc7 Author: KelvinTegelaar Date: Mon Oct 28 13:21:56 2024 +0100 dashboard prettification commit 6bc0047cd71238c7f847600aee6186119471c586 Author: KelvinTegelaar Date: Mon Oct 28 12:58:01 2024 +0100 dashboard updates commit a82af3ccefe58b26f3dfb316327e88bc0ff3b6f2 Author: KelvinTegelaar Date: Mon Oct 28 11:43:12 2024 +0100 new dashboard commit 18c95827b00a0e4c63e600f9263101922e269969 Author: KelvinTegelaar Date: Mon Oct 28 00:10:46 2024 +0100 changed title commit 6df5c426531bf0dde25564a336361aef890ed4da Author: John Duprey Date: Sun Oct 27 02:42:21 2024 -0400 prettying up report commit c58f7a21937f06dc6c5a39f657ef3f37bab4f64c Author: John Duprey Date: Sun Oct 27 02:04:24 2024 -0400 Update CippPermissionReport.jsx commit d9ced83d7726b1b334d706fd507772869e18e0d4 Author: John Duprey Date: Sat Oct 26 21:04:32 2024 -0400 Update CippPermissionReport.jsx commit fef3c8d091b95d2ce5bf83f430a3c50b9f96f920 Author: John Duprey Date: Sat Oct 26 20:25:13 2024 -0400 Update CippPermissionReport.jsx commit 2c5aa9409bb1daed90be4fcea97ab6016af6ac3b Author: John Duprey Date: Sat Oct 26 20:13:56 2024 -0400 import export tweaks add redact customer data commit a8bfa63eae88654bfe93e5839f983390e471d8a9 Author: John Duprey Date: Sat Oct 26 19:11:50 2024 -0400 imported report commit a2817e3267dd0d09a0ead0606ace21a3b1835281 Author: John Duprey Date: Sat Oct 26 18:01:18 2024 -0400 permission import/export commit 25dc260927b569ca1133db8f96ea19db3b2fb555 Author: John Duprey Date: Sat Oct 26 17:47:28 2024 -0400 report import / export commit dc6fc7a76336cb6135c8a3cc02b34e147b40b1c9 Author: John Duprey Date: Sat Oct 26 16:01:24 2024 -0400 GDAP results commit cca66560580d1e612dbf7e70267f1b83c4b70e2c Author: KelvinTegelaar Date: Sat Oct 26 13:07:58 2024 +0200 added layout mode commit b43f4e712cfc64d400e8e85c9d5f5c265acba336 Author: John Duprey Date: Sat Oct 26 01:53:19 2024 -0400 gdap check, permission tweaks commit fc60062e4ed3bf130b5c3b30c1be285577c27139 Author: John Duprey Date: Sat Oct 26 00:45:33 2024 -0400 enable column resizing commit aca1db5f7fae74a75da62059758851b9b603706d Author: John Duprey Date: Fri Oct 25 23:39:42 2024 -0400 regex tweak commit 9008068925188f4556c41f8f0013458576efe366 Author: John Duprey Date: Fri Oct 25 23:27:54 2024 -0400 Update tenants.js commit 0d0d1e57746b6f90e7e81bf91ccecc836be696cc Author: John Duprey Date: Fri Oct 25 23:27:50 2024 -0400 permission tweaks commit 08332ed5b9ce94c1ea166dfb167a53d7fe1b1c13 Author: John Duprey Date: Fri Oct 25 23:27:32 2024 -0400 create CippTimeAgo component commit f7a49d02bc9022c3ef4abe5e071cc0a29c01a98d Author: John Duprey Date: Fri Oct 25 23:27:13 2024 -0400 add queryClient to ApiGetCall commit a738f373947add2515b7c1a4e6744737297c4ed1 Author: John Duprey Date: Fri Oct 25 21:44:18 2024 -0400 small buttons commit 4898c8996fd324902c9c55f18db321f81e55c4a7 Author: John Duprey Date: Fri Oct 25 18:47:41 2024 -0400 tenant check commit 40356c3dce0a6f51ad6f250c9d2f5ef584da5ec1 Merge: ce572f4d d2c88c18 Author: KelvinTegelaar Date: Sat Oct 26 00:27:41 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit ce572f4d69883c6615ec1d9b798e0597f7482de8 Author: KelvinTegelaar Date: Sat Oct 26 00:27:32 2024 +0200 update commit d2c88c18c87922c0863d930ae3bf036f8a8cf3c5 Author: John Duprey Date: Fri Oct 25 18:27:15 2024 -0400 add offcanvas commit d7a7dff66edf03346dce281cfa4d7b1440002f3c Author: John Duprey Date: Fri Oct 25 18:08:54 2024 -0400 tenant access check commit 0573bb593ad927e5704fdde121bd188a8f2f89c9 Author: KelvinTegelaar Date: Fri Oct 25 12:07:01 2024 +0200 schema updates commit ad9d3933a07021480df49cc937ec74918ac9cfd6 Merge: cda6febc 92c38cef Author: KelvinTegelaar Date: Fri Oct 25 10:46:08 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit cda6febc2a97d4f4829e1be0f0268c41da641e19 Author: KelvinTegelaar Date: Fri Oct 25 10:46:06 2024 +0200 added "noConfirm" option commit 92c38cef110302865de62aba1764ed4bb49df594 Author: John Duprey Date: Fri Oct 25 00:21:00 2024 -0400 permission tweaks commit 03fd396a403a37656112740d408dd9e73daaba2b Author: John Duprey Date: Fri Oct 25 00:20:50 2024 -0400 add external data refreshFunction commit 43a6789513a0cdd3cb957a267389ba0033f2238c Author: John Duprey Date: Thu Oct 24 21:12:46 2024 -0400 permissions commit 8fa22901a16afb03cb80eac3c8b162a9c94878f6 Merge: 4439aa67 0113366a Author: KelvinTegelaar Date: Fri Oct 25 01:31:50 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 4439aa67c9dc4f5eb5ef29278cb1b2639ddb9273 Author: KelvinTegelaar Date: Fri Oct 25 01:31:48 2024 +0200 added stuff commit 0113366a35149c6b995806d8909f5096c4bdf8c2 Author: John Duprey Date: Thu Oct 24 17:40:21 2024 -0400 permissions add offcanvas size param commit 0307e6a3814a3fd332944f4482e747087b68f437 Author: John Duprey Date: Thu Oct 24 14:22:52 2024 -0400 tweaks commit 231d75916c5ddfa58cd2a6b1577e9a610e23d2ba Merge: 12d13369 f221b16b Author: KelvinTegelaar Date: Thu Oct 24 19:05:28 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 12d13369845d63d7dc066079220a0aa4ad3b7435 Author: KelvinTegelaar Date: Thu Oct 24 19:05:26 2024 +0200 default shrunk commit f221b16b8d90bf5e0732385d25c196ea02b76f09 Author: John Duprey Date: Thu Oct 24 13:01:10 2024 -0400 permission offcanvas commit 03b05eda1f901ab3ef4df60d47f4001432390290 Author: KelvinTegelaar Date: Thu Oct 24 18:57:52 2024 +0200 form changes commit 3f30a19aed963d280efa8851cbf5878564a26788 Merge: 82179ee5 54c071eb Author: KelvinTegelaar Date: Thu Oct 24 11:06:02 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 82179ee537fec7389ad5d638b10af304f67c2608 Author: KelvinTegelaar Date: Thu Oct 24 11:05:59 2024 +0200 weirdness to fix layout commit 54c071ebb2768b9a84680a0e4d0d48b7b488b9ee Author: John Duprey Date: Wed Oct 23 21:19:34 2024 -0400 Permission check commit 9c14737db948cf199503ee4875cd52639d55f875 Author: cipp-ashe Date: Wed Oct 23 18:11:45 2024 -0400 importing the tenant onboarding page with conversion to new ui commit f8601bbbe473bbbb70e04639e2c9cf25dc1ab0f1 Author: cipp-ashe Date: Wed Oct 23 18:08:04 2024 -0400 importing the conversion to new format for the gdap roles page commit c94c81435ee7ae0095d7ae1614d46b42951c3a24 Author: cipp-ashe Date: Wed Oct 23 18:05:51 2024 -0400 importing the converted gdap invites page. commit fc6963a50a84136329e18d4771087fa7c70d1b73 Author: cipp-ashe Date: Wed Oct 23 18:03:14 2024 -0400 updating the gdap relationships page to new format commit 2025ee3e68b9bd87b30ce471f9d0165611a2458c Author: cipp-ashe Date: Wed Oct 23 17:44:36 2024 -0400 conversion of list-licenses page for rewrite commit 14c11eea917f5a4183630405a10f1f335716d3f0 Merge: d334f530 0bc93dfa Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Wed Oct 23 23:33:01 2024 +0200 Merge pull request #2953 from cipp-ashe/interface-rewrite plz review rewrite pages commit 0bc93dfa726a61aa325cc80b533beff49c4acd40 Author: cipp-ashe Date: Wed Oct 23 17:29:24 2024 -0400 conversion of authentication methods page. commit ecd3930f5d430a21a4ea72f9789fc1974da87651 Author: cipp-ashe Date: Wed Oct 23 17:23:56 2024 -0400 conversion for the partner relationships page. commit dbb62ec8065b17871a0bf0981b1d1d940d3cfa0c Author: cipp-ashe Date: Wed Oct 23 17:12:59 2024 -0400 converting tenants page for review commit d334f53071c4779ea16c23a6491c0df2a52c8da6 Author: John Duprey Date: Wed Oct 23 17:02:44 2024 -0400 Update CippVersionProperties.jsx commit 1adbd0420ee84e13d80a5a694b142c35d0844e05 Merge: 78104fd5 a84a01ba Author: KelvinTegelaar Date: Wed Oct 23 22:18:24 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 78104fd517a3ce63330c8682acd0ba896f30746b Author: KelvinTegelaar Date: Wed Oct 23 22:18:22 2024 +0200 add list logs commit 744334b62d40fe56615c884cdc4181b56faa7077 Author: cipp-ashe Date: Wed Oct 23 16:10:35 2024 -0400 adding the signin-report page conversion with comments for review. commit 114c47bd38fa3096b989702ec82a4aef2f9d696b Merge: 7ca55b0b a84a01ba Author: cipp-ashe Date: Wed Oct 23 15:54:35 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/cipp-ashe/CIPP into interface-rewrite commit 7ca55b0bbacf3da9c9be7a71d924c817e2e0e4a1 Merge: c5550162 dcddc493 Author: cipp-ashe Date: Wed Oct 23 15:48:46 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/cipp-ashe/CIPP into interface-rewrite commit c5550162b3a7171e5882c0ccec58f2d1e989bbec Author: cipp-ashe Date: Wed Oct 23 15:47:30 2024 -0400 adding ai converted risk detections page to be reviewed. commit a84a01ba37b1a0a9b9e9aefd0c772925c2b66f89 Author: John Duprey Date: Wed Oct 23 15:43:22 2024 -0400 version check commit dcddc493567aafcadb0723ebc4203bb3bcc8fb02 Author: John Duprey Date: Wed Oct 23 15:02:39 2024 -0400 new version.json file commit f9073329b65baa27ee7f839e60c0396d21884d20 Author: John Duprey Date: Wed Oct 23 15:02:13 2024 -0400 Update .gitignore commit 7899cfeb68a42dba5f190d83deeae7907beeeb8a Merge: 1d18206b 8f96c36f Author: KelvinTegelaar Date: Wed Oct 23 14:16:25 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 1d18206b8b981833ce922188963bc5b900c5a80f Author: KelvinTegelaar Date: Wed Oct 23 14:16:22 2024 +0200 added ip lookup commit 8f96c36ff87e5c5c2b86603fc61508114989247f Author: John Duprey Date: Tue Oct 22 17:29:04 2024 -0400 Update CippBackupSettings.jsx commit ca5660173a933a1a7952e605fa24a197660ee539 Author: John Duprey Date: Tue Oct 22 17:14:12 2024 -0400 cipp backup interface commit 701c5bf449b9720697af257fd8e9b66753b5b6bf Author: KelvinTegelaar Date: Tue Oct 22 17:26:57 2024 +0200 schedule graph explorer commit 8ed919dc70204aa4b497adfa01f64b0b76799936 Author: KelvinTegelaar Date: Tue Oct 22 13:23:32 2024 +0200 improved margins commit 0738ddcd42f2249ae4626a7e9f0fdf1478069ca6 Author: KelvinTegelaar Date: Tue Oct 22 12:44:19 2024 +0200 updated formatting commit decf58d95efb84fdda921fa1dab49ba0d785a98e Author: John Duprey Date: Tue Oct 22 00:33:15 2024 -0400 backup card prettification commit abb125d207606a1e3d5bad3c5325a8115c9ebaca Author: John Duprey Date: Mon Oct 21 23:30:05 2024 -0400 cache card, tweaks to settings layout commit 81c9284bece4396c19af804b463e15267f94f632 Author: John Duprey Date: Mon Oct 21 22:15:54 2024 -0400 app settings tweaks commit 7f8b8c49bf262f842773995eb035c99d7b6f80da Merge: 3a6192d0 2c36b54e Author: John Duprey Date: Mon Oct 21 21:58:45 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 3a6192d0c045f46e1704841fa10e3cdc59331f14 Author: John Duprey Date: Mon Oct 21 21:58:42 2024 -0400 Application settings commit 2c36b54e7db2e70c3abd6996733f9cce82b684ae Author: KelvinTegelaar Date: Mon Oct 21 23:36:26 2024 +0200 add related query keys commit 9e6aa2729dcc0ef19f3c0ac7503c9bbc8f48221f Author: KelvinTegelaar Date: Mon Oct 21 23:29:38 2024 +0200 updated minor changes - removed results key where required commit b94e8c756ff3e7ead49ed57c9ee18caf7a698f61 Author: KelvinTegelaar Date: Mon Oct 21 23:24:19 2024 +0200 updated results commit 63e2c5fbce6546533e50b47327ecd4aef03c1699 Merge: e0152c81 660ee1a6 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Oct 21 23:19:20 2024 +0200 Merge pull request #2949 from cipp-ashe/interface-rewrite 3 simple pages for Interface rewrite commit e0152c817b01769f457693cdc86a9f3b07d3c9a5 Author: KelvinTegelaar Date: Mon Oct 21 23:15:43 2024 +0200 scheduler done commit 619153437a858eafc234437affeb224009c77919 Merge: 8052677e 2ca2848b Author: KelvinTegelaar Date: Mon Oct 21 23:00:37 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 8052677ee215067f3a84a14b092964f0f087f870 Author: KelvinTegelaar Date: Mon Oct 21 23:00:35 2024 +0200 edit job commit 660ee1a6cfe0c4c02ec48af6369c3cb89bf136ad Author: cipp-ashe Date: Mon Oct 21 16:35:43 2024 -0400 updated azure ad connect report to new layout commit b19b0ae6498d3a9d3c39bdd5001753a6d6174bd4 Author: cipp-ashe Date: Mon Oct 21 16:17:42 2024 -0400 updated the inactive users report page commit 5c70d94fa9c7dc59f78b327f6bfd8c979837baa8 Author: cipp-ashe Date: Mon Oct 21 16:04:35 2024 -0400 adding mfa report page conversion - needs filter integration review commit 2ca2848bd8da8ecbae121b9cd60da28693e870d7 Merge: 048d899b 021390cc Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Oct 21 19:04:44 2024 +0200 Merge pull request #2948 from cipp-ashe/interface-rewrite sending up the enterprise apps page - needs filter conversion addressed. commit 021390cc7d5378fcf1d0511ded286bcbb60e93f9 Author: cipp-ashe Date: Mon Oct 21 12:56:23 2024 -0400 sending up the enterprise apps page - needs filter conversion addressed. commit 048d899b4316b6cfc3fd3833bea66b61d232e73e Author: John Duprey Date: Mon Oct 21 12:05:51 2024 -0400 remove log subscriptions commit 5671716ca822b0c0409b3c3dce73c5b4717f76ad Author: KelvinTegelaar Date: Mon Oct 21 17:40:25 2024 +0200 add validators function commit 9bdca09ef280932cca587d2a4ad32b978e4533e7 Author: John Duprey Date: Mon Oct 21 11:30:52 2024 -0400 app settings tenants commit 9bb5057f31dd7df8228831c3841101fa2a74bc73 Author: KelvinTegelaar Date: Mon Oct 21 17:05:37 2024 +0200 fix typo commit 68fcab8f119803499a18c994ea287cf896740f24 Merge: a0fd7320 1f9ce052 Author: KelvinTegelaar Date: Mon Oct 21 17:02:39 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a0fd7320dd69739d53016210230dfbab9a762896 Author: KelvinTegelaar Date: Mon Oct 21 17:02:37 2024 +0200 added commit 1f9ce0520f697b1e78c2a8e135e75b4078e2b2a0 Author: John Duprey Date: Mon Oct 21 10:51:00 2024 -0400 add resetForm parameter commit fabc750e3d3c18dd2def42b4369477d66707df29 Author: KelvinTegelaar Date: Sun Oct 20 22:42:13 2024 +0200 finished graph commit aa2704f88cd78613039892c712f13df3597f672b Author: KelvinTegelaar Date: Sun Oct 20 22:26:25 2024 +0200 add delete button commit 655cace419af52b8878fb405b14f0893d2997679 Author: KelvinTegelaar Date: Sun Oct 20 22:18:54 2024 +0200 improvements to filtering commit f5717cc3fd64161acaa0c3f934cd24168d7a4d3a Merge: 18ce736b df03cfb0 Author: KelvinTegelaar Date: Sun Oct 20 21:14:26 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 18ce736b2c7543a9b44c14dc3447ca4392e4cc5f Author: KelvinTegelaar Date: Sun Oct 20 21:14:23 2024 +0200 more changes commit df03cfb0796691381f6fab44174c1447f39bd432 Author: John Duprey Date: Sun Oct 20 13:04:30 2024 -0400 Fix form resets on submit commit d681d47ea4294870e2ab1fa7aa4aca6c344fd6e1 Author: John Duprey Date: Sun Oct 20 11:22:49 2024 -0400 layout tweaks commit 4a84e842dd529678b6fad70664b2de43d10856e8 Author: John Duprey Date: Sun Oct 20 11:00:57 2024 -0400 Fix defaults on field mapping commit ebdd8c779f3c5c1880593798fb7ce476777164f5 Author: KelvinTegelaar Date: Sun Oct 20 15:01:14 2024 +0200 graph explorer changes commit ce00bc9bc89ceaa1fe1bd581b2934cc9777ca2f1 Merge: a2aacb4b a38f2e94 Author: KelvinTegelaar Date: Sun Oct 20 13:11:41 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a2aacb4b400d3a91c90107cbd6c5cf15b3c94e4d Author: KelvinTegelaar Date: Sun Oct 20 13:11:38 2024 +0200 updated graph explorer commit a38f2e941a666919194a8f7ee3f606bab7a8e9a4 Merge: 1d06a2ef daf8a1c5 Author: John Duprey Date: Sat Oct 19 21:57:37 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 1d06a2ef0618df4a0147c6d922905d45dc4b5ba3 Author: John Duprey Date: Sat Oct 19 21:57:34 2024 -0400 Integration field mapping commit daf8a1c5fcddaaea089d76294e43ff9bc916d866 Author: KelvinTegelaar Date: Sun Oct 20 02:24:09 2024 +0200 added transforms. commit dd544fbf13fc9928c00e8d7a0d737f3af49cbca4 Merge: f081a2b8 88e446af Author: KelvinTegelaar Date: Sun Oct 20 02:04:42 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit f081a2b88a3e159837d9de4534479e368c200fce Author: KelvinTegelaar Date: Sun Oct 20 02:04:39 2024 +0200 created graph saving of filters commit 88e446af6a49534ab89cc30b1975e28c2ba32845 Merge: b89eddb2 cd685efa Author: John Duprey Date: Sat Oct 19 18:49:18 2024 -0400 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit b89eddb208bcb2109e5dc55d82cb0078edae33d5 Author: John Duprey Date: Sat Oct 19 18:49:14 2024 -0400 field mapping commit 6488348a299a62088ad4a91fe030e73c5d07fae8 Author: KelvinTegelaar Date: Sun Oct 20 00:25:25 2024 +0200 bug fixes datatable commit cd685efaa88c753a13e8acb7c17ec3b38f1089f3 Author: KelvinTegelaar Date: Sat Oct 19 23:15:32 2024 +0200 edits commit 5904b0e5dde72e8201abc74203751e56a34a8e13 Merge: b8701cbd eb448881 Author: KelvinTegelaar Date: Sat Oct 19 23:07:26 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit b8701cbd6a65801330cbef1bce21ddfaff246bf4 Author: KelvinTegelaar Date: Sat Oct 19 23:07:23 2024 +0200 started grpah explorer commit eb448881719d39e7babbad2e97caf6d8cde796a2 Author: John Duprey Date: Sat Oct 19 16:44:21 2024 -0400 Replace loading indicators with skeleton commit a69a533c751e5374a04611e39107b510c2196f84 Author: John Duprey Date: Sat Oct 19 16:29:10 2024 -0400 fix card action area commit d15b0af88e23eadc4a3890196076828fd27037de Author: KelvinTegelaar Date: Sat Oct 19 20:03:51 2024 +0200 fix recommendations commit 08e85761c4d63d570f867256a42aa0ebf145740d Author: John Duprey Date: Sat Oct 19 13:33:34 2024 -0400 tenant automapping commit aab4603574506d70b716b950d3b9af1f163b23f5 Author: John Duprey Date: Sat Oct 19 12:39:20 2024 -0400 move settings items into grid commit 06150a9ca1b7f635ac1d02cad995d9fe2817a262 Merge: 49d7d047 314ea02c Author: KelvinTegelaar Date: Sat Oct 19 18:22:56 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 49d7d04787f29e2c423fbe54ce3ea374c7ff4c05 Author: KelvinTegelaar Date: Sat Oct 19 18:22:54 2024 +0200 domain data passing commit 314ea02c29fd633511828d3597e63a0545cd54d1 Author: John Duprey Date: Sat Oct 19 00:49:47 2024 -0400 layout tweaks commit d3ef335e5d36503cc2b21c696f3e91553593ae4e Author: John Duprey Date: Fri Oct 18 22:45:02 2024 -0400 tenant mapping commit 7d851e27019a64d41b2d87eb94d71b5c73cb78b5 Merge: a33b7d81 811d81a4 Author: KelvinTegelaar Date: Sat Oct 19 02:08:01 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit a33b7d8111d42c28a5ad2cc801b1305a9a52b10f Author: KelvinTegelaar Date: Sat Oct 19 02:07:57 2024 +0200 domain analyser commit 811d81a48a1a4316036d8bcd1ce7a587c26ccc11 Author: John Duprey Date: Fri Oct 18 18:07:46 2024 -0400 Integration tenant mappings commit eb395834b48a64ef66f38b5361877e4e6a7be78e Author: John Duprey Date: Fri Oct 18 13:24:45 2024 -0400 new form card components commit 01d68cdbf6ff56c89360d9776772f25bfd024485 Author: KelvinTegelaar Date: Fri Oct 18 18:23:23 2024 +0200 fixed line breaks commit 88fad3758baa1b643860ae2ab9a0973f87a6a500 Author: KelvinTegelaar Date: Fri Oct 18 18:09:42 2024 +0200 added codeblock commit 4b0b7d00c77b5d1fc88fddbc13ab9b7445474f56 Author: KelvinTegelaar Date: Fri Oct 18 12:10:15 2024 +0200 all tenants support stuff commit e9c59d73851a60658f0723fc95a30c1bb9505024 Author: KelvinTegelaar Date: Fri Oct 18 11:45:19 2024 +0200 all tenants stuff, cleanup commit eeb4c93e78c4c789800fa13cf86a8161e5701e99 Author: KelvinTegelaar Date: Thu Oct 17 23:31:35 2024 +0200 no console logs commit 15454bbb58122c02641225ab213bebc24b5de3ec Author: KelvinTegelaar Date: Thu Oct 17 23:30:43 2024 +0200 best practice viewing commit 0a05d36603326ad531f39876e214f6c90bb80fd3 Author: KelvinTegelaar Date: Thu Oct 17 23:20:37 2024 +0200 alltenants added commit ecfe2f7488baed365b420be7384b01f624f7108c Author: KelvinTegelaar Date: Thu Oct 17 18:18:50 2024 +0200 improvements bpa commit 1948f9227039978bd38bdadffcf160b03ded9d62 Author: KelvinTegelaar Date: Wed Oct 16 23:43:06 2024 +0200 builder changes commit 874e5be22c263a9697260caac95f01c09f9c6110 Author: KelvinTegelaar Date: Wed Oct 16 11:54:34 2024 +0200 improvements commit d061275cbfbd99bac45c47b3513742be436a7bfc Merge: 1655fcee d169785e Author: KelvinTegelaar Date: Tue Oct 15 23:54:19 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 1655fceeeba67fd48dff218104fbd256f8428eb4 Author: KelvinTegelaar Date: Tue Oct 15 23:54:17 2024 +0200 optional formats commit d169785e00643998a8f350e38e51bb98b6309b56 Author: John Duprey Date: Tue Oct 15 17:01:39 2024 -0400 add test/sync buttons commit 26d7e477e4bed4f576b41dd926ffad29640bf5c0 Author: KelvinTegelaar Date: Tue Oct 15 21:20:57 2024 +0200 reportbuilder improvements commit c2b810d073288c8bcfd003c867f229b377ae2735 Author: KelvinTegelaar Date: Tue Oct 15 16:27:02 2024 +0200 small table fix commit e0f913e91b1cac097562ea32f2fe88586500ec00 Merge: eae034ab 3e0a94a0 Author: KelvinTegelaar Date: Tue Oct 15 14:01:02 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit eae034ab26d79777dda8c42485d1ec903ebccc74 Author: KelvinTegelaar Date: Tue Oct 15 14:00:59 2024 +0200 shift stuff commit 3e0a94a0e32fe40aff2beabbd4316cecd60ff395 Author: John Duprey Date: Mon Oct 14 23:09:27 2024 -0400 extension tweaks commit 909ceda0d94729032872cc02f60f00df3a73ad20 Author: John Duprey Date: Mon Oct 14 16:10:19 2024 -0400 Add links commit d6ab31ba9d6640af361a75c5f33b6c2cbcc27fb2 Author: John Duprey Date: Mon Oct 14 16:02:48 2024 -0400 Add external link support commit 7acd2ae0b8adfcccd4e576a9d57ecc24e66e486e Author: John Duprey Date: Mon Oct 14 15:24:47 2024 -0400 Update Extensions.json commit 74de95d2d2453bad363d97d067f74de07af1e5b0 Author: John Duprey Date: Mon Oct 14 15:20:22 2024 -0400 Update configure.js commit 22fc953b4e0f178ef9dcb7801dfe28d637b27d69 Author: John Duprey Date: Mon Oct 14 15:09:40 2024 -0400 move extensions to integrations commit bf44a24f34adba50784c70e1b0b1505aac40d176 Author: John Duprey Date: Mon Oct 14 15:09:16 2024 -0400 update extensions json commit e00d7a1d60555eb99029c72fe61f013a72a99a1d Author: John Duprey Date: Mon Oct 14 15:08:51 2024 -0400 add password component commit 82944017fee3c45d3eeb8dcb2d267a5f34ba9c2f Author: John Duprey Date: Mon Oct 14 15:08:36 2024 -0400 icons and images commit 637bba393e80ba64879133c3b9b52957a7f748e3 Author: KelvinTegelaar Date: Mon Oct 14 18:29:00 2024 +0200 comitting changes commit 5cf76d8b4770b4b616ebfd011704b15d63f8c23e Author: KelvinTegelaar Date: Mon Oct 14 15:47:10 2024 +0200 finishing touches templates commit a55b7938edd90d024b175f4f9c9edf1118b380fc Author: KelvinTegelaar Date: Mon Oct 14 13:25:14 2024 +0200 update delete template, bug fixes table commit d910c306a5d92eb645d16cf77b7cf1cea331cc83 Author: KelvinTegelaar Date: Mon Oct 14 13:02:24 2024 +0200 edit functionality commit eaca7ec67aa7ac04e5539fdd959fb87a087201d0 Author: KelvinTegelaar Date: Sun Oct 13 21:52:29 2024 +0200 finished standards overview commit 1d104232d970c3e950eab8563540e5c399769fcf Author: KelvinTegelaar Date: Sun Oct 13 17:36:12 2024 +0200 fixes array stuff commit de5911900c1e12a6acd89ec49e7d6b65ebd6e412 Author: KelvinTegelaar Date: Sun Oct 13 16:10:40 2024 +0200 improved partner portal stuff. commit 9dab4abe0c346f7258d62a69f80e972748ddb044 Author: KelvinTegelaar Date: Sun Oct 13 15:35:53 2024 +0200 add standard stuff commit 1b35c16a7dd7eed948efdfca006c323b7ab7f9b9 Author: KelvinTegelaar Date: Sun Oct 13 14:42:47 2024 +0200 prettification commit 51757eb9c9dc5e58e1a7a2670e755034f5133928 Author: KelvinTegelaar Date: Sun Oct 13 13:38:50 2024 +0200 updates to standards commit a3716c9ce5801d095852fc02d985ec437493f93a Author: KelvinTegelaar Date: Sun Oct 13 00:33:04 2024 +0200 New standards commit 49cbcf7741ddf25248176bd3801b70f2dce3b8a7 Author: KelvinTegelaar Date: Sat Oct 12 23:21:32 2024 +0200 new standard commit f8c947fef3a0b569d7b835a8d7af194cf0b1d15a Author: KelvinTegelaar Date: Sat Oct 12 03:37:58 2024 +0200 templates for standards commit 1a88015fa9bb7d40ee6fcaf921f240545eb8b577 Author: KelvinTegelaar Date: Fri Oct 11 23:04:01 2024 +0200 fix stuff commit ba19a801a6b59fb75b20406bebca2a3d99367ff0 Author: KelvinTegelaar Date: Fri Oct 11 18:08:51 2024 +0200 fixes paging issues commit 155b93945ab2d1ac626390ebfc05546ded586fad Author: KelvinTegelaar Date: Fri Oct 11 15:16:36 2024 +0200 secure score updates commit a08cd050a3f0fa6bf46114d46c5f098cabe892ab Author: KelvinTegelaar Date: Fri Oct 11 13:00:54 2024 +0200 added dateAgo commit 4ccbe8b829ac8c5b341e79154741b8e6131fd022 Author: KelvinTegelaar Date: Fri Oct 11 12:39:30 2024 +0200 chart updates commit c41fd3ca1e96c41d7dce7a80b248790553331c34 Author: KelvinTegelaar Date: Fri Oct 11 11:25:55 2024 +0200 first securescore pages commit 3ed65c9814096aafda487fbf35749ef0f2f5e980 Author: KelvinTegelaar Date: Thu Oct 10 22:00:35 2024 +0200 cippform commit 156a6dc30550ced68359e0a91c235fa0c19fd827 Author: KelvinTegelaar Date: Mon Oct 7 00:15:00 2024 +0200 better licence return commit 64babaf82f260a2700470590f462e22904158c4b Author: KelvinTegelaar Date: Sun Oct 6 23:10:18 2024 +0200 csv stuff commit dec6c84d38ea838a5d111a179573c3297576eeef Author: KelvinTegelaar Date: Sun Oct 6 18:00:05 2024 +0200 added csv import, commit dcc055130f69256cddd0ef6e780a763419fb30d2 Author: KelvinTegelaar Date: Sun Oct 6 03:20:28 2024 +0200 added forms commit 62096cc466d99d6325e73aef8618db99991b7d9d Author: KelvinTegelaar Date: Sat Oct 5 22:09:00 2024 +0200 add edit user commit 444c120706031207db9774f064f44585b5239727 Author: KelvinTegelaar Date: Thu Oct 3 17:42:59 2024 +0200 liscense bar commit f2ff05b2101d555b0f9d8f76382ff8f158fe6c85 Author: KelvinTegelaar Date: Thu Oct 3 12:08:31 2024 +0200 add license list commit 6c986fcd441ab681c1bd8b2530ac3aab2973125b Author: KelvinTegelaar Date: Wed Oct 2 13:20:59 2024 +0200 added cippformPage and add for JIT commit 9efbd5ec93aec10d7b6612420994c711656908fa Author: KelvinTegelaar Date: Tue Oct 1 21:05:37 2024 +0200 Add jit admin commit acacf482515bce22072cfe3fb0c532b13fa963dd Author: KelvinTegelaar Date: Sun Sep 29 23:15:59 2024 +0200 added tenantformcomponent commit 4dadfe740dbad06c7748f30d9f1c738cda819908 Author: KelvinTegelaar Date: Sun Sep 29 23:01:02 2024 +0200 updates commit cf817f492cdf7fdc5ce3705d90f63eb49ab3ec3a Author: KelvinTegelaar Date: Sun Sep 29 16:02:24 2024 +0200 fix currentTenant stuff commit 26a8941fc6ae2e6d82397d7f5cba97e85bf1aebd Author: KelvinTegelaar Date: Sun Sep 29 14:05:46 2024 +0200 added formatter commit ead8a90be205759364330a9b842803d31b5dcadc Author: KelvinTegelaar Date: Sun Sep 29 13:47:49 2024 +0200 create condition component commit 94eb3da40a24fcbe145ab2b3c5037161adea23ec Author: KelvinTegelaar Date: Sun Sep 29 01:18:12 2024 +0200 finish offboarding wizard commit cb4b04af7115a2d7db6b5e42f36f4f516b560f08 Author: KelvinTegelaar Date: Sat Sep 28 03:13:45 2024 +0200 done commit 23a3f7ee902312b67c91604b2acfdc2aa575639e Author: KelvinTegelaar Date: Sat Sep 28 03:13:25 2024 +0200 confirmation screen commit 1ce88dbde6b481b67bde7de9112c5e7e3a541b54 Author: KelvinTegelaar Date: Fri Sep 27 13:16:24 2024 +0200 added wizard dropdown commit abc54a98510c04ca338627393618a1a59c33fda4 Author: KelvinTegelaar Date: Thu Sep 26 13:22:56 2024 +0200 form validation commit ccfa163974796896cc34e297fdcffd5acaefd392 Author: KelvinTegelaar Date: Thu Sep 26 13:14:13 2024 +0200 added form error handling commit 555c542fd8abeed676b3db7e82739287a917ce06 Author: KelvinTegelaar Date: Thu Sep 26 12:25:56 2024 +0200 small update to 500 error commit dfe990458f60c0d55fc246e8254a9ef198e659e6 Author: KelvinTegelaar Date: Thu Sep 26 11:31:51 2024 +0200 reset error boundary commit e09ed09db969e917f069f82469aad39dee1ede83 Author: KelvinTegelaar Date: Thu Sep 26 01:22:50 2024 +0200 setup error boundary commit 7690816a57d538e40c07091343ef13c2832cb4d9 Author: KelvinTegelaar Date: Wed Sep 25 01:18:22 2024 +0200 error commit 53b26ae39a75ffdf6c15c1b6f3569326c73a856c Author: KelvinTegelaar Date: Wed Sep 25 01:12:28 2024 +0200 fix error commit b637b1831b29b55907f567590c187b4bfdf20ce7 Author: KelvinTegelaar Date: Wed Sep 25 01:05:56 2024 +0200 testing commit 2258eb909ca469d4c0fbd0c3fe2873cb87fb1b85 Author: KelvinTegelaar Date: Wed Sep 25 01:02:18 2024 +0200 revert commit f64a31ccb1c23779778c668acf619361e9bf5266 Author: KelvinTegelaar Date: Wed Sep 25 01:00:17 2024 +0200 test commit 6fdc7d556536db961acd0c8dc9eaa67f304449c6 Author: KelvinTegelaar Date: Wed Sep 25 00:49:11 2024 +0200 test commit fbe852101526c7d05a6029d69b3eb95c1ea476cc Author: KelvinTegelaar Date: Wed Sep 25 00:47:42 2024 +0200 assests commit 042bb23b5e65900788098191dca3fc2c11ed652b Author: KelvinTegelaar Date: Wed Sep 25 00:42:56 2024 +0200 test commit da4869b993514bc4ba9488e85fe8ba7f8eb9793f Author: KelvinTegelaar Date: Wed Sep 25 00:40:03 2024 +0200 pattern commit 64791002a8e68996fce6c05c1aaf0d50219e04f9 Author: KelvinTegelaar Date: Wed Sep 25 00:31:04 2024 +0200 add items to swa config commit 094d46b226f04df61e77d56b4dcfad165f4d5a8c Author: KelvinTegelaar Date: Wed Sep 25 00:09:51 2024 +0200 swa commit 032de55029f5f13dfc2a11dd89e295baa0e86a75 Author: KelvinTegelaar Date: Wed Sep 25 00:05:40 2024 +0200 fixes commit 82fe5aad0f78f42aad98922774e1189dc9f5049c Author: KelvinTegelaar Date: Tue Sep 24 23:55:11 2024 +0200 navigation rewrites commit 4ac87a3b131445c9c632e9d1d62d33fdc92042ff Author: KelvinTegelaar Date: Tue Sep 24 23:16:57 2024 +0200 resources commit ce1da130d559ebf4204f27af868c1faa07e978a7 Author: KelvinTegelaar Date: Tue Sep 24 23:10:17 2024 +0200 fix commit 8723c34115f1e6d740d41629e8695eaa982b5d20 Author: KelvinTegelaar Date: Tue Sep 24 22:47:58 2024 +0200 nextjs as underscore commit 7ddce0560dbde9e01f015f06da25eb20b266d806 Author: KelvinTegelaar Date: Tue Sep 24 22:34:46 2024 +0200 static web apps commit 1456c6465b574f8b3f39a4af54eb05eedcff9546 Author: KelvinTegelaar Date: Tue Sep 24 22:01:52 2024 +0200 removing broken link commit 5d6c85b1a0ced7fb989df2faa3521d6f47aa2f58 Author: KelvinTegelaar Date: Tue Sep 24 21:58:02 2024 +0200 test commit b3d7f0fc387a636dd66cfdac85e76d5ddd3853af Author: KelvinTegelaar Date: Tue Sep 24 21:53:41 2024 +0200 test commit 7a4916db4a525904fdc81cedda2825c4b6b087c4 Author: KelvinTegelaar Date: Tue Sep 24 21:49:34 2024 +0200 test commit 2e21d6f17354e4e7e73f753f3e52ffca2ec2dc64 Author: KelvinTegelaar Date: Tue Sep 24 21:36:44 2024 +0200 added settings pages tabs commit 8182fb25f91174ed498cb590b3944f9e48b9591d Author: KelvinTegelaar Date: Tue Sep 24 15:46:32 2024 +0200 added tabbed layout option commit 4ec90d5d16c6146cc2e0587525b50d4dd626ab4f Author: KelvinTegelaar Date: Tue Sep 24 00:15:02 2024 +0200 added theme stuff and settings commit b043bab87debe81d34ba6ddf96e8ea44838d6616 Author: KelvinTegelaar Date: Sun Sep 22 23:21:53 2024 +0200 added alerts commit 19101ea13ba4a75fcd62906ceb681367ddb7645f Author: KelvinTegelaar Date: Sun Sep 22 11:40:39 2024 +0200 user settings menu commit d6c936db36ece2496582bf766eebd625fb61bc08 Author: KelvinTegelaar Date: Sat Sep 21 13:39:24 2024 +0200 not sure what these changes are any more commit 2e3012f64fd7c177232fc6d6da2e123ae2c53fac Merge: 39adf350 d2cbed4f Author: John Duprey Date: Mon Sep 16 12:08:38 2024 -0400 Merge pull request #2900 from cipp-ashe/interface-rewrite added conversions for endpoint devices and teams business voice commit d2cbed4f4ba374d3b6ce6755c931bb5bdf9a981f Author: cipp-ashe Date: Mon Sep 16 11:47:16 2024 -0400 added conversions for endpoint devices and teams business voice commit 39adf3506d0830b3b6fb3d1575a68db1cc171c4e Author: John Duprey Date: Sun Sep 15 00:23:22 2024 -0400 Delete index.js commit caef4f92ebc8d6871f7a27ec8cbe02987c36c52f Author: John Duprey Date: Sun Sep 15 00:14:32 2024 -0400 roles and deleted items cleanup commit 103bffadfd9bec3c48512a5a1f00578d559dec97 Author: John Duprey Date: Sun Sep 15 00:06:54 2024 -0400 deleted items commit d7336b2aae4a96edb70ef6da0bacd9fea15d80e1 Author: John Duprey Date: Sat Sep 14 23:56:57 2024 -0400 risky users commit 4e482c02ca28007fa20c490976d828c87e9a5294 Author: John Duprey Date: Sat Sep 14 23:21:59 2024 -0400 Create generate-placeholders.js commit b5b9d375687184cd635e908b7312ee2c907a2ca0 Author: John Duprey Date: Sat Sep 14 23:20:40 2024 -0400 Create placeholder pages & adjust import paths commit ed9f903c9dade9de97699997c143e51dcc9c2fb7 Merge: bb649fb5 b3c497b6 Author: John Duprey Date: Sat Sep 14 17:58:02 2024 -0400 Merge pull request #2896 from cipp-ashe/interface-rewrite Adding new path structure and pages for Devices and Group Templates commit b3c497b63ea031a768d20fdb176071d2f3f6249e Author: John Duprey Date: Sat Sep 14 15:31:23 2024 -0400 fix group templates - remove duplicate page definition - remove tenant filter commit c96fac858bc111443900a0a67f0af2f08645bfd9 Author: John Duprey Date: Sat Sep 14 15:28:33 2024 -0400 fix devices page - add extra .. in path for CippTablePage - misc formatting - tenantFilter is provided in CippTablePage, not needed on the device page commit bb649fb5e88b9967ef655097a38cde3337941e93 Author: KelvinTegelaar Date: Sat Sep 14 18:20:53 2024 +0200 unused var commit 9cee1b2c4548b0ee2efd613c864aa1398fe31c6a Author: KelvinTegelaar Date: Sat Sep 14 01:43:43 2024 +0200 wizard form controls commit f2113322f95b9649c4b2b59e58f5a97fa1c10673 Author: KelvinTegelaar Date: Fri Sep 13 01:05:40 2024 +0200 formcomponents commit f8216b1d1aadbf29607b76f3b91de7bf0edb83a1 Author: KelvinTegelaar Date: Fri Sep 13 01:04:51 2024 +0200 add formcomponents commit 08e61f8b6558fb5150d623e467c912b94f0fc5f6 Author: KelvinTegelaar Date: Thu Sep 12 21:56:42 2024 +0200 component diaglog commit d1da4d141102eb8905c3ac1b6fb681022e805b5b Author: KelvinTegelaar Date: Thu Sep 12 21:46:56 2024 +0200 stuff commit c150859ab20b63035e404af1edf041e763d81945 Author: cipp-ashe Date: Thu Sep 12 13:43:33 2024 -0400 added devices and group templates pages and path structures commit f55c26d00d4baf155aa06b61edc4f64f0812ce6b Author: cipp-ashe Date: Thu Sep 12 12:32:38 2024 -0400 Create index.js Adding the file and path structure for the devices page commit b1a87c05a62fd4f9457f90e5572befc1bcae67aa Author: KelvinTegelaar Date: Wed Sep 11 23:29:05 2024 +0200 link update commit 88bcdead642d8df3dc2e6d142302140f84380648 Author: KelvinTegelaar Date: Wed Sep 11 22:01:48 2024 +0200 minor updates commit a7d1e2ba203bd760b78012a5ebce7ce00882d83d Author: KelvinTegelaar Date: Wed Sep 11 12:08:34 2024 +0200 pllaceholder instead of thing commit d35aa831b3cc8946ac1eb8663ca25f70e3f9dca5 Author: KelvinTegelaar Date: Wed Sep 11 00:56:35 2024 +0200 update data interfaces commit ea7ed9c1857bceaab682a9c3c091db5b7ed5c3fc Author: KelvinTegelaar Date: Wed Sep 11 00:08:37 2024 +0200 added addedFields options commit f293be00029be7adca3bce29110987a9891f8adb Author: KelvinTegelaar Date: Tue Sep 10 23:15:33 2024 +0200 added api based autocomplete commit 574613e6ee98de1d08f8f2602719f662ea454d3f Author: KelvinTegelaar Date: Tue Sep 10 12:59:35 2024 +0200 tenantfilter fixes commit bf2a47a6fce3b99cbb09fa0f91af713627dd3f5a Author: KelvinTegelaar Date: Tue Sep 10 12:48:17 2024 +0200 tenant selector improvements. commit d37167da509641b8a44b0cf084a3eaf2631b912a Author: KelvinTegelaar Date: Mon Sep 9 22:34:23 2024 +0200 test commit 50eeabdbcdae37cf086a25104a25b6250b0cb6ab Author: KelvinTegelaar Date: Mon Sep 9 22:26:59 2024 +0200 changes commit c599002eba43008d8769ecd642b80d98570ca6c4 Author: KelvinTegelaar Date: Mon Sep 9 22:04:59 2024 +0200 tenantlist fixes commit caf78eb7145e0fd5646566888b39097fff1f3427 Author: KelvinTegelaar Date: Mon Sep 9 21:43:36 2024 +0200 old routes commit 3171676237f93176d257b49ff529e4e4b42d031b Author: KelvinTegelaar Date: Mon Sep 9 21:37:42 2024 +0200 disable image optimization server sided commit 7964d87cb94fc6306848cd580ad79e51c40c1247 Author: KelvinTegelaar Date: Mon Sep 9 21:33:28 2024 +0200 api results fix commit e3ac0ae0da66504a230846fa4da523100f3f3262 Author: KelvinTegelaar Date: Mon Sep 9 21:28:32 2024 +0200 upload commit fabc6d85c683da66e7e8c8fd012fb306ee4f4561 Author: KelvinTegelaar Date: Mon Sep 9 21:26:50 2024 +0200 add static export commit a1c90f8212000bcdd51cc98d79a9a00c8127c805 Author: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Mon Sep 9 21:25:18 2024 +0200 ci: add Azure Static Web Apps workflow file on-behalf-of: @Azure opensource@microsoft.com commit f641866067611f787a3b9e6acc285d4224a81c9a Author: KelvinTegelaar Date: Mon Sep 9 21:22:40 2024 +0200 caps commit 8e4251aa2374e7796f01d4d57d7117d4571dbb57 Author: KelvinTegelaar Date: Mon Sep 9 21:21:26 2024 +0200 routing test commit efb4b48a86c13077a0f947ed946ab8bcb43649d7 Author: KelvinTegelaar Date: Mon Sep 9 20:09:27 2024 +0200 fix tenantselector commit 0d5dbe62fd27e4a839aca143bc7a53cfe48e0b30 Author: KelvinTegelaar Date: Mon Sep 9 01:00:18 2024 +0200 table updates commit 2afd3e59b505525451b3ff57f8b7a694286c92aa Author: KelvinTegelaar Date: Sun Sep 8 22:08:53 2024 +0200 paging failures clarify commit b748f55ba64970a4c6527c8a9c266395fba1d100 Author: KelvinTegelaar Date: Sun Sep 8 17:59:52 2024 +0200 prettification commit 96d9ec4af0f2cf2bd838cb2ce296061ad1bcf04d Author: KelvinTegelaar Date: Sun Sep 8 16:13:43 2024 +0200 added undraw illustrations commit 3fc20874d84b70b0f34a6e0d47e278c6ba31c3e4 Author: KelvinTegelaar Date: Fri Sep 6 01:35:07 2024 +0200 invisble paging. commit 54d9b21e0c8625a6a5cba2fabd1dffa6aa65228a Author: KelvinTegelaar Date: Thu Sep 5 14:01:28 2024 +0200 error handlging pretification. commit fcde4850c014bec78e71126896e3231a2d62056d Author: KelvinTegelaar Date: Thu Sep 5 01:27:39 2024 +0200 styled components commit cb67bb88b7cb4de4cec906b3f78fe49e9a225bf7 Author: KelvinTegelaar Date: Thu Sep 5 01:00:57 2024 +0200 fixed scrollbars, needs more improvement. commit d31d25074b35ca08be52c2b2ab0dfd15b807de5d Merge: 52e96e22 9b26098d Author: KelvinTegelaar Date: Wed Sep 4 13:13:17 2024 +0200 Merge branch 'interface-rewrite' of https://github.com/KelvinTegelaar/CIPP into interface-rewrite commit 52e96e22a2c8e78f794b9af93eab09353e4c74d2 Author: KelvinTegelaar Date: Wed Sep 4 13:13:15 2024 +0200 updates of packages commit 9b26098d3270c3b4dfa321d47c0e048ee835704d Author: John Duprey Date: Tue Sep 3 15:22:12 2024 -0400 Scrollable drawer commit ebcf5aa59c09877988dba440fe4c4e61e830bbdf Author: John Duprey Date: Tue Sep 3 14:19:09 2024 -0400 Update index.js commit 26d3b557a648825e0ee21e637c72240ce03ea3bd Author: John Duprey Date: Tue Sep 3 14:12:43 2024 -0400 Update index.js commit 388d903c62c76a9555c0deceb6cabf85251369d4 Author: John Duprey Date: Tue Sep 3 13:53:23 2024 -0400 Add support for dataKey on CippTablePage Add dev launcher and other scripts commit 8e8f4b69d754cae4d5f2b042befa17c093af647e Author: KelvinTegelaar Date: Tue Sep 3 12:54:26 2024 +0200 add autoformatting. commit e08ae27918ff6b03e3b3d689331dcf22085548f7 Author: KelvinTegelaar Date: Tue Sep 3 12:41:24 2024 +0200 added conversions for cells commit bf9f22f3e84bbc74161c12dd7d20dc8f4534f0b6 Author: KelvinTegelaar Date: Mon Sep 2 15:10:17 2024 +0200 column keys stuff commit ceb3145f3eb34389e87a29a38699786e3cd9a281 Author: KelvinTegelaar Date: Mon Sep 2 14:57:23 2024 +0200 update exports commit 70f918cf01cd5801209ace51b96ad958c2f88ffc Author: KelvinTegelaar Date: Mon Sep 2 14:52:23 2024 +0200 moved settings to where they belong commit 0b923d81fed0fb84b8cee8a7a3e23de0ff57718f Author: KelvinTegelaar Date: Mon Sep 2 14:04:06 2024 +0200 corrections for key commit 51ad0e7b0ee03216d184cafa34f8601698d0d475 Author: KelvinTegelaar Date: Mon Sep 2 13:50:28 2024 +0200 added tooltip commit 7e46128dbe26ccb285fe8c2076c5046205b45fb3 Author: KelvinTegelaar Date: Mon Sep 2 13:35:47 2024 +0200 Fixes max height to always stay in bounds of the viewport. Useful for when table is full size. commit a6cc850226a199ff44325f160528e2b1b489a0a7 Author: KelvinTegelaar Date: Mon Sep 2 13:03:03 2024 +0200 row pinning, sticky header commit 3e06c3064856346e1ed53cc719a9d12c244b99c1 Author: KelvinTegelaar Date: Mon Sep 2 12:29:15 2024 +0200 updated yarn lock commit edc7d5316c7f27b4d9137f11fbc7f981b4f4b66d Author: KelvinTegelaar Date: Fri Aug 30 01:07:53 2024 +0200 Fixed some stuff commit 1c75f8279258f9872ab5b1ba160d090b52937c1a Author: KelvinTegelaar Date: Wed Aug 28 23:45:07 2024 +0200 pdf export and allignment commit 87207e46d113f185f2c2ba9d6bce037971faae87 Author: KelvinTegelaar Date: Wed Aug 28 13:45:42 2024 +0200 removing console errors commit 4c0c6b20730c675587827d1bf442df293e878ae0 Author: KelvinTegelaar Date: Tue Aug 27 16:50:36 2024 +0200 apicalls commit d8a2612ae27b30a62e740e9ba4fc3410c0205f85 Author: KelvinTegelaar Date: Mon Aug 26 01:02:44 2024 +0200 dialog commit cf627a85852698d8506887a0ee7ce245c1c24bda Author: KelvinTegelaar Date: Mon Aug 26 01:01:03 2024 +0200 allow multi select support commit 9b9e0382f03c626149c0334fbfb16a3951139c2d Author: KelvinTegelaar Date: Sun Aug 25 23:49:30 2024 +0200 stuff commit 029923847b7e527669b76ca6733017317418ac92 Author: KelvinTegelaar Date: Sun Aug 25 23:20:12 2024 +0200 updated apicard commit 266fd7648c7c4c65eafa0cc12cf272b9f9ea81f9 Author: KelvinTegelaar Date: Sun Aug 25 22:50:29 2024 +0200 improvements bulk actions commit db0fc3afa4d8d8ee4428fdd54d54b2614f7f45ed Author: KelvinTegelaar Date: Sun Aug 25 21:58:34 2024 +0200 form stuff commit caaa8c74cad9c2f401998b19cb75a1696000c10a Author: KelvinTegelaar Date: Sun Aug 25 18:53:39 2024 +0200 Alert stuff commit 2ece24b1d3c68c0e855a37aae6643a699f02d101 Author: KelvinTegelaar Date: Sat Aug 24 13:42:17 2024 +0200 ideation commit d2b4f227dea00ad550cd195165c12d8d5da3522e Author: KelvinTegelaar Date: Fri Aug 23 01:19:34 2024 +0200 added offcanvas generator commit 6b197aafb245636a83511d2e9278c4e0fdf16fa2 Author: KelvinTegelaar Date: Fri Aug 23 00:30:46 2024 +0200 Fixed commit 47d94b3f9a333a0c87c52804172e631a1c7daf45 Author: KelvinTegelaar Date: Thu Aug 22 23:41:29 2024 +0200 rewrite changes commit 82ac43d463a58aa36d4c895c78d0b79c65cc4f4e Author: KelvinTegelaar Date: Thu Aug 22 23:08:23 2024 +0200 improvements commit b2ff4bb0db198cdda20cddf64a931d444fc734b7 Author: KelvinTegelaar Date: Wed Aug 21 00:56:40 2024 +0200 Test commit 6629319df901bbe2c797dc5d90e8638b4d878e21 Author: KelvinTegelaar Date: Tue Aug 20 14:50:29 2024 +0200 Create TenantSelector commit 48b864dc19ef93511f4b1a141860695116c03875 Author: KelvinTegelaar Date: Tue Aug 20 02:01:42 2024 +0200 menu design commit 58c8c583a42b42c2b62722f84004d452778db242 Author: KelvinTegelaar Date: Tue Aug 20 00:11:05 2024 +0200 file changes commit d0cbef6ec5ecab162d3d7a2a5aff6c42a4bf18c1 Author: KelvinTegelaar Date: Mon Aug 19 23:54:18 2024 +0200 cleanup commit db57593839a7f9a8f1304df2e0ac04f190bc1b72 Author: KelvinTegelaar Date: Mon Aug 19 23:48:10 2024 +0200 more cleanup commit 879a5a9b6399861a51363376bcef85b1e32a212a Author: KelvinTegelaar Date: Mon Aug 19 23:41:59 2024 +0200 cleanup files commit 6aa861a2f204db057140c3d39c24331229d8f20b Author: KelvinTegelaar Date: Mon Aug 19 22:48:43 2024 +0200 rewrite commit 69e5b5f5e482aa958149951e70c0e775930b5dfc Author: KelvinTegelaar Date: Mon Aug 19 22:32:15 2024 +0200 remove old files --- .gitignore | 22 +- .vscode/extensions.json | 11 - Tools/Start-CippDevEmulators.ps1 | 12 +- deployment/AzureDeploymentTemplate.json | 2 +- ...AzureDeploymentTemplate_regionoptions.json | 8 +- deployment/DevAzureDeploymentTemplate.json | 6 +- ...AzureDeploymentTemplate_regionoptions.json | 4 +- package.json | 200 ++-- public/img/datto.png | Bin 15316 -> 0 bytes public/version_latest.txt | 2 +- .../CippComponents/CippDropzone.jsx | 90 +- src/components/layout/AppFooter.jsx | 52 - src/components/tables/CippDatatable.jsx | 66 -- src/data/alerts.json | 16 + src/data/standards.json | 949 ++++++++++++--- src/store/api/app.js | 142 --- src/store/api/reports.js | 21 - src/store/api/users.js | 131 --- .../SettingsExtensionMappings.jsx | 651 ----------- .../administration/EditMailboxPermissions.jsx | 1017 ----------------- .../administration/MailboxRuleList.jsx | 82 -- .../administration/QuarantineList.jsx | 189 --- .../email-exchange/tools/MessageViewer.jsx | 342 ------ .../transport/TransportRules.jsx | 147 --- .../applications/ApplicationsAddRMM.jsx | 366 ------ .../applications/ListApplicationQueue.jsx | 139 --- .../endpoint/intune/MEMListCompliance.jsx | 163 --- src/views/endpoint/intune/MEMListPolicies.jsx | 158 --- src/views/identity/administration/Devices.jsx | 194 ---- .../administration/UserMailboxRuleList.jsx | 99 -- src/views/identity/administration/ViewBEC.jsx | 441 ------- .../identity/administration/ViewUser.jsx | 111 -- src/views/tenant/backup/CreateBackup.jsx | 268 ----- src/views/tenant/backup/RestoreBackup.jsx | 239 ---- .../tenant/standards/BestPracticeAnalyser.jsx | 471 -------- version_latest.txt | 2 +- 36 files changed, 977 insertions(+), 5836 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 public/img/datto.png delete mode 100644 src/components/layout/AppFooter.jsx delete mode 100644 src/components/tables/CippDatatable.jsx delete mode 100644 src/store/api/app.js delete mode 100644 src/store/api/reports.js delete mode 100644 src/store/api/users.js delete mode 100644 src/views/cipp/app-settings/SettingsExtensionMappings.jsx delete mode 100644 src/views/email-exchange/administration/EditMailboxPermissions.jsx delete mode 100644 src/views/email-exchange/administration/MailboxRuleList.jsx delete mode 100644 src/views/email-exchange/administration/QuarantineList.jsx delete mode 100644 src/views/email-exchange/tools/MessageViewer.jsx delete mode 100644 src/views/email-exchange/transport/TransportRules.jsx delete mode 100644 src/views/endpoint/applications/ApplicationsAddRMM.jsx delete mode 100644 src/views/endpoint/applications/ListApplicationQueue.jsx delete mode 100644 src/views/endpoint/intune/MEMListCompliance.jsx delete mode 100644 src/views/endpoint/intune/MEMListPolicies.jsx delete mode 100644 src/views/identity/administration/Devices.jsx delete mode 100644 src/views/identity/administration/UserMailboxRuleList.jsx delete mode 100644 src/views/identity/administration/ViewBEC.jsx delete mode 100644 src/views/identity/administration/ViewUser.jsx delete mode 100644 src/views/tenant/backup/CreateBackup.jsx delete mode 100644 src/views/tenant/backup/RestoreBackup.jsx delete mode 100644 src/views/tenant/standards/BestPracticeAnalyser.jsx diff --git a/.gitignore b/.gitignore index 0c9f36fe2e8a..1f85272ad618 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,21 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies -/node_modules - +node_modules +.pnp +.pnp.js +build # testing -/coverage +coverage # production -/build +.next +out # misc -.eslintcache .DS_Store -.idea +.eslintcache +.env .env.local .env.development.local .env.test.local @@ -21,5 +24,6 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -__* -.next/* + +# vscode debug logs +debug.log \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index c21abba6989f..000000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "recommendations": [ - "github.vscode-codeql", - "dbaeumer.vscode-eslint", - "eg2.vscode-npm-script", - "christian-kohler.npm-intellisense", - "esbenp.prettier-vscode", - "stylelint.vscode-stylelint", - "editorconfig.editorconfig" - ] -} diff --git a/Tools/Start-CippDevEmulators.ps1 b/Tools/Start-CippDevEmulators.ps1 index b4f6ca696ffe..882579f1bdc4 100644 --- a/Tools/Start-CippDevEmulators.ps1 +++ b/Tools/Start-CippDevEmulators.ps1 @@ -1,4 +1,12 @@ -Write-Host "Starting CIPP Dev Emulators" +Write-Host 'Starting CIPP Dev Emulators' +Get-Process node -ErrorAction SilentlyContinue | Stop-Process -ErrorAction SilentlyContinue $Path = (Get-Item $PSScriptRoot).Parent.Parent.FullName -wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run start`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa + +$Process = Read-Host -Prompt 'Start Process Function (y/N)?' + +if ($Process -eq 'y') { + wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa`; new-tab --title 'CIPP-API-Processor' -d $Path\CIPP-API-Processor pwsh -c func start --port 7072 +} else { + wt --title CIPP`; new-tab --title 'Azurite' -d $Path pwsh -c azurite`; new-tab --title 'FunctionApp' -d $Path\CIPP-API pwsh -c func start`; new-tab --title 'CIPP Frontend' -d $Path\CIPP pwsh -c npm run dev`; new-tab --title 'SWA' -d $Path\CIPP pwsh -c npm run start-swa +} diff --git a/deployment/AzureDeploymentTemplate.json b/deployment/AzureDeploymentTemplate.json index 856221dd1122..91ce52c678a7 100644 --- a/deployment/AzureDeploymentTemplate.json +++ b/deployment/AzureDeploymentTemplate.json @@ -176,7 +176,7 @@ "name": "[variables('funcStorageName')]", "location": "[resourceGroup().location]", "tags": { - "displayName": "funStorageName" + "displayName": "funcStorageName" }, "sku": { "name": "Standard_LRS" diff --git a/deployment/AzureDeploymentTemplate_regionoptions.json b/deployment/AzureDeploymentTemplate_regionoptions.json index 7c87332aab2a..7e23726404c2 100644 --- a/deployment/AzureDeploymentTemplate_regionoptions.json +++ b/deployment/AzureDeploymentTemplate_regionoptions.json @@ -6,7 +6,7 @@ "defaultValue": "CIPP", "type": "string", "metadata": { - "description": "Name use as base-template to named the resources deployed in Azure." + "description": "Name used as base-template to name the resources deployed in Azure." } }, "GithubRepository": { @@ -20,7 +20,7 @@ "defaultValue": "GeneratedPassword", "type": "string", "metadata": { - "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token" + "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token)" } } }, @@ -176,7 +176,7 @@ "name": "[variables('funcStorageName')]", "location": "[resourceGroup().location]", "tags": { - "displayName": "funStorageName" + "displayName": "funcStorageName" }, "sku": { "name": "Standard_LRS" @@ -220,7 +220,7 @@ "buildProperties": { "appLocation": "/", "apiLocation": "", - "appArtifactLocation": "" + "outputLocation": "/out" } }, "sku": { diff --git a/deployment/DevAzureDeploymentTemplate.json b/deployment/DevAzureDeploymentTemplate.json index 8beefadd450c..5e6077beab41 100644 --- a/deployment/DevAzureDeploymentTemplate.json +++ b/deployment/DevAzureDeploymentTemplate.json @@ -6,7 +6,7 @@ "defaultValue": "CIPPDev", "type": "string", "metadata": { - "description": "Name use as base-template to named the resources deployed in Azure." + "description": "Name used as base-template to name the resources deployed in Azure." } }, "TenantID": { @@ -48,7 +48,7 @@ "defaultValue": "GeneratedPassword", "type": "string", "metadata": { - "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token" + "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token)" } }, "GithubAPIRepository": { @@ -250,7 +250,7 @@ "name": "[variables('funcStorageName')]", "location": "[resourceGroup().location]", "tags": { - "displayName": "funStorageName" + "displayName": "funcStorageName" }, "sku": { "name": "Standard_LRS" diff --git a/deployment/DevAzureDeploymentTemplate_regionoptions.json b/deployment/DevAzureDeploymentTemplate_regionoptions.json index 52eb733412fc..f17135c01057 100644 --- a/deployment/DevAzureDeploymentTemplate_regionoptions.json +++ b/deployment/DevAzureDeploymentTemplate_regionoptions.json @@ -6,7 +6,7 @@ "defaultValue": "CIPP", "type": "string", "metadata": { - "description": "Name use as base-template to named the resources deployed in Azure." + "description": "Name used as base-template to name the resources deployed in Azure." } }, "TenantID": { @@ -48,7 +48,7 @@ "defaultValue": "GeneratedPassword", "type": "string", "metadata": { - "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token" + "description": "Your Github Repository token (see https://docs.microsoft.com/en-us/azure/static-web-apps/publish-azure-resource-manager?tabs=azure-cli#create-a-github-personal-access-token)" } }, "GithubAPIRepository": { diff --git a/package.json b/package.json index a8a975f0c44c..6c2c57ba925d 100644 --- a/package.json +++ b/package.json @@ -1,130 +1,110 @@ { "name": "cipp", - "version": "6.4.1", - "description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.", + "version": "7.0.0", + "author": "CIPP Contributors", "homepage": "https://cipp.app/", "bugs": { "url": "https://github.com/KelvinTegelaar/CIPP/issues" }, + "engines": { + "node": "^18.17.0" + }, "repository": { "type": "git", "url": "git@github.com:KelvinTegelaar/CIPP.git" }, - "type": "module", - "license": "AGPL-3.0", - "author": "CIPP Contributors", "scripts": { - "prebuild": "node Generate-Import-Map.js", - "build": "echo react-scripts build && vite build", - "changelog": "auto-changelog --starting-version 3.0.0 --commit-limit false --hide-credit", - "lint": "eslint \"src/**/*.js\"", - "start": "vite", - "start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://127.0.0.1:7071", - "prepare": "husky install", - "preview": "vite preview" - }, - "config": { - "coreui_library_short_version": "4.1" + "dev": "next -H 127.0.0.1", + "build": "next build && next export", + "start": "next start", + "export": "next export", + "lint": "next lint", + "lint-fix": "next lint --fix", + "start-swa": "swa start --swa-config-location .vscode http://127.0.0.1:3000 --api-location http://127.0.0.1:7071 --verbose=silly" }, "dependencies": { - "@coreui/chartjs": "^3.0.0", - "@coreui/coreui": "^4.3.0", - "@coreui/react": "^4.11.0", - "@coreui/react-chartjs": "^2.1.3", - "@coreui/utils": "^1.3.1", - "@fortawesome/fontawesome-svg-core": "^6.5.1", - "@fortawesome/free-brands-svg-icons": "^6.5.1", - "@fortawesome/free-regular-svg-icons": "^6.5.1", - "@fortawesome/free-solid-svg-icons": "^6.5.1", - "@fortawesome/react-fontawesome": "^0.2.0", - "@monaco-editor/react": "^4.5.2", - "@popperjs/core": "^2.10.2", - "@reduxjs/toolkit": "^1.9.7", - "@rjsf/bootstrap-4": "^5.12.1", - "@rjsf/core": "^5.12.1", - "@rjsf/utils": "^5.12.1", - "@rjsf/validator-ajv8": "^5.12.1", - "@uiw/react-json-view": "^2.0.0-alpha.23", - "axios": "^1.6.2", - "buffer": "^6.0.3", - "chart.js": "^3.5.1", - "classnames": "^2.3.1", - "core-js": "^3.18.3", - "dompurify": "^3.1.6", - "eml-parse-js": "^1.1.14", - "enzyme": "^3.11.0", - "final-form": "^4.20.4", - "final-form-arrays": "^3.1.0", - "fuse.js": "^7.0.0", - "fuzzysort": "^1.1.4", - "javascript-time-ago": "^2.5.9", - "jspdf": "^2.4.0", - "jspdf-autotable": "^3.5.23", - "lodash-es": "^4.17.21", - "moment": "^2.29.1", - "prop-types": "^15.7.2", - "react": "^18.2.0", - "react-app-polyfill": "^2.0.0", - "react-bootstrap": "^1.6.5", - "react-circular-progressbar": "^2.1.0", + "@emotion/cache": "11.10.5", + "@emotion/react": "11.13.3", + "@emotion/server": "11.10.0", + "@emotion/styled": "11.13.0", + "@heroicons/react": "2.0.15", + "@monaco-editor/react": "^4.6.0", + "@mui/icons-material": "6.1.6", + "@mui/lab": "6.0.0-beta.14", + "@mui/material": "6.1.6", + "@mui/system": "6.1.6", + "@mui/x-date-pickers": "7.22.1", + "@musement/iso-duration": "^1.0.0", + "@react-pdf/renderer": "3.1.2", + "@reduxjs/toolkit": "1.9.2", + "@tanstack/react-query": "^5.51.11", + "@tanstack/react-query-devtools": "^5.51.11", + "@tanstack/react-table": "^8.19.2", + "@tiptap/core": "^2.9.1", + "@tiptap/extension-heading": "^2.9.1", + "@tiptap/extension-image": "^2.9.1", + "@tiptap/extension-table": "^2.9.1", + "@tiptap/pm": "^2.9.1", + "@tiptap/react": "^2.9.1", + "@tiptap/starter-kit": "^2.9.1", + "@uiw/react-json-view": "^2.0.0-alpha.30", + "apexcharts": "3.36.3", + "axios": "^1.7.2", + "date-fns": "2.29.3", + "eml-parse-js": "^1.1.15", + "export-to-csv": "^1.3.0", + "formik": "2.2.9", + "gray-matter": "4.0.3", + "i18next": "22.4.9", + "javascript-time-ago": "^2.5.11", + "jspdf": "^2.5.1", + "jspdf-autotable": "^3.8.2", + "leaflet": "^1.9.4", + "leaflet-defaulticon-compatibility": "^0.1.2", + "leaflet.markercluster": "^1.5.3", + "lodash.isequal": "4.5.0", + "material-react-table": "^3.0.1", + "monaco-editor": "^0.52.0", + "mui-tiptap": "^1.14.0", + "next": "^13.5.6", + "nprogress": "0.2.0", + "numeral": "2.0.6", + "prop-types": "15.8.1", + "react": "18.2.0", + "react-apexcharts": "1.4.0", + "react-beautiful-dnd": "13.1.1", "react-copy-to-clipboard": "^5.1.0", - "react-data-table-component": "^7.4.5", - "react-datepicker": "^4.10.0", - "react-dom": "^18.2.0", - "react-dropzone": "^14.2.3", - "react-final-form": "^6.5.9", - "react-final-form-arrays": "^3.1.4", - "react-final-form-listeners": "^1.0.3", - "react-helmet-async": "^1.3.0", - "react-hotkeys-hook": "^3.4.4", + "react-dom": "18.2.0", + "react-dropzone": "14.2.3", + "react-error-boundary": "^4.0.13", + "react-grid-layout": "^1.5.0", + "react-hook-form": "^7.53.0", + "react-hot-toast": "2.4.0", "react-html-parser": "^2.0.2", - "react-loading-skeleton": "^3.1.0", - "react-masonry-component": "^6.3.0", - "react-media-hook": "^0.4.9", - "react-papaparse": "^3.18.2", - "react-redux": "^7.2.5", - "react-router-dom": "^6.1.1", - "react-select": "^5.3.0", - "react-select-search": "^3.0.8", - "react-syntax-highlighter": "^15.4.5", - "react-time-ago": "^7.2.1", - "redux": "4.1.1", + "react-i18next": "12.1.4", + "react-leaflet": "4.2.1", + "react-leaflet-markercluster": "^4.2.1", + "react-markdown": "8.0.5", + "react-media-hook": "^0.5.0", + "react-papaparse": "^4.4.0", + "react-quill": "^0.0.2", + "react-redux": "8.0.5", + "react-syntax-highlighter": "^15.6.1", + "react-time-ago": "^7.3.3", + "react-window": "^1.8.10", + "redux": "4.2.1", + "redux-devtools-extension": "2.13.9", "redux-persist": "^6.0.0", - "simplebar-react": "^2.3.6", - "source-map-loader": "^3.0.0", - "styled-components": "^5.3.11" + "redux-thunk": "2.4.2", + "simplebar": "6.2.0", + "simplebar-react": "3.2.0", + "stylis-plugin-rtl": "2.1.1", + "typescript": "4.9.4", + "yup": "0.32.11" }, "devDependencies": { - "@types/react": "^18.2.39", - "@types/react-helmet": "^6.1.5", - "@vitejs/plugin-react": "^4.2.1", - "auto-changelog": "~2.3.0", - "browserslist-to-esbuild": "^1.2.0", - "eslint": "^8.54.0", - "eslint-config-prettier": "^8.3.0", - "eslint-import-resolver-custom-alias": "^1.3.2", - "eslint-plugin-import": "^2.29.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4.4", - "husky": "^7.0.4", - "postcss-scss": "^4.0.3", - "prettier": "2.4.1", - "redux-immutable-state-invariant": "^2.1.0", - "sass": "^1.64.2", - "stylelint": "^14.3.0", - "stylelint-config-sass-guidelines": "^9.0.1", - "stylelint-order": "^5.0.0", - "vite": "^5.0.6", - "vite-plugin-eslint": "^1.8.1" - }, - "engines": { - "node": "20.17.0", - "npm": ">=8.3.0" - }, - "overrides": { - "react": "^18.2.0", - "react-dom": "^18.2.0" + "@svgr/webpack": "6.5.1", + "eslint": "8.32.0", + "eslint-config-next": "13.1.6" } } diff --git a/public/img/datto.png b/public/img/datto.png deleted file mode 100644 index b0fad6f50233e46eed52acb6d6c5e037aabecfda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15316 zcma)jQ*gsyxuC+>EcU8E8 zoH!yJHXH~D2%@Bfh|)hk_K&n+p#H5WEDopt7^tI?xDZJ7H163y0m58RRuBZF4ha8g z2>DNjwUf|v1OY)B_#Xltu`M+L0pYfk6cJQ$)4TG9_ETMIdhR-DKEn%P62>fqp%fKR ztQA)@1~rb7mt{VezQgkVa|anVcS;aV2CFewTIa`_A3z+aB$|#E$HgdPnriqyNq3U@ z^Rdi#;$VJ^B-4=l(3jRQv2In<^{myghLd{9z!&uH?~yO`bTq_1KpExU*S(kFUC2?Sx(0b+Sxuv(r4x6 zxyETpPgw)@7o>2wr};8yjCdu&(E%gO&B>{->Qg%&U%tnczIp9@Pq&-SkiHdvXDJA( z;oosXELTaq&G(l$JlA#t3 zW<@X4_O5}?Pd%r>bik~q%kq16K8Bo@rpE8{`w)f7g|hIAj8-fFWT66d@4MZYHTUaW z(+YgsT1;orG@_Sm*+lz=Mo+l3LG!*-a5^`i zs<-s)5$TS=Y5ObqH!fDIjk#iA$HLs)k=jC00%`@lawhUvNC+o9htiiTwyxa0Y)~Ga zX+qQ*1ZoVrCHt<^ZGr?}YS(CnpbR5k^{#dhJ;fUom~>UaDkU2g;GUKB(iO%DjRr=z z7azh^)jlOsB!5EkpY0jv{x7!M>JVQ{!33v2_0H+Bg$M2~b}*4pQSg^jW@>NFO>HAw zp`=fdDAZaGU&@tUt6-t|{A=R0#I`dbcg_%tggsr{4$b&nM5N~9w3fTFD28N4qMI$t z>>S1}5Wfll^hXRO7*rEdX;d+fuM>bBZ)oIiIsfC*pROalz+}rI?L)YnCqFLtA8VZ|_Wn6UJ?Z+Rdw9Nw{2Gq)Upv z;=RB1(3@Zhrn0f?<72{yG9vbOXv(>dp03Ee3;u;!;6Bg>yqAE?heiPB*vm4$sz zJ0sstV-^85e3W#5_3PEOU2@r8_k86qyZ10D%&(xhn-h}7K{I&g?N8#tNmfo&5r$xF zxOBMGnDvxb0&kI~B%HX5J6k&T$%pdWbcfxW+L_-;r~bl(I0(yaodt9g?*%15PURju zx8Z^-qqNL)Iqe>2;x2p{9bqQCs6%>ULGf3o0O9e72Ckf}h#XaYt||>iajC=O{8pV- zzp1VVG$sGAa~e*o#el6^{B2o)=~H42U8CzOp?IwE`3SEwF5p8E2yAvX#Ch4`bT8>_ z|C(*RzT2MYp{z>NQNp}eS}BDs4B_Dp`8A#zgSvo9<5B3Q_rRVy@t42gMSKCO1T!!U zxEzF-S60m(!LTJsoK*jJi)&`9!|P!DTo}2MrWD%{TZ>qW!UY8T?AL!{mteZUKSB^r zoU$Z+SLIyh3hOx|rbGOW8-;vF*P0V%{q<&4(^DDtEEM61XWuU`FCH%fN3|S4mx~c- zq^$GVE!fyG3goVF@ZeKYKt&itMhTe#n(Jw4{B!<1RsES=f%)D>Q-LR0b;o}q!#(DY z6F!{G3z~uNEQ>1^rFmVzA8DMN*EYdv2lwUJ*BdUSE;xSvSO!Z`#18`FvGM7 z7ssrToFWi1_{rVka9Ko~A>|v?OWWL2C?^3)#- zEK6(e@3{HeuFcDmv6{c`5mpW??#6c(un@=tXiBaks%!2{s3*o6$ML>bWb7D=zoDL>U`f?!CRtK%^CbGkF&*N-Je-+Kc zf7NC87v4^IMiI}3?u%hz)%#3KBrEGNJ@$r357L`tdLjY?}1Xlk-m;d`;cQyYBiBOJ^dI;s2=0 zPxOC_sSsXpge&)`O&!un=I+5r_p+6P_YESuEbDy&Sw(Mt-U>SJ8ab1wVxL_h^dk~h zh4!m|zP~nMU1`^!3kPqSge z|H-p}Zzd?mkJZ+5)hyyi8)VaW4=pn_cziB!YPmnq@72P*hpbvO}d z)I#Q@yvu9rW4PUQ>6(TwMqW`elCLJ0hdP&w2E$1ken-!*}hhEw*D5$ItRu| z5`!uYq-U#kRB7T!x=3S#zhNhv?jE6R5g4Mw&Vf4zUe*e-gU)vWeYI{!_`Mr{&cIcj zzc|JI)6lZFiw%+ZqJ-}Y0wx+tawEq=(9q-M#g`%?;f4N(Gd%rOXmOWV!loDW?glVG zzXXi_OawfkGG(636D=^GgDak`)RbubX8f|_H zrE>m!c{LF!>;0w8c>s${GaimfP%J?eQ~x&yoEF&BwUNd{y-);NO~wyAB(C06r0Q4G(2pX zODUx_HBM41JSm20RmCEFgdsma{UedbiLyw1abrNw>Yh*=P}$|KGg`fbT<$j|*I;L| zle1d?(`ZRmdM4y9i$fVx!bK1~Y;YVa?^Kgt?QGxmY~E|dgIacFq@E|5HhC;IMN`w3 zTt!=i{k{{4YDe!U&+Utpc{P?-87N2UrRqx~X^n}mL>?w9XxoEK86Fu8n!*}@wa_d{ z`UPr8FPqPD_?wA&p>0Pg5Y+j5xOtwFY{~zd_!r{Vw*0Tfq&_}EWamzL;)0)pt(g07 zs%{(0x@=+#xaZt;891uYX1g%OP+o|2qqCyIZla5!s*fB|;`J>P7Aul`mX3qe2Bx1w z{=>@+1=N7kSot*sY%r2q@!x+K#$yH#0k%H%BVJ$SioBRP{G}Vk@lAKoo>@+mf4$p& z3f(iLX1G;$>=Z4df6$x)9=%C(lI<#IBz@klry~hI3Sa2}upCr+Jja)5hg=4y$M@2q zW|eIoCg&Fk^$YN12?|;CgAKoMx~~jg#MLps-x}iA30Q(A-If$b4M0?uWpRTG?x=VV zzPq1?>w1WhBlsQ3>-)k|t41MzIyhd|LzmG$Blqm`5pTntt%g%83nOP%J?Hb+8qyP1 zQ#m7-W*jE7d9|@%&$D_2-e#iCnDB%4(z}SEvCOsRU`8)@Im$e}=7#k%=QpIRgU;YF zEC!lo*+Y?CIf8F~^K#aBn4Un|-cWi=vm>&btC2fUDmDC}qQuBbAFjelgSD@KE_y%y z@$h=aNr{%2P!~ZGpN{E&Jn1RrJlVoKVozLwo)IcARm&eJWhKRfd|)mwTA+NHn|y#O z`ntQa3fU44CG++aNaIFSnGCQ&nz@Qx>DE)Z>Iob1NRJZuEd?qN8j@?QQ=OjBJ~YkA zP4m^=qqA6&UlcMqITo#%qwaWi9}w|z0cNI;0$axVE;3NZN3r)6Rl?`_wa`C)Q{u)G z$`pUVCQFdyWh-fTRkBr#T+?8!E+&i~6_dtn{-5fBkJB-8Mg-<^P!z|T9#k7UjVV{B z+{i%_^UP~-(kx8kSoOuTsAskNYXUe!sqyUaZZFD>3y!e|sm#ai2ni;hEZ>HLzi~`q zw&p}~o;Wr)ET^{c=PnTi9_~h@q$wS|G-L4IpBHCDdb1b*{0z^%P zg;C8QKf*cw!~PBf?j>db->_r-m)V@SGU@Lx9ZJ6Awii3j zzsX*8vsd8Err+Ou+n%7;W@hqoGt%0mbH;O9?4S+5@du`(`pz5W`*R>}%QlCN$L2FR zLtK~R;qjaECn#`IO^ob{Xlt%l@jX5gif%^go-P)t#7+rr$)0p~E8^ZUQGyeO8(%YJ z;s7k~(T6!U;>zW}YGW?O2Yb8)L5TArs%WC83P>aeqW_H7fS?cGK;+DhrbZ8h9&8!D zb1?W?!wrkk#<+iO!(C*%KXjw#I^Q7f_-p@P#UBV?jr~5J2)Z>R9sOdhPMuqAhk1wa zmb-$oZQm*e^z@NG%h{mxByoyJ5CGW=?4Vh=c$aoocqz-yTeEA7mBewC3!Nt&nZ5qw z%YPTK$1s!4h5i9tW;K{@B+Bq%I*nJ*li`j44d}AO;@YFnm`>V8TdDD|fOUcL^+I;&E1tfhq-|!KUEXJdHSF4-s@&Zb zb0jbF|2IlHXzqXb+nxm+=I-T12EzNC;rTDEjP zyXVC2Jt}3MqS%{6)?fc58=ds66Vy#%o55?su?Fw4d=$H%$XsMNtV&s8nq|hiS;znf zPm18E^%8+$N7B#M_jBLn%B%YE7K%+6S)2)}s13@+WvCuxfR!M_Cjkxor|65M#>aJ7 zELFAtIvBe)>`3UAo8-$CH}d2}2g3$xRchIK=smaF10HTP8c$MAzN{vUsa~qxUGA+a zPJW0fZ0{O2;P^FLd;ZhbE7D(1-s_Kx{cEYbgS(;;ul^?>I2t||Wt z>Z+RQRR7e4>r3h;nU_TiT^Oo_#CdH`*t;r-El-&?N^Gd2vD*-VKQjUe&L%Z&Ec+)` zt*8mPp_n7;-7iggk5kSWqM6nO#|1m&CPwtbC-!M2iCsSJW$mGa?`|#T(Ni5eA^V-> zX4v(a*2B$aZ(!nCZBqjiL09{Dg<-7bF(+ADk-xT<>sQT#F#8@hWc*ydL$~UxmSLeK z5p%fgu@rT>8l#@t_j%N|c9liw?L!>zODl_duy^|su7oR>62=w%B|{w>?M;{*UdTfQ zI5^31jM;6g?o$Pl%B4knwKX!!Wq{$L17KEha_2vf8TY>vK@)mw&o#<7+TOQw&X5d= z%jZ8jaq3S6(L<_%YIk?tN(Sp^J>?Vs71O7VN6` z)LKp^R31-;(*zX0qDvULNAr{*p*-QsqS2Xym|mwvD4Cc1O|2(T6CCI>IeQdr-kPtY zr|#he9b?kgEOb=ngNuL4HKe@p+=gIl7l^ru^O4Rx^W3h8h&OwFWz=3f!Pn>fS%)vV^p$#zavupMt z8K0||mx{;N#Ll2S6oecrz<2-N+Gi$P9u{o>=aRXu_fL@LsBsp%?Ftq6Nm;nHC|qC- zty~(EIns>_5z3wY%3BCbpiH3+%awL1QF`vZ}bh+8lC#!<_4$cBCA-O1Jr((gqRs6(@POV~CcIQxGeD;+BVt$}EW$64{rP_tZRZ(v!Kx zrw8PqVkn}xo4vj{FBC*=#T-2r*eqmW+%;y?2Wn@vFc#lUwn>haa@0g+pbZT0hHEi_ zauKrT*c$@9+48}QwwD*dy}uQ*b_2mD)NilGs!f#ieY18e`JDarQt1;@bZJTtenIV) z9Rj*=&{TRrdkrG(%&uyT|8b!U{X3zJHa}_N;9lhq9tcr-&pS%$dM3%xV{2v;AJBzx z+uVn%NdEp{1$b`1Kqfpt6LrTG5`B%%{{H@Ftzt`|YBY938uzHceAzF_UE& z;ol|BOy1gY$Ig&{P9aQV`}7FYWvv;i2@HX!c+SZ>3sF=Ruy<`7G3knZaBOI57|qTY zL|j9XmttlVLsdy57Wph`p?IKMVR#!fbva3ke`z&p{TOf~@@{QrYusPX`xh#}J-B*a zhmBk`pWHgMW|(kK{!C0?COAyM_hd0TEy<5;f9yFMtLbxBdj7TqmYcMP(YEAM^|rTw zedcGOTZ7tMpCA>`6|+(?e=888@mMn$7dR_w3YXr{;J_VG3~v~>#<`szeDU()n{&Ai z&GD5ON30ZKm6(-4tRKW?u_eG{u7}?5iYAglo1U0m#qNCi|IaNsc|aUG-YF}rbu-p} zLneI-3i<>m*Nco&4)E`*)K45y5-c;Hb&|11WlofM(#5L<;LUbk1+Y0qXCgL29M`7T z+`?kMSN65AHKL$GnX9<#TvH=)o%=o<1LR1K&Jf8+D*r{v=VReOa3XOBX>hco+jczk z6oi?{pLH`7wMm+udXEh0<7G+=(6v@|ZFLRr=gg_|FNrI$ne6QS^>?E4fr90mACID; zOj)W$jd>k0WoFz!W#b(V-=9(0E1a!aynQdl2r(><7&!M!KJ5I8mx(|NgczK+tPSIX z@jNVPlTp8sj(o41mD%Xj`ds^PbQ^XK=2o3)9Os2Sdu$z8jkEie>XoxuMDaCEZ`_Z{ ze|cuX3$(S(jwqe+k&nzbb)0LYS$b$IrZfzg#;{Exb}@-a!ycYF3cJEkXx^T0x~RE3MQ{6%W|lcg*Rtl~So0 zbHP;v>YWxWJu4M_=>L`#PEc$*UCiX3IIr>a9Ld|ZS$T--PHXbIf#n`QpE;1E*g5St z;c7CGVyC9yr=zj_IL+p@O503!`IWU#+T6=K;vR`ew9Z(iL{G}O$6=+@}xh~~Ji zF_(!kehJlDNMbE`QR!Otvra7|t?Lk@x!Qk~v@jEebtUi#YJQlskcn^g3SB zq8CxaLM0sGbhij4%KSG$f04&N;)$;!1qVf)g5b{sgljyTZnx8zH;(5XWEYAC}F6EH7P@G%x9T! zx+5V?F&;@GY66?Q#EG)rs|ViS{o5)o$+R@2&#nqr9RdUStd%+P1) zjZn+Zxc(QlkPS9rG@QoyugCeu`tS3lqBcQ#K0 zqV#dAzuv~bbG~LC-?XpHKYu7{?&yMm(OLtoDH7t%13NKbLdCF)8TRvF?%}4i6FU-?glh$7FrdTBkXkI&r}g4p?fjuX)M?{|BgKqzjA( zjH07J*vz#-&D~24OMifBe@HE2lxAJeeYWby#qreS*wx&8C6jOWS$czm>x- z8!Pff2=lU9#Jjr>lP&t>Z(ik>*UakN_uASvBFD#SxFD#WhJt+tFQ!!~KI+xyh~SPH z-NuT2J>i1o60YP+MS z~E!_rDo!irci}9n5Q=vr&FXpLCScm zoOIHfswKQFW7Z#4;r)M4`4m|*7==q=)H2$AVrxRb!aSjQ9xbo^(?j$=2b0DX`U8VJ zN{~(k6wo?Ym#?ZPje@LFfI3ZlOd%gTKR?B7P&=wtLSnH7EqJ{c#-YHuTlb>Z$hUuOj3!*fJR{irb&SN+>ai z9gDkMieNg}f^Q!htmL~0N(AqU*IjZCeH_dLH(euR9X>;U>YJFW&aMwSXry*A&?hGQ zcAyabmK!OoEbKY_bUP#C_c!@mBVPi*Ob!3}&%(>EN--m37J@~K2v64eqF-u@#o$rUXS}# zWIc42#tQqFPbck`M$xVFzh|O`zb3$-x1ptP_F;3f6J*(!rAvBd6uwpMcxNNvApG)) zx;{FKP#FOE&-KF}8}`HEEm38f4PYPG<6|ch9toZsigwDJr*Wuv_n3o~709QNmOCVISrIZNo_er@Tg`SmN z1|}ig=R>{s%8Z_iK{k);XrD9!_E#X|h^NpRsg)o>Jgp8g=dO@mPGKsmZx5yOcyJ)} z1Lj4c>`Hh0*YQeo3V%LMh_pwlM@dQ8w>vEKC#1RIWO<)X)}1udy3A6!%;{R;`eGxs zH<>jAj32wEIaynCkDcjqs-*Y(=nC^C8@wh?uGSCPZncl9Z5Auz8D}bDx&db(%P$)Y zn~FIFEOf4v=Q0e7RB9GX%3bEsWAh89@mWDT@rxzwlp*Wv5vZiV2|xzki}j1hi5Q-j zh^`TL1hkUK2<}>|FI;*|Yjp6^3g$|Xo_=e?=K=HzT8+1r`Q1op;4n_befeKFKn#n_ zTfU2_#HG9lWsMyKH;qB+t?GQ=*~+nc&dcZVKJv)4?vFK6vRFg_G4;8X2LcDeHuqo% zDzxzUf6jA=DogCq5%BCYtW{bMFWU!Ma&_GU@qy&uRAh zo50VcV>D=Mq}je$U_wD6ExGoWU68rHV{V}}(ZX-;V%Kq;Mbrn&(dSWauT~NkW4Gaq z%%w!ZJt#AyQX#9B=r@SMr1-+3ew9?m-tx}~do>~E)hEzt?qc#qQ?j9>QF+?g*Hp@; zJh?ofNIP{Z>Xe=NMA|u4=ByZDXGGrY4Ry*7-1`$&Vq4A|jU$6&tW}&A+daY#}|tVRNcu2LU|0&{#^wx=G3n3Ex)Bhm~|!&QTJpTGuM8 z0aIDaFSn3^9XZ@AyoP}QPMnZApttalvZ0|!(Ss z7(ENeh2L(sTb_qyzv5wPI%0~_kO=EwVuE)MX1QmG6%a(#!bFS>Ly*w8V>nW6w1PYn zrJJ@pKmIzQa7bA|{~d=M3bBr=%~Y@5|2e{d^(xjVS6GRxH~VvTNqU1+mS8%o>@}AT zz&JM}0_4sIQ-Ow8w>2w$^@>c4UP88Enqk|ojr@H|tkTXCL z*Iw^&Sf-7;)Hl+>rd-O2J7iWIZ~B+5bUHlUB5N|t8sgkA23q(T#LC0It~|VBAf0ua ze;)FMKXfiLj+oWiCPh>!k_u7DsK@kD!lqG(Lh|l+274=e)1W~gONNKRTN-hQ3#7S~ z=ya-mnk>>Jyp!t2Vw{v6id1vKmqVjpB+DtsmuYLPY_2vq&Oy0zbN4&p9!5>eXnf8; zqWUngFhARlQ^z4^m&(5?k~Vi~2dH_hl}2?0LDZU(0E)LkeqOi3dt@H})3As|)d4XX z=RjjPYHf8pAQ&8&pnt32e2h)2x5CuV+QD56L`QqS+xUni&l*VS>}%1HbkhUblAYvD7)?Xvuu@URVcIr#}d zJ2TjhYZ#Vu%uP$h%)YJCHuX-|nXD4?ujAl}(C&#%i7uD_|J6J`qD$-97lrj+a3HqB zVr(+pWLekU_31B_w_8dCg;s_{g$*U{-jwIU#gk65$WL}$piTam*;&*7;}3{Z>6;g) z--Bcm_8=Q~nkl7I288waZk;06;IDaF=LD@HZ_1goPQ-3%@%V={K%in7<5t=Q_eNZ* z*c6j&8!zhfaD27xWW~8pg=0y2%AFm3xb`%*>dxm>CW*Qa@X9$t%H3o*Y~4^it>NXB z+-|jt*fLB3-uM0`$cp(+tv}}MNEG+-PQ%ZY zdm-OZ-=V%PSErK??_?dWuZ!~8upEK*RKp&HJ6FDjaQDU?8Z;JdokBcwSJWLQ7Q^1Y zsqw6!6KC#~@^koersBCQAL#xhhX)tW=JZ?2u5<1A<@}gx&?>J+9>1{GrbAZwt2$9}Z}zkOo#Jw}A7$^~#Gi0;{`hhw*CfxU z2iz-!bGEhpL9Q<6YiiZ%@zs{RvKV0O^zsvpCX`hTGDQQr>!uG}ErOFU8NVP%Nw%I1 zVF|zWciHi>_av}>YEa#IDoOa+fqn~Y zPEz}Ja`rizN+(S?3h@S}a?$Rc%?`>1G-7llAhZ^8V7_8VV}f!hc( z%|zvAadiPZ;5e3xUq3EFH(+5eW+5|l-&iN(CHaH@`>Al-b2=yUYaOsAOhdb)nz-lM zrp&9CgN4A6iSO>3AF%S6&ewv)Q)F(vt%w_x6`IkmJr*Objvk%!Ao;yG2pAa?ROW7~ z=bP;)ReQP3(klCd&&#^4n{nyvtE5Jt;r%tn%l|oWNQ-|U#w!SFy8_%R6|`&4$%<6>z;@4+GK1!!{M#) z(mG!jsMPWzUB1K8rr;w`oEamI&@{A;T0OPOX=++Kx4E9Mib&1J_*6 zo})cQ?oSCf21l`c4t{nXWda^K;Dnc0-_z*JV|0r1C8|9h-%R4{48>L9bNjo41EZ&=qie@vacN0*czcgTXTpBVf-H1yc9xNr z*w>vBt$l6$eSB^yPWM#{WZ;J+O8yrD6iyc;xFoNW?vKn-I=Kaoo%hW6wGifdkePJW z0p4vm+9Y-)i!9C$$H&KsSXo&qv{O8`xd2=QQx)y)TH8rD;qmeD z5Qlf>XiAlZrKMF>SJ56~+H-cB?P5zSD=#~3j^>Lil7h>9rJfMy7SB%*w_`$Y_-c*6 z%gf8#1=*4viM@#35L)W7{ayS!6M9QTd2!hV0#^*uRDeedM`}uu0s}a7Ep`hEE*SG~ zI8gxtgttt8z0Qh34B79Y`xvuD(vEWVqpi@-zkaPas}ze;H&Xgy&tt|xxmPHfiFWmT zvtEYQ(=m8=#}t76^WHCjB6t<3_&1 zK0P5a6m%#3=HVB4FG`%C#zxP@L3&3fa^$?u6m`D>-_iF^0Z_Sd7_w}|HN&_c<=WI% zcTxVZH%q31GFIOB7elRJC&FJap|F@7+72%XY{#qVf55#iF(az;_7AoCMzCcWFZ{Ab zp1+S(4}NCVMiCxviR}rOGbao7Z~TbUPfAI_jI1X}fPODt+i;sL{^%`$Vo}$S9HE%~ zzc#8MVCePc8dlMqQkUH^riWS1X#g`w{Qa#SR=3OeUD%J?qjIq=$&h7%!C z+w7>znk*O;Ivd>Ql$-?PE#cR5pbz-yz%;^lVBEIf;}_kO#0cVSs=lD64nBIp91&ne zgocJ%0M!L0u}p9+7v0p0`ThvUFAijeS#TrQ)*9c4Eo@WFq&-n$lDgd7TyE#YPB%@WObrKP${(rW`j@)^XWy5}5>OOMcgz+e|1^;+_CJ-*8Gq z|6E~2e&i?8p9s5pz8tKY>kV{+nx9Am8g+&z^u7&A?zXCHImrdpfY7-=EVzN1c!xPb z^gGRS&`A5S*rSB~3hHFn90PkaUzHRHNaKHmG8IUhNCmP`oO>Xc4qS2m^&hsdSUs_@ z`;+L&hdo5}L`1_)of}n~AOdy0g=`AFPT&Ruq?pd`k=cvR8qbz<$n8P@ZXoI za2AI@;t2A0=Mmj908}vIO`>DCkx4M%e}nk={_EKg;P>D6`)R(vzc-<2!%~1Yr;llc z%(ZP67iiC7XlT14&E1myj;)zfGr8jc%dfR2y_Ft zPz(50oFBNwnQ9#Ufw5ueSM{&JcMkHMud3b)OJLMfG9r(K`fLeMWm;b+FeD9DLq|hn zap-Q|#i_Fo4S2UqcOk}Z1Vda8gSy}AsVEbPETofgXw#{;w~a_mO`WL=@4 zyW8ip{~!oLYs)1pmzNLdL)r?m;=sx|FZXGC6eA&=E_~iWnOAR zn&=G5#&~Q{=QASR6XeTVLQg8(Wz-z*BCQfPv zGl=yMg4u;*498*7PftqB{@q&%SU+$q5~WyKqtNnx!9 zapm1r`G8JPC;7d05FX5-Vf?e50~7@TDD0WI(tbW-YYRpwlIVxS3L!K|3oo~}V5HFj z)-2OXQhNUgjxDW2u)?bP`ZR*Uq)02Q^KbUowKE!t$a-`CEu+DK5>trN*5n>Y_*ja{ z!UC`%9BLfwklwrMhWJ*}a=%WJzLLR+6=E+g_T=1@CtiOiwI1*nWIKIZvJAv;C_ej5 z7|I`v2fGszIXbX?eNZ2$b=n)uNT^A>&4stTzz4>6UxG)Sd71ts2+ngm@0jPup)ZhX zT^@3%s!KtTJG4gm{m~P{z#*YzD|q`Cdo@8VkT-Zia&SmD2etjZVFE0Q*qIV?6Xd{3 zmBF`~6nGBBWxd$OCaJ_lx)M-umMF8(_Yr#$Xc3g;`OJ@I*J}GPba_LxG(In~K1hI9q;IY&|Ja zurs~IF-@u<5BOh5z~wM?!L|m4Pm$9P#lySPm+;9+nY1Aie<367SSxV0MO(pdb;Hk+ zysVT!Ac5)4a8?aLdPFCfj?Vs9h-oh7G|00IUbEt&C*bJ|_sGbe7x)j^(Y(OSiv4|d zPgNfFX^aQz_x@^yI<~%rOl%D=05DKSQ%K?7O*cv4fNJigK{S3;HM-5#G{l>d!0P=7 z&4N?B1xh6$-Xm>_yyfnB=*ua9(4e?mMhD&AqsXi5uymtpuVaq zFRxG0Gepy@NfO1|+xkJt3hvJzfJ&@(1wj$L#GREn(VAPkqdHi zS_r%&Mu~%s!S2@KslzyB;DD9S;9!Gg^d)3C@$U~vNb}}S-&z9vS+ZG_Xz{^VG9+i! zNn+K)n=!N{M;LMiviTD8|1kB7fg$1rhX@h$v8pMN5Hc9G6=enqc#ykY*VVV0?9J`b z?Yg4h50=Lri?1gzK7Py+-4NsJ6%&mjBQ4ZnaQn6Al)iir2!z^`Oe51m`WqNPUkI)7 z(1ahsDU4*Uzpq2v^itOW=Y6_K4|Eu_Hlg z0C+^T*S8^K1!FHC#k?4dX2C)b2Y0jMrOny9jgdnj*b@VPW%U?@8phmq{I&a=4b3MT z)MrRdjU;!QPA%4yO+yqLRE~d{9>`q|=kpr|%C&%&ojq#89Agui@Uu-66RZbi5ZOP< zyDze#c+zjyl$nA^p?Gf69gU(*@1HvD*--p=?)?As$#oXr;7u>7 zrT3mZ*t@*Sa_pSxAc}7Le~2p3ztDfg-Hdcm0v7dyA+wO$$qGg7@lB!PQUWV}Va{y5 zq1p3UVCF558|czC;4B~U3}Ht!p2W=@fpbTDP1xOOq*ACw`?TQO<14}`5ZM066NAV< z_eSQ-{y-nWkHKT+kh_6C$uw_(&zF8AyuQ9VmpbBZgn2lWv8NQbt+D|=%4ScjFm#Ff z4+LEqPT7nYdcUBLbU+8%LHBkDb-VQtINflkXIRStE&k0l4FPOy+V!xr6gv1yp;Ot} zAhy$bw*DjB)JHJ?u#MCnAwz%}baLzfA^e5qvfg7K)ael)1eJCHLv5Z7s{(yW1&ylI z$gJ1O106KiKd`C1fF~sv47xlxG=!cjoQ_9^0P<8@YdzxFC|Eaw6421_A#Mxkw#M diff --git a/public/version_latest.txt b/public/version_latest.txt index 4c77920fd2c5..5e39348ef037 100644 --- a/public/version_latest.txt +++ b/public/version_latest.txt @@ -1 +1 @@ -6.4.1 +99.99.99 \ No newline at end of file diff --git a/src/components/CippComponents/CippDropzone.jsx b/src/components/CippComponents/CippDropzone.jsx index e42ab066ae6f..6e400ef31e2c 100644 --- a/src/components/CippComponents/CippDropzone.jsx +++ b/src/components/CippComponents/CippDropzone.jsx @@ -1,37 +1,39 @@ -import React, { useCallback, useMemo, useState } from 'react' -import PropTypes from 'prop-types' -import { CippContentCard } from 'src/components/layout' -import { useDropzone } from 'react-dropzone' -import styled from 'styled-components' -import { useMediaPredicate } from 'react-media-hook' -import { useSelector } from 'react-redux' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' +import React, { useCallback, useMemo, useState } from "react"; +import PropTypes from "prop-types"; +//import { CippContentCard } from 'src/components/layout' +import { useDropzone } from "react-dropzone"; +import { styled } from "@mui/material/styles"; +import { useMediaPredicate } from "react-media-hook"; +//import { useSelector } from "react-redux"; +//import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' const getColor = (props) => { if (props.isDragAccept) { - return '#00e676' + return "#00e676"; } if (props.isDragReject) { - return '#ff1744' + return "#ff1744"; } if (props.isFocused) { - return '#2196f3' + return "#2196f3"; } - return '#eeeeee' -} + return "#eeeeee"; +}; const BackgroundColor = () => { - const currentTheme = useSelector((state) => state.app.currentTheme) - const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain' + const currentTheme = useSelector((state) => state.app.currentTheme); + const preferredTheme = useMediaPredicate("(prefers-color-scheme: dark)") + ? "impact" + : "cyberdrain"; const isDark = - currentTheme === 'impact' || (currentTheme === 'default' && preferredTheme === 'impact') + currentTheme === "impact" || (currentTheme === "default" && preferredTheme === "impact"); if (isDark) { - return '#333' + return "#333"; } else { - return '#fafafa' + return "#fafafa"; } -} +}; const Container = styled.div` flex: 1; @@ -47,25 +49,44 @@ const Container = styled.div` color: #bdbdbd; outline: none; transition: border 0.24s ease-in-out; -` +`; -const CippDropzone = ({ title, onDrop, dropMessage, accept, maxFiles = 1, ...props }) => { +const CippDropzone = ({ + title, + onDrop, + dropMessage, + accept, + maxFiles = 1, + returnCard = true, + ...props +}) => { const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject } = useDropzone({ onDrop, accept: accept, maxFiles: maxFiles, - }) + }); return ( - -
- - - {dropMessage} - -
-
- ) -} + <> + {returnCard ? ( + +
+ + + {dropMessage} + +
+
+ ) : ( +
+ + + {dropMessage} + +
+ )} + + ); +}; CippDropzone.propTypes = { title: PropTypes.string, @@ -73,6 +94,7 @@ CippDropzone.propTypes = { dropMessage: PropTypes.string, accept: PropTypes.object, maxFiles: PropTypes.number, -} + returnCard: PropTypes.bool, +}; -export default CippDropzone +export default CippDropzone; diff --git a/src/components/layout/AppFooter.jsx b/src/components/layout/AppFooter.jsx deleted file mode 100644 index c720c8f5a35b..000000000000 --- a/src/components/layout/AppFooter.jsx +++ /dev/null @@ -1,52 +0,0 @@ -import React from 'react' -import { CFooter, CImage, CLink } from '@coreui/react' -import { Link } from 'react-router-dom' -import { useSelector } from 'react-redux' -import { useMediaPredicate } from 'react-media-hook' - -const AppFooter = () => { - const currentTheme = useSelector((state) => state.app.currentTheme) - const preferredTheme = useMediaPredicate('(prefers-color-scheme: dark)') ? 'impact' : 'cyberdrain' - const isDark = - currentTheme === 'impact' || (currentTheme === 'default' && preferredTheme === 'impact') - - const datto = isDark ? '/img/datto.png' : '/img/datto.png' - const huntress = isDark ? '/img/huntress_teal.png' : '/img/huntress_teal.png' - const rewst = isDark ? '/img/rewst_dark.png' : '/img/rewst.png' - const ninjaone = isDark ? '/img/ninjaone_dark.png' : '/img/ninjaone.png' - const augmentt = isDark ? '/img/augmentt-dark.png' : '/img/augmentt-light.png' - - return ( - -
-

- This application is sponsored by - - - - - - - - - - - - - - - -

-
- -
- ) -} - -export default React.memo(AppFooter) diff --git a/src/components/tables/CippDatatable.jsx b/src/components/tables/CippDatatable.jsx deleted file mode 100644 index 125eeda3e00a..000000000000 --- a/src/components/tables/CippDatatable.jsx +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react' -import { useListDatatableQuery } from 'src/store/api/datatable' -import PropTypes from 'prop-types' -import { CippTable } from 'src/components/tables' -import { CippTablePropTypes } from 'src/components/tables/CippTable' -import { CCallout } from '@coreui/react' - -export default function CippDatatable({ path, params, ...rest }) { - const [graphFilter, setGraphFilter] = React.useState(params?.Parameters?.$filter) - const { - data = [], - isFetching, - error, - refetch, - } = useListDatatableQuery({ path, params: { $filter: graphFilter, ...params } }) - - let anonimized = false // Assuming default value is false - const regex = new RegExp('^[A-Z0-9]+$') - const principalNameOrUPN = - data[0]?.userPrincipalName ?? - data[0]?.UPN ?? - data.Results?.[0]?.upn ?? - data.Results?.[0]?.userPrincipalName - - if (principalNameOrUPN && regex.test(principalNameOrUPN)) { - anonimized = true - } - - var defaultFilterText = '' - if (params?.Parameters?.$filter) { - defaultFilterText = 'Graph: ' + params?.Parameters?.$filter - } - return ( - <> - {anonimized && ( - - This table might contain anonymized data. Please check this - - documentation link - - to resolve this. - - )} - {data?.Metadata?.Queued && {data?.Metadata?.QueueMessage}} - refetch()} - graphFilterFunction={setGraphFilter} - /> - - ) -} - -CippDatatable.propTypes = { - path: PropTypes.string.isRequired, - params: PropTypes.object, - ...CippTablePropTypes, -} diff --git a/src/data/alerts.json b/src/data/alerts.json index 835216740c4d..0648464c74ff 100644 --- a/src/data/alerts.json +++ b/src/data/alerts.json @@ -19,6 +19,11 @@ "label": "Alert on changed admin Passwords", "recommendedRunInterval": "30m" }, + { + "name": "InactiveLicensedUsers", + "label": "Alert on licensed users that have not logged in for 90 days", + "recommendedRunInterval": "1d" + }, { "name": "QuotaUsed", "label": "Alert on % mailbox quota used", @@ -99,5 +104,16 @@ "name": "DeviceCompliance", "label": "Alert on device compliance issues", "recommendedRunInterval": "4h" + }, + { + "name": "BreachAlert", + "label": "Alert on (new) potentially breached passwords. Generates an alert if a password is found to be breached.", + "recommendedRunInterval": "7d" + }, + { + "name": "HuntressRogueApps", + "label": "Alert on Huntress Rogue Apps detected", + "recommendedRunInterval": "4h", + "description": "Huntress has provided a repository of known rogue apps that are commonly used in BEC, data exfiltration and other Microsoft 365 attacks. This alert will notify you if any of these apps are detected in the selected tenant(s). For more information, see https://huntresslabs.github.io/rogueapps/." } ] diff --git a/src/data/standards.json b/src/data/standards.json index ef14f236cd1a..3bce57411d37 100644 --- a/src/data/standards.json +++ b/src/data/standards.json @@ -7,24 +7,28 @@ "docsDescription": "", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.MailContacts.GeneralContact", - "label": "General Contact" + "label": "General Contact", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.MailContacts.SecurityContact", - "label": "Security Contact" + "label": "Security Contact", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.MailContacts.MarketingContact", - "label": "Marketing Contact" + "label": "Marketing Contact", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.MailContacts.TechContact", - "label": "Technical Contact" + "label": "Technical Contact", + "required": false } ], "label": "Set contact e-mails", @@ -69,42 +73,45 @@ "helpText": "Sets the branding for the tenant. This includes the login page, and the Office 365 portal.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.Branding.signInPageText", - "label": "Sign-in page text" + "label": "Sign-in page text", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.Branding.usernameHintText", - "label": "Username hint Text" + "label": "Username hint Text", + "required": false }, { - "type": "boolean", + "type": "switch", "name": "standards.Branding.hideAccountResetCredentials", "label": "Hide self-service password reset" }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Visual Template", "name": "standards.Branding.layoutTemplateType", - "values": [ + "options": [ { "label": "Full-screen background", "value": "default" }, { - "label": "Parial-screen background", + "label": "Partial-screen background", "value": "verticalSplit" } ] }, { - "type": "boolean", + "type": "switch", "name": "standards.Branding.isHeaderShown", "label": "Show header" }, { - "type": "boolean", + "type": "switch", "name": "standards.Branding.isFooterShown", "label": "Show footer" } @@ -186,10 +193,11 @@ "helpText": "Enables and sets Idle session timeout for Microsoft 365 to 1 hour. This policy affects most M365 web apps", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.ActivityBasedTimeout.timeout", - "values": [ + "options": [ { "label": "1 Hour", "value": "01:00:00" @@ -227,7 +235,7 @@ "docsDescription": "Uses the CIPP functionality that deploys applications across an entire tenant base as a standard.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.AppDeploy.appids", "label": "Application IDs, comma separated" } @@ -285,10 +293,11 @@ "docsDescription": "Sets the Authenticator Lite state to enabled. This allows users to use the Authenticator Lite built into the Outlook app instead of the full Authenticator app.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.PWcompanionAppAllowedState.state", - "values": [ + "options": [ { "label": "Enabled", "value": "enabled" @@ -349,14 +358,15 @@ "name": "standards.TAP", "cat": "Entra (AAD) Standards", "tag": ["lowimpact"], - "helpText": "Enables TAP and sets the default TAP lifetime to 1 hour. This configuration also allows you to select is a TAP is single use or multi-logon.", + "helpText": "Enables TAP and sets the default TAP lifetime to 1 hour. This configuration also allows you to select if a TAP is single use or multi-logon.", "docsDescription": "Enables Temporary Password generation for the tenant.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select TAP Lifetime", "name": "standards.TAP.config", - "values": [ + "options": [ { "label": "Only Once", "value": "true" @@ -394,10 +404,11 @@ "helpText": "Sets the state of the Cross-tenant access setting to trust external MFA. This allows guest users to use their home tenant MFA to access your tenant.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.ExternalMFATrusted.state", - "values": [ + "options": [ { "label": "Enabled", "value": "true" @@ -455,10 +466,11 @@ "docsDescription": "Sets the state of the registration campaign for the tenant. If enabled nudges users to set up the Microsoft Authenticator during sign-in.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.NudgeMFA.state", - "values": [ + "options": [ { "label": "Enabled", "value": "enabled" @@ -539,9 +551,10 @@ "helpText": "This standard disables all self service licenses and enables all exclusions", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.DisableSelfServiceLicenses.Exclusions", - "label": "License Ids to exclude from this standard" + "label": "License Ids to exclude from this standard", + "required": false } ], "label": "Disable Self Service Licensing", @@ -570,9 +583,10 @@ "docsDescription": "Requires users to get administrator consent before sharing data with applications. You can preapprove specific applications.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.OauthConsent.AllowedApps", - "label": "Allowed application IDs, comma separated" + "label": "Allowed application IDs, comma separated", + "required": false } ], "label": "Require admin consent for applications (Prevent OAuth phishing)", @@ -593,6 +607,43 @@ "powershellEquivalent": "Update-MgPolicyAuthorizationPolicy", "recommendedBy": [] }, + { + "name": "standards.GuestInvite", + "cat": "Entra (AAD) Standards", + "tag": ["mediumimpact"], + "helpText": "This setting controls who can invite guests to your directory to collaborate on resources secured by your company, such as SharePoint sites or Azure resources.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "label": "Who can send invites?", + "name": "standards.GuestInvite.allowInvitesFrom", + "options": [ + { + "label": "Everyone", + "value": "everyone" + }, + { + "label": "Admins, Guest inviters and All Members", + "value": "adminsGuestInvitersAndAllMembers" + }, + { + "label": "Admins and Guest inviters", + "value": "adminsAndGuestInviters" + }, + { + "label": "None", + "value": "none" + } + ] + } + ], + "label": "Guest Invite setting", + "impact": "Medium Impact", + "impactColour": "warning", + "powershellEquivalent": "", + "recommendedBy": [] + }, { "name": "standards.UndoOauth", "cat": "Entra (AAD) Standards", @@ -648,7 +699,7 @@ "name": "standards.DisableEmail", "cat": "Entra (AAD) Standards", "tag": ["highimpact"], - "helpText": "This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead promts them to create a Microsoft account.", + "helpText": "This blocks users from using email as an MFA method. This disables the email OTP option for guest users, and instead prompts them to create a Microsoft account.", "addedComponent": [], "label": "Disables Email as an MFA method", "impact": "High Impact", @@ -689,7 +740,7 @@ "docsDescription": "Sets the e-mail address to which outbound spam alerts are sent.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.OutBoundSpamAlert.OutboundSpamContact", "label": "Outbound spam contact" } @@ -721,10 +772,11 @@ "docsDescription": "Sets the global quarantine notification interval for the tenant. This is the time between the quarantine notification emails are sent out to users. Default is 24 hours.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.GlobalQuarantineNotifications.NotificationInterval", - "values": [ + "options": [ { "label": "4 hours", "value": "04:00:00" @@ -767,10 +819,11 @@ "docsDescription": "Sets the default Focused Inbox state for the tenant. This can be overridden by the user in their Outlook settings. For more information, see [Microsoft's documentation.](https://support.microsoft.com/en-us/office/focused-inbox-for-outlook-f445ad7f-02f4-4294-a82e-71d8964e3978)", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.FocusedInbox.state", - "values": [ + "options": [ { "label": "Enabled", "value": "enabled" @@ -796,10 +849,11 @@ "docsDescription": "Sets the default state for Cloud Message Recall for the tenant. By default this is enabled. You can read more about the feature [here.](https://techcommunity.microsoft.com/t5/exchange-team-blog/cloud-based-message-recall-in-exchange-online/ba-p/3744714)", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.CloudMessageRecall.state", - "values": [ + "options": [ { "label": "Enabled", "value": "true" @@ -862,10 +916,11 @@ "docsDescription": "Adds or removes indicators to e-mail messages received from external senders in Outlook. You can read more about this feature on [Microsoft's Exchange Team Blog.](https://techcommunity.microsoft.com/t5/exchange-team-blog/native-external-sender-callouts-on-email-in-outlook/ba-p/2250098)", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.SpoofWarn.state", - "values": [ + "options": [ { "label": "Enabled", "value": "enabled" @@ -880,7 +935,7 @@ "label": "Enable or disable 'external' warning in Outlook", "impact": "Low Impact", "impactColour": "info", - "powershellEquivalent": "et-ExternalInOutlook –Enabled $true or $false", + "powershellEquivalent": "et-ExternalInOutlook \u2013Enabled $true or $false", "recommendedBy": ["CIS"] }, { @@ -910,10 +965,11 @@ "helpText": "Sets the default state for automatically turning meetings into Teams meetings for the tenant. This can be overridden by the user in Outlook.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.TeamsMeetingsByDefault.state", - "values": [ + "options": [ { "label": "Enabled", "value": "true" @@ -1019,10 +1075,11 @@ }, "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select Sharing Level", "name": "standards.calDefault.permissionlevel", - "values": [ + "options": [ { "label": "Owner - The user can create, read, edit, and delete all items in the folder, and create subfolders. The user is both folder owner and folder contact.", "value": "Owner" @@ -1109,10 +1166,11 @@ "helpText": "Sets the shorten meetings settings on a tenant level. This will shorten meetings by the selected amount of minutes. Valid values are 0 to 29. Short meetings are under 60 minutes, long meetings are over 60 minutes.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.ShortenMeetings.ShortenEventScopeDefault", - "values": [ + "options": [ { "label": "Disabled/None", "value": "None" @@ -1154,10 +1212,11 @@ "docsDescription": "", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.Bookings.state", - "values": [ + "options": [ { "label": "Enabled", "value": "true" @@ -1239,10 +1298,11 @@ "docsDescription": "Set the state of the built-in Report button in Outlook. This gives the users the ability to report emails as spam or phish.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select value", "name": "standards.UserSubmissions.state", - "values": [ + "options": [ { "label": "Enabled", "value": "enable" @@ -1254,8 +1314,9 @@ ] }, { - "type": "input", + "type": "textField", "name": "standards.UserSubmissions.email", + "required": false, "label": "Destination email address" } ], @@ -1299,7 +1360,7 @@ "docsDescription": "Sets a e-mail address to alert when a User requests to release a quarantined message. This is useful for monitoring and ensuring that the correct messages are released.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.QuarantineRequestAlert.NotifyUser", "label": "E-mail to receive the alert" } @@ -1317,17 +1378,17 @@ "helpText": "This creates a safelink policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders", "addedComponent": [ { - "type": "boolean", + "type": "switch", "label": "AllowClickThrough", "name": "standards.SafeLinksPolicy.AllowClickThrough" }, { - "type": "boolean", + "type": "switch", "label": "DisableUrlRewrite", "name": "standards.SafeLinksPolicy.DisableUrlRewrite" }, { - "type": "boolean", + "type": "switch", "label": "EnableOrganizationBranding", "name": "standards.SafeLinksPolicy.EnableOrganizationBranding" } @@ -1361,34 +1422,35 @@ "default": 1 }, { - "type": "boolean", + "type": "switch", "label": "Show first contact safety tip", "name": "standards.AntiPhishPolicy.EnableFirstContactSafetyTips", "default": true }, { - "type": "boolean", + "type": "switch", "label": "Show user impersonation safety tip", "name": "standards.AntiPhishPolicy.EnableSimilarUsersSafetyTips", "default": true }, { - "type": "boolean", + "type": "switch", "label": "Show domain impersonation safety tip", "name": "standards.AntiPhishPolicy.EnableSimilarDomainsSafetyTips", "default": true }, { - "type": "boolean", + "type": "switch", "label": "Show user impersonation unusual characters safety tip", "name": "standards.AntiPhishPolicy.EnableUnusualCharactersSafetyTips", "default": true }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "If the message is detected as spoof by spoof intelligence", "name": "standards.AntiPhishPolicy.AuthenticationFailAction", - "values": [ + "options": [ { "label": "Quarantine the message", "value": "Quarantine" @@ -1400,10 +1462,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Quarantine policy for Spoof", "name": "standards.AntiPhishPolicy.SpoofQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1419,10 +1482,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "If a message is detected as user impersonation", "name": "standards.AntiPhishPolicy.TargetedUserProtectionAction", - "values": [ + "options": [ { "label": "Move to Junk Folder", "value": "MoveToJmf" @@ -1438,10 +1502,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Quarantine policy for user impersonation", "name": "standards.AntiPhishPolicy.TargetedUserQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1457,10 +1522,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "If a message is detected as domain impersonation", "name": "standards.AntiPhishPolicy.TargetedDomainProtectionAction", - "values": [ + "options": [ { "label": "Move to Junk Folder", "value": "MoveToJmf" @@ -1476,10 +1542,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Quarantine policy for domain impersonation", "name": "standards.AntiPhishPolicy.TargetedDomainQuarantineTag", - "values": [ + "options": [ { "label": "DefaultFullAccessWithNotificationPolicy", "value": "DefaultFullAccessWithNotificationPolicy" @@ -1495,10 +1562,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "If Mailbox Intelligence detects an impersonated user", "name": "standards.AntiPhishPolicy.MailboxIntelligenceProtectionAction", - "values": [ + "options": [ { "label": "Move to Junk Folder", "value": "MoveToJmf" @@ -1514,10 +1582,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Apply quarantine policy", "name": "standards.AntiPhishPolicy.MailboxIntelligenceQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1552,10 +1621,11 @@ "helpText": "This creates a Safe Attachment policy", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Action", "name": "standards.SafeAttachmentPolicy.Action", - "values": [ + "options": [ { "label": "Allow", "value": "Allow" @@ -1571,10 +1641,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "QuarantineTag", "name": "standards.SafeAttachmentPolicy.QuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1590,14 +1661,15 @@ ] }, { - "type": "boolean", + "type": "switch", "label": "Redirect", "name": "standards.SafeAttachmentPolicy.Redirect" }, { - "type": "input", + "type": "textField", "name": "standards.SafeAttachmentPolicy.RedirectAddress", - "label": "Redirect Address" + "label": "Redirect Address", + "required": false } ], "label": "Default Safe Attachment Policy", @@ -1613,10 +1685,11 @@ "helpText": "This creates a Atp policy that enables Defender for Office 365 for Sharepoint, OneDrive and Microsoft Teams.", "addedComponent": [ { - "type": "boolean", + "type": "switch", "label": "Allow people to click through Protected View even if Safe Documents identified the file as malicious", "name": "standards.AtpPolicyForO365.AllowSafeDocsOpen", - "default": false + "default": false, + "required": false } ], "label": "Default Atp Policy For O365", @@ -1632,10 +1705,11 @@ "helpText": "This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "FileTypeAction", "name": "standards.MalwareFilterPolicy.FileTypeAction", - "values": [ + "options": [ { "label": "Reject", "value": "Reject" @@ -1647,15 +1721,17 @@ ] }, { - "type": "input", + "type": "textField", "name": "standards.MalwareFilterPolicy.OptionalFileTypes", + "required": false, "label": "Optional File Types, Comma separated" }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "QuarantineTag", "name": "standards.MalwareFilterPolicy.QuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1671,23 +1747,27 @@ ] }, { - "type": "boolean", + "type": "switch", "label": "Enable Internal Sender Admin Notifications", + "required": false, "name": "standards.MalwareFilterPolicy.EnableInternalSenderAdminNotifications" }, { - "type": "input", + "type": "textField", "name": "standards.MalwareFilterPolicy.InternalSenderAdminAddress", + "required": false, "label": "Internal Sender Admin Address" }, { - "type": "boolean", + "type": "switch", "label": "Enable External Sender Admin Notifications", + "required": false, "name": "standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications" }, { - "type": "input", + "type": "textField", "name": "standards.MalwareFilterPolicy.ExternalSenderAdminAddress", + "required": false, "label": "External Sender Admin Address" } ], @@ -1710,10 +1790,11 @@ "default": 7 }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Spam Action", "name": "standards.SpamFilterPolicy.SpamAction", - "values": [ + "options": [ { "label": "Quarantine the message", "value": "Quarantine" @@ -1725,10 +1806,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Spam Quarantine Tag", "name": "standards.SpamFilterPolicy.SpamQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1744,10 +1826,10 @@ ] }, { - "type": "Select", + "type": "autoComplete", "label": "High Confidence Spam Action", "name": "standards.SpamFilterPolicy.HighConfidenceSpamAction", - "values": [ + "options": [ { "label": "Quarantine the message", "value": "Quarantine" @@ -1759,10 +1841,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "High Confidence Spam Quarantine Tag", "name": "standards.SpamFilterPolicy.HighConfidenceSpamQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1778,10 +1861,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Bulk Spam Action", "name": "standards.SpamFilterPolicy.BulkSpamAction", - "values": [ + "options": [ { "label": "Quarantine the message", "value": "Quarantine" @@ -1793,10 +1877,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Bulk Quarantine Tag", "name": "standards.SpamFilterPolicy.BulkQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1812,10 +1897,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Phish Spam Action", "name": "standards.SpamFilterPolicy.PhishSpamAction", - "values": [ + "options": [ { "label": "Quarantine the message", "value": "Quarantine" @@ -1827,10 +1913,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Phish Quarantine Tag", "name": "standards.SpamFilterPolicy.PhishQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1846,10 +1933,11 @@ ] }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "High Confidence Phish Quarantine Tag", "name": "standards.SpamFilterPolicy.HighConfidencePhishQuarantineTag", - "values": [ + "options": [ { "label": "AdminOnlyAccessPolicy", "value": "AdminOnlyAccessPolicy" @@ -1896,54 +1984,63 @@ "helpText": "Sets the branding profile for the Intune Company Portal app. This is a tenant wide setting and overrules any settings set on the app level.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.displayName", - "label": "Organization name" + "label": "Organization name", + "required": false }, { - "type": "boolean", + "type": "switch", "name": "standards.intuneBrandingProfile.showLogo", "label": "Show logo" }, { - "type": "boolean", + "type": "switch", "name": "standards.intuneBrandingProfile.showDisplayNameNextToLogo", - "label": "Show organization name next to logo" + "label": "Show organization name next to logo", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.contactITName", - "label": "Contact IT name" + "label": "Contact IT name", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.contactITPhoneNumber", - "label": "Contact IT phone number" + "label": "Contact IT phone number", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.contactITEmailAddress", - "label": "Contact IT email address" + "label": "Contact IT email address", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.contactITNotes", - "label": "Contact IT notes" + "label": "Contact IT notes", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.onlineSupportSiteName", - "label": "Online support site name" + "label": "Online support site name", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.onlineSupportSiteUrl", - "label": "Online support site URL" + "label": "Online support site URL", + "required": false }, { - "type": "input", + "type": "textField", "name": "standards.intuneBrandingProfile.privacyUrl", - "label": "Privacy statement URL" + "label": "Privacy statement URL", + "required": false } ], "label": "Set Intune Company Portal branding profile", @@ -1952,6 +2049,40 @@ "powershellEquivalent": "Graph API", "recommendedBy": [] }, + { + "name": "standards.IntuneComplianceSettings", + "cat": "Intune Standards", + "tag": ["lowimpact"], + "helpText": "Sets the mark devices with no compliance policy assigned as compliance/non compliant and Compliance status validity period.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "name": "standards.IntuneComplianceSettings.secureByDefault", + "label": "Mark devices with no compliance policy as", + "options": [ + { + "label": "Compliant", + "value": "false" + }, + { + "label": "Non-Compliant", + "value": "true" + } + ] + }, + { + "type": "number", + "name": "standards.IntuneComplianceSettings.deviceComplianceCheckinThresholdDays", + "label": "Compliance status validity period (days)" + } + ], + "label": "Set Intune Compliance Settings", + "impact": "Low Impact", + "impactColour": "info", + "powershellEquivalent": "", + "recommendedBy": [] + }, { "name": "standards.intuneDeviceReg", "cat": "Intune Standards", @@ -1985,14 +2116,23 @@ "name": "standards.DeletedUserRentention", "cat": "SharePoint Standards", "tag": ["lowimpact"], - "helpText": "Sets the retention period for deleted users OneDrive to the specified number of years. The default is 1 year.", - "docsDescription": "When a OneDrive user gets deleted, the personal SharePoint site is saved for selected time in years and data can be retrieved from it.", + "helpText": "Sets the retention period for deleted users OneDrive to the specified period of time. The default is 30 days.", + "docsDescription": "When a OneDrive user gets deleted, the personal SharePoint site is saved for selected amount of time that data can be retrieved from it.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "name": "standards.DeletedUserRentention.Days", - "label": "Retention in years (Default 1)", - "values": [ + "label": "Retention time (Default 30 days)", + "options": [ + { + "label": "30 days", + "value": "30" + }, + { + "label": "90 days", + "value": "90" + }, { "label": "1 year", "value": "365" @@ -2151,10 +2291,11 @@ "helpText": "If disabled, the button Add shortcut to OneDrive will be removed and users in the tenant will no longer be able to add new shortcuts to their OneDrive. Existing shortcuts will remain functional", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Add Shortcuts To OneDrive button state", "name": "standards.DisableAddShortcutsToOneDrive.state", - "values": [ + "options": [ { "label": "Disabled", "value": "true" @@ -2179,10 +2320,11 @@ "helpText": "If disabled, users in the tenant will no longer be able to use the Sync button to sync SharePoint content on all sites. However, existing synced content will remain functional on the user's computer.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "SharePoint Sync Button state", "name": "standards.SPSyncButtonState.state", - "values": [ + "options": [ { "label": "Disabled", "value": "true" @@ -2220,10 +2362,11 @@ "helpText": "Sets the default sharing level for OneDrive and Sharepoint. This is a tenant wide setting and overrules any settings set on the site level", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "label": "Select Sharing Level", "name": "standards.sharingCapability.Level", - "values": [ + "options": [ { "label": "Users can share only with people in the organization. No external sharing is allowed.", "value": "disabled" @@ -2282,7 +2425,7 @@ "helpText": "Sets the file extensions that are excluded from syncing with OneDrive. These files will be blocked from upload. '*.' is automatically added to the extension and can be omitted.", "addedComponent": [ { - "type": "input", + "type": "textField", "name": "standards.ExcludedfileExt.ext", "label": "Extensions, Comma separated" } @@ -2324,16 +2467,17 @@ "helpText": "Restricts sharing to only users with the specified domain. This is useful for organizations that only want to share with their own domain.", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "name": "standards.sharingDomainRestriction.Mode", "label": "Limit external sharing by domains", - "values": [ + "options": [ { "label": "Off", "value": "none" }, { - "label": "Restirct sharing to specific domains", + "label": "Restrict sharing to specific domains", "value": "allowList" }, { @@ -2343,9 +2487,10 @@ ] }, { - "type": "input", + "type": "textField", "name": "standards.sharingDomainRestriction.Domains", - "label": "Domains to allow/block, comma separated" + "label": "Domains to allow/block, comma separated", + "required": false } ], "label": "Restrict sharing to a specific domain", @@ -2361,10 +2506,11 @@ "helpText": "Defines the CIS recommended global meeting policy for Teams. This includes AllowAnonymousUsersToJoinMeeting, AllowAnonymousUsersToStartMeeting, AutoAdmittedUsers, AllowPSTNUsersToBypassLobby, MeetingChatEnabledType, DesignatedPresenterRoleMode, AllowExternalParticipantGiveRequestControl", "addedComponent": [ { - "type": "Select", + "type": "autoComplete", + "multiple": false, "name": "standards.TeamsGlobalMeetingPolicy.DesignatedPresenterRoleMode", "label": "Default value of the `Who can present?`", - "values": [ + "options": [ { "label": "EveryoneUserOverride", "value": "EveryoneUserOverride" @@ -2382,6 +2528,31 @@ "value": "OrganizerOnlyUserOverride" } ] + }, + { + "type": "switch", + "name": "standards.TeamsGlobalMeetingPolicy.AllowAnonymousUsersToJoinMeeting", + "label": "Allow anonymous users to join meeting" + }, + { + "type": "autoComplete", + "multiple": false, + "name": "standards.TeamsGlobalMeetingPolicy.MeetingChatEnabledType", + "label": "Meeting chat policy", + "options": [ + { + "label": "On for everyone", + "value": "Enabled" + }, + { + "label": "On for everyone but anonymous users", + "value": "EnabledExceptAnonymous" + }, + { + "label": "Off for everyone", + "value": "Disabled" + } + ] } ], "label": "Define Global Meeting Policy for Teams", @@ -2398,7 +2569,7 @@ "docsDescription": "Teams channel email addresses are an optional feature that allows users to email the Teams channel directly.", "addedComponent": [ { - "type": "boolean", + "type": "switch", "name": "standards.TeamsEmailIntegration.AllowEmailIntoChannel", "label": "Allow channel emails" } @@ -2416,27 +2587,27 @@ "helpText": "Ensure external file sharing in Teams is enabled for only approved cloud storage services.", "addedComponent": [ { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalFileSharing.AllowGoogleDrive", "label": "Allow Google Drive" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalFileSharing.AllowShareFile", "label": "Allow ShareFile" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalFileSharing.AllowBox", "label": "Allow Box" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalFileSharing.AllowDropBox", "label": "Allow Dropbox" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalFileSharing.AllowEgnyte", "label": "Allow Egnyte" } @@ -2447,6 +2618,35 @@ "powershellEquivalent": "Set-CsTeamsClientConfiguration -AllowGoogleDrive $false -AllowShareFile $false -AllowBox $false -AllowDropBox $false -AllowEgnyte $false", "recommendedBy": ["CIS 3.0"] }, + { + "name": "standards.TeamsEnrollUser", + "cat": "Teams Standards", + "tag": ["lowimpact"], + "helpText": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", + "docsDescription": "Controls whether users with this policy can set the voice profile capture and enrollment through the Recognition tab in their Teams client settings.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "standards.TeamsEnrollUser.EnrollUserOverride", + "label": "Voice and Face Enrollment", + "options": [ + { + "label": "Disabled", + "value": "Disabled" + }, + { + "label": "Enabled", + "value": "Enabled" + } + ] + } + ], + "label": "Default voice and face enrollment", + "impact": "Low Impact", + "impactColour": "info", + "powershellEquivalent": "Set-CsTeamsMeetingPolicy -Identity Global -EnrollUserOverride $false", + "recommendedBy": [] + }, { "name": "standards.TeamsExternalAccessPolicy", "cat": "Teams Standards", @@ -2455,17 +2655,17 @@ "docsDescription": "Sets the properties of the Global external access policy. External access policies determine whether or not your users can: 1) communicate with users who have Session Initiation Protocol (SIP) accounts with a federated organization; 2) communicate with users who are using custom applications built with Azure Communication Services; 3) access Skype for Business Server over the Internet, without having to log on to your internal network; 4) communicate with users who have SIP accounts with a public instant messaging (IM) provider such as Skype; and, 5) communicate with people who are using Teams with an account that's not managed by an organization.", "addedComponent": [ { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalAccessPolicy.EnableFederationAccess", "label": "Allow communication from trusted organizations" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalAccessPolicy.EnablePublicCloudAccess", "label": "Allow user to communicate with Skype users" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsExternalAccessPolicy.EnableTeamsConsumerAccess", "label": "Allow communication with unmanaged Teams accounts" } @@ -2484,20 +2684,21 @@ "docsDescription": "Sets the properties of the Global federation configuration. Federation configuration settings determine whether or not your users can communicate with users who have SIP accounts with a federated organization.", "addedComponent": [ { - "type": "boolean", + "type": "switch", "name": "standards.TeamsFederationConfiguration.AllowTeamsConsumer", "label": "Allow users to communicate with other organizations" }, { - "type": "boolean", + "type": "switch", "name": "standards.TeamsFederationConfiguration.AllowPublicUsers", "label": "Allow users to communicate with Skype Users" }, { - "type": "Select", + "type": "autoComplete", + "multiple": false, "name": "standards.TeamsFederationConfiguration.DomainControl", "label": "Communication Mode", - "values": [ + "options": [ { "label": "Allow all external domains", "value": "AllowAllExternal" @@ -2517,9 +2718,10 @@ ] }, { - "type": "input", + "type": "textField", "name": "standards.TeamsFederationConfiguration.DomainList", - "label": "Domains, Comma separated" + "label": "Domains, Comma separated", + "required": false } ], "label": "Federation Configuration for Microsoft Teams", @@ -2527,5 +2729,414 @@ "impactColour": "warning", "powershellEquivalent": "Set-CsTenantFederationConfiguration", "recommendedBy": [] + }, + { + "name": "standards.TeamsMessagingPolicy", + "cat": "Teams Standards", + "tag": ["mediumimpact"], + "helpText": "Sets the properties of the Global messaging policy.", + "docsDescription": "Sets the properties of the Global messaging policy. Messaging policies control which chat and channel messaging features are available to users in Teams.", + "addedComponent": [ + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowOwnerDeleteMessage", + "label": "Allow Owner to Delete Messages", + "default": false + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserDeleteMessage", + "label": "Allow User to Delete Messages", + "default": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserEditMessage", + "label": "Allow User to Edit Messages", + "default": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowUserDeleteChat", + "label": "Allow User to Delete Chats", + "default": true + }, + { + "type": "autoComplete", + "multiple": false, + "name": "standards.TeamsMessagingPolicy.ReadReceiptsEnabledType", + "label": "Read Receipts Enabled Type", + "options": [ + { + "label": "User controlled", + "value": "UserPreference" + }, + { + "label": "Turned on for everyone", + "value": "Everyone" + }, + { + "label": "Turned off for everyone", + "value": "None" + } + ] + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.CreateCustomEmojis", + "label": "Allow Creating Custom Emojis", + "default": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.DeleteCustomEmojis", + "label": "Allow Deleting Custom Emojis", + "default": false + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowSecurityEndUserReporting", + "label": "Allow reporting message as security concern", + "default": true + }, + { + "type": "switch", + "name": "standards.TeamsMessagingPolicy.AllowCommunicationComplianceEndUserReporting", + "label": "Allow reporting message as inappropriate content", + "default": true + } + ], + "label": "Global Messaging Policy for Microsoft Teams", + "impact": "Medium Impact", + "impactColour": "warning", + "powershellEquivalent": "Set-CsTeamsMessagingPolicy", + "recommendedBy": [] + }, + { + "name": "standards.AutopilotStatusPage", + "cat": "Device Management Standards", + "tag": ["lowimpact"], + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "helpText": "Deploy the Autopilot Status Page, which shows progress during device setup through Autopilot.", + "docsDescription": "This standard allows configuration of the Autopilot Status Page, providing users with a visual representation of the progress during device setup. It includes options like timeout, logging, and retry settings.", + "addedComponent": [ + { + "type": "number", + "name": "standards.AutopilotStatusPage.TimeOutInMinutes", + "label": "Timeout in minutes", + "default": 60 + }, + { + "type": "textField", + "name": "standards.AutopilotStatusPage.ErrorMessage", + "label": "Custom Error Message" + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.ShowProgress", + "label": "Show progress to users", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.EnableLog", + "label": "Turn on log collection", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.OBEEOnly", + "label": "Show status page only with OOBE setup", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.BlockDevice", + "label": "Block device usage during setup", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowRetry", + "label": "Allow retry", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowReset", + "label": "Allow reset", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotStatusPage.AllowFail", + "label": "Allow users to use device if setup fails", + "default": true + } + ], + "label": "Enable Autopilot Status Page", + "impact": "Low Impact", + "impactColour": "info", + "recommendedBy": [] + }, + { + "name": "standards.AutopilotProfile", + "cat": "Device Management Standards", + "tag": ["lowimpact"], + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "helpText": "Assign the appropriate Autopilot profile to streamline device deployment.", + "docsDescription": "This standard allows the deployment of Autopilot profiles to devices, including settings such as unique name templates, language options, and local admin privileges.", + "addedComponent": [ + { + "type": "textField", + "name": "standards.AutopilotProfile.DisplayName", + "label": "Profile Display Name" + }, + { + "type": "textField", + "name": "standards.AutopilotProfile.Description", + "label": "Profile Description" + }, + { + "type": "textField", + "name": "standards.AutopilotProfile.DeviceNameTemplate", + "label": "Unique Device Name Template" + }, + { + "type": "autoComplete", + "multiple": false, + "name": "standards.AutopilotProfile.Languages", + "label": "Languages", + "api": { + "url": "/languageList.json", + "labelField": "language", + "valueField": "tag" + } + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.CollectHash", + "label": "Convert all targeted devices to Autopilot", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AssignToAllDevices", + "label": "Assign to all devices", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.SelfDeployingMode", + "label": "Enable Self-deploying Mode", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HideTerms", + "label": "Hide Terms and Conditions", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HidePrivacy", + "label": "Hide Privacy Settings", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.HideChangeAccount", + "label": "Hide Change Account Options", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.NotLocalAdmin", + "label": "Setup user as a standard user (not local admin)", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AllowWhiteGlove", + "label": "Allow White Glove OOBE", + "default": true + }, + { + "type": "switch", + "name": "standards.AutopilotProfile.AutoKeyboard", + "label": "Automatically configure keyboard", + "default": true + } + ], + "label": "Enable Autopilot Profile", + "impact": "Low Impact", + "impactColour": "info", + "recommendedBy": [] + }, + { + "name": "standards.IntuneTemplate", + "cat": "Templates", + "label": "Intune Template", + "multiple": true, + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "High", + "helpText": "Deploy and manage Intune templates across devices.", + "addedComponent": [ + { + "type": "autoComplete", + "multiple": false, + "name": "TemplateList", + "label": "Select Intune Template", + "api": { + "url": "/api/ListIntuneTemplates", + "labelField": "Displayname", + "valueField": "GUID", + "queryKey": "languages" + } + }, + { + "name": "AssignTo", + "label": "Who should this template be assigned to?", + "type": "radio", + "options": [ + { "label": "Do not assign", "value": "On" }, + { "label": "Assign to all users", "value": "allLicensedUsers" }, + { "label": "Assign to all devices", "value": "AllDevices" }, + { "label": "Assign to all users and devices", "value": "AllDevicesAndUsers" }, + { "label": "Assign to Custom Group", "value": "customGroup" } + ] + }, + { + "type": "textField", + "required": false, + "name": "customGroup", + "label": "Enter the custom group name if you selected 'Assign to Custom Group'. Wildcards are allowed." + } + ] + }, + { + "name": "standards.TransportRuleTemplate", + "label": "Transport Rule Template", + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium", + "helpText": "Deploy transport rules to manage email flow.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "transportRuleTemplate", + "label": "Select Transport Rule Template", + "api": { + "url": "/api/ListTransportRulesTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "ListTransportRulesTemplates" + } + } + ] + }, + { + "name": "standards.ConditionalAccessTemplate", + "label": "Conditional Access Template", + "cat": "Templates", + "multiple": true, + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "High", + "helpText": "Manage conditional access policies for better security.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "TemplateList", + "multiple": false, + "label": "Select Conditional Access Template", + "api": { + "url": "/api/ListCATemplates", + "labelField": "displayName", + "valueField": "GUID", + "queryKey": "ListCATemplates" + } + }, + { + "name": "state", + "label": "What state should we deploy this template in?", + "type": "radio", + "options": [ + { "value": "donotchange", "label": "Do not change state" }, + { "value": "Enabled", "label": "Set to enabled" }, + { "value": "Disabled", "label": "Set to disabled" }, + { "value": "enabledForReportingButNotEnforced", "label": "Set to report only" } + ] + } + ] + }, + { + "name": "standards.ExchangeConnectorTemplate", + "label": "Exchange Connector Template", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium", + "helpText": "Deploy and manage Exchange connectors.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "exConnectorTemplate", + "label": "Select Exchange Connector Template", + "api": { + "url": "/api/ListExConnectorTemplates", + "labelField": "name", + "valueField": "GUID", + "queryKey": "ListExConnectorTemplates" + } + } + ] + }, + { + "name": "standards.GroupTemplate", + "label": "Group Template", + "multi": true, + "cat": "Templates", + "disabledFeatures": { + "report": true, + "warn": true, + "remediate": false + }, + "impact": "Medium", + "helpText": "Deploy and manage group templates.", + "addedComponent": [ + { + "type": "autoComplete", + "name": "groupTemplate", + "label": "Select Group Template", + "api": { + "url": "/api/ListGroupTemplates", + "labelField": "Displayname", + "valueField": "GUID", + "queryKey": "ListGroupTemplates" + } + } + ] } ] diff --git a/src/store/api/app.js b/src/store/api/app.js deleted file mode 100644 index 3eaa06328f84..000000000000 --- a/src/store/api/app.js +++ /dev/null @@ -1,142 +0,0 @@ -import { baseApi } from 'src/store/api/baseApi' - -export const appApi = baseApi.injectEndpoints({ - endpoints: (builder) => ({ - loadVersions: builder.query({ - queryFn: (_args, _baseQueryApi, _options, baseQuery) => - baseQuery({ path: '/version_latest.txt' }).then(({ data }) => - baseQuery({ - path: '/api/GetVersion', - params: { localversion: data.replace(/(\r\n|\n|\r)/gm, '') }, - }), - ), - }), - loadVersionLocal: builder.query({ - query: () => ({ path: '/version_latest.txt' }), - }), - loadVersionRemote: builder.query({ - query: (localVersion) => ({ - path: '/api/GetVersion', - params: { localversion: localVersion }, - }), - }), - loadAlertsDash: builder.query({ - queryFn: (_args, _baseQueryApi, _options, baseQuery) => - baseQuery({ path: '/version_latest.txt' }).then(({ data }) => - baseQuery({ - path: '/api/GetCippAlerts', - params: { localversion: data.replace(/(\r\n|\n|\r)/gm, '') }, - }), - ), - }), - loadDash: builder.query({ - query: (localVersion) => ({ - path: '/api/GetDashboard', - }), - }), - execPermissionsAccessCheck: builder.query({ - query: () => ({ - path: '/api/ExecAccessChecks', - params: { - Permissions: true, - }, - }), - }), - execNotificationConfig: builder.query({ - query: ({ - email, - webhook, - tokenUpdater, - removeUser, - removeStandard, - addPolicy, - addUser, - addStandardsDeploy, - addChocoApp, - onePerTenant, - sendtoIntegration, - includeTenantId, - logsToInclude, - Severity, - }) => ({ - path: '/api/ExecNotificationConfig', - data: { - email: email, - webhook: webhook, - tokenUpdater: tokenUpdater, - removeUser: removeUser, - removeStandard: removeStandard, - addPolicy: addPolicy, - addUser: addUser, - addStandardsDeploy: addStandardsDeploy, - addChocoApp: addChocoApp, - onePerTenant: onePerTenant, - logsToInclude: logsToInclude, - Severity: Severity, - sendtoIntegration: sendtoIntegration, - includeTenantId: includeTenantId, - }, - method: 'post', - }), - }), - execTenantsAccessCheck: builder.query({ - query: ({ tenantDomains }) => ({ - path: '/api/ExecAccessChecks', - params: { - Tenants: true, - }, - data: { - tenantid: tenantDomains.join(','), - }, - method: 'post', - }), - }), - execClearCache: builder.query({ - query: ({ tenantsOnly }) => ({ - path: '/api/ListTenants', - params: { - ClearCache: true, - TenantsOnly: tenantsOnly, - }, - }), - }), - listNotificationConfig: builder.query({ - query: () => ({ - path: '/api/listNotificationConfig', - }), - }), - genericPostRequest: builder.query({ - query: ({ path, values }) => ({ - path, - data: values, - method: 'post', - }), - }), - genericGetRequest: builder.query({ - query: ({ path, params }) => ({ - path, - params: params, - method: 'GET', - }), - }), - }), -}) - -export const { - useLoadVersionLocalQuery, - useLoadVersionRemoteQuery, - useLoadVersionsQuery, - useLoadDashQuery, - useLoadAlertsDashQuery, - useExecPermissionsAccessCheckQuery, - useLazyExecPermissionsAccessCheckQuery, - useExecTenantsAccessCheckQuery, - useLazyExecTenantsAccessCheckQuery, - useExecClearCacheQuery, - useLazyExecClearCacheQuery, - useLazyExecNotificationConfigQuery, - useLazyListNotificationConfigQuery, - useLazyGenericPostRequestQuery, - useLazyGenericGetRequestQuery, - useGenericGetRequestQuery, -} = appApi diff --git a/src/store/api/reports.js b/src/store/api/reports.js deleted file mode 100644 index 83be1b4fa361..000000000000 --- a/src/store/api/reports.js +++ /dev/null @@ -1,21 +0,0 @@ -import { baseApi } from 'src/store/api/baseApi' - -export const reportsApi = baseApi.injectEndpoints({ - endpoints: (builder) => ({ - listBestPracticeAnalyser: builder.query({ - query: () => ({ path: '/api/BestPracticeAnalyser_List' }), - }), - execBestPracticeAnalyser: builder.mutation({ - query: () => ({ path: '/api/BestPracticeAnalyser_OrchestrationStarter' }), - }), - execDomainsAnalyser: builder.mutation({ - query: () => ({ path: '/api/DomainAnalyser_OrchestrationStarter' }), - }), - }), -}) - -export const { - useListBestPracticeAnalyserQuery, - useExecBestPracticeAnalyserMutation, - useExecDomainsAnalyserMutation, -} = reportsApi diff --git a/src/store/api/users.js b/src/store/api/users.js deleted file mode 100644 index 7ef16f12fdb3..000000000000 --- a/src/store/api/users.js +++ /dev/null @@ -1,131 +0,0 @@ -import { baseApi } from 'src/store/api/baseApi' - -export const usersApi = baseApi.injectEndpoints({ - endpoints: (builder) => ({ - editUser: builder.mutation({ - query: (user) => ({ - path: '/api/EditUser', - method: 'post', - data: user, - }), - }), - listUsers: builder.query({ - query: ({ tenantDomain }) => ({ - path: '/api/ListUsers', - params: { - TenantFilter: tenantDomain, - }, - }), - }), - listContacts: builder.query({ - query: ({ tenantDomain, ContactID }) => ({ - path: '/api/ListContacts', - params: { - TenantFilter: tenantDomain, - ContactID, - }, - }), - }), - listUser: builder.query({ - query: ({ tenantDomain, userId, IncludeLogonDetails }) => ({ - path: '/api/ListUsers', - params: { userId, TenantFilter: tenantDomain, IncludeLogonDetails }, - }), - transformResponse: (response) => { - if (response?.length > 0) { - return response[0] - } - return {} - }, - }), - listUserConditionalAccessPolicies: builder.query({ - query: ({ tenantDomain, userId }) => ({ - path: '/api/ListUserConditionalAccessPolicies', - params: { userId, tenantFilter: tenantDomain }, - }), - }), - listUserSigninLogs: builder.query({ - query: ({ tenantDomain, userId }) => ({ - path: '/api/ListUserSigninLogs', - params: { userId, tenantFilter: tenantDomain }, - }), - }), - addUser: builder.mutation({ - query: ({ user }) => ({ - path: '/api/AddUser', - data: user, - }), - }), - execBecCheck: builder.query({ - queryFn: async (_args, _baseQueryApi, _options, baseQuery) => { - const startRequest = await baseQuery({ - path: '/api/execBECCheck', - params: { - userId: _args.userId, - tenantFilter: _args.tenantFilter, - userName: _args.userName, - }, - }) - if (startRequest.error) { - return { error: startRequest.error } - } - - const GUID = startRequest.data?.GUID - - return new Promise((resolve) => { - let retries = 0 - const interval = setInterval(async () => { - const { data, error } = await baseQuery({ - path: '/api/execBECCheck', - params: { GUID }, - }) - if (error) { - clearInterval(interval) - resolve({ error }) - } - if (data.Results) { - clearInterval(interval) - resolve({ - error: { - message: `Error: ${data.Results}`, - status: 503, - data: 'Request failed.', - }, - }) - } - if (!data['Waiting'] === true) { - if (!Array.isArray(data['MSResults'])) { - data['MSResults'] = [] - } - clearInterval(interval) - resolve({ data }) - } - if (retries >= 60) { - clearInterval(interval) - resolve({ - error: { - message: 'Failed to retrieve data in 5 minutes', - status: 503, - data: 'Request failed with status 503', - }, - }) - } - retries++ - }, 5000) - }) - }, - }), - }), -}) - -export const { - useEditUserMutation, - useListUsersQuery, - useListUserQuery, - useListContactsQuery, - useListUserConditionalAccessPoliciesQuery, - useListUserSigninLogsQuery, - useAddUserMutation, - useLazyExecBecCheckQuery, -} = usersApi -export default usersApi diff --git a/src/views/cipp/app-settings/SettingsExtensionMappings.jsx b/src/views/cipp/app-settings/SettingsExtensionMappings.jsx deleted file mode 100644 index 6d7a63d2a3d0..000000000000 --- a/src/views/cipp/app-settings/SettingsExtensionMappings.jsx +++ /dev/null @@ -1,651 +0,0 @@ -import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app.js' -import { - CAccordion, - CButton, - CCallout, - CCardText, - CCol, - CForm, - CRow, - CSpinner, - CTooltip, -} from '@coreui/react' -import { Form } from 'react-final-form' -import { RFFSelectSearch } from 'src/components/forms/index.js' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' -import React, { useEffect } from 'react' -import { CippCallout } from 'src/components/layout/index.js' -import CippAccordionItem from 'src/components/contentcards/CippAccordionItem' -import { CippTable } from 'src/components/tables' -import { CellTip } from 'src/components/tables/CellGenericFormat' -import CippButtonCard from 'src/components/contentcards/CippButtonCard' - -/** - * Retrieves and sets the extension mappings for HaloPSA and NinjaOne. - * - * @returns {JSX.Element} - JSX component representing the settings extension mappings. - */ -export function SettingsExtensionMappings({ type }) { - const [addedAttributes, setAddedAttribute] = React.useState(1) - const [mappingArray, setMappingArray] = React.useState('defaultMapping') - const [mappingValue, setMappingValue] = React.useState({}) - const [haloMappingsArray, setHaloMappingsArray] = React.useState([]) - const [ninjaMappingsArray, setNinjaMappingsArray] = React.useState([]) - const [HaloAutoMap, setHaloAutoMap] = React.useState(false) - const [listHaloBackend, listBackendHaloResult = []] = useLazyGenericGetRequestQuery() - const [listNinjaOrgsBackend, listBackendNinjaOrgsResult] = useLazyGenericGetRequestQuery() - const [listNinjaFieldsBackend, listBackendNinjaFieldsResult] = useLazyGenericGetRequestQuery() - const [setHaloExtensionconfig, extensionHaloConfigResult = []] = useLazyGenericPostRequestQuery() - const [setNinjaOrgsExtensionconfig, extensionNinjaOrgsConfigResult] = - useLazyGenericPostRequestQuery() - const [setNinjaOrgsExtensionAutomap, extensionNinjaOrgsAutomapResult] = - useLazyGenericPostRequestQuery() - const [setNinjaFieldsExtensionconfig, extensionNinjaFieldsConfigResult] = - useLazyGenericPostRequestQuery() - - const onHaloSubmit = () => { - const originalFormat = haloMappingsArray.reduce((acc, item) => { - acc[item.Tenant?.customerId] = { label: item.haloName, value: item.haloId } - return acc - }, {}) - setHaloExtensionconfig({ - path: 'api/ExecExtensionMapping?AddMapping=Halo', - values: { mappings: originalFormat }, - }).then(() => { - listHaloBackend({ path: 'api/ExecExtensionMapping?List=Halo' }) - setMappingValue({}) - }) - } - const onNinjaOrgsSubmit = () => { - const originalFormat = ninjaMappingsArray.reduce((acc, item) => { - acc[item.Tenant?.customerId] = { label: item.ninjaName, value: item.ninjaId } - return acc - }, {}) - - setNinjaOrgsExtensionconfig({ - path: 'api/ExecExtensionMapping?AddMapping=NinjaOrgs', - values: { mappings: originalFormat }, - }).then(() => { - listNinjaOrgsBackend({ path: 'api/ExecExtensionMapping?List=NinjaOrgs' }) - setMappingValue({}) - }) - } - - const onNinjaOrgsAutomap = async (values) => { - await setNinjaOrgsExtensionAutomap({ - path: 'api/ExecExtensionMapping?AutoMapping=NinjaOrgs', - values: { mappings: values }, - }) - await listNinjaOrgsBackend({ - path: 'api/ExecExtensionMapping?List=NinjaOrgs', - }) - } - - const onNinjaFieldsSubmit = (values) => { - setNinjaFieldsExtensionconfig({ - path: 'api/ExecExtensionMapping?AddMapping=NinjaFields', - values: { mappings: values }, - }) - } - - const onHaloAutomap = () => { - const newMappings = listBackendHaloResult.data?.Tenants.map( - (tenant) => { - const haloClient = listBackendHaloResult.data?.HaloClients.find( - (client) => client.name === tenant.displayName, - ) - if (haloClient) { - console.log(haloClient) - console.log(tenant) - return { - Tenant: tenant, - haloName: haloClient.name, - haloId: haloClient.value, - } - } - }, - //filter out any undefined values - ).filter((item) => item !== undefined) - setHaloMappingsArray((currentHaloMappings) => [...currentHaloMappings, ...newMappings]).then( - () => { - listHaloBackend({ path: 'api/ExecExtensionMapping?List=Halo' }) - }, - ) - setHaloAutoMap(true) - } - - useEffect(() => { - if (listBackendHaloResult.isSuccess) { - setHaloMappingsArray( - Object.keys(listBackendHaloResult.data?.Mappings).map((key) => ({ - Tenant: listBackendHaloResult.data?.Tenants.find((tenant) => tenant.customerId === key), - haloName: listBackendHaloResult.data?.Mappings[key].label, - haloId: listBackendHaloResult.data?.Mappings[key].value, - })), - ) - } - }, [listBackendHaloResult.isSuccess]) - - useEffect(() => { - if (listBackendNinjaOrgsResult.isSuccess) { - setNinjaMappingsArray( - Object.keys(listBackendNinjaOrgsResult.data?.Mappings).map((key) => ({ - Tenant: listBackendNinjaOrgsResult.data?.Tenants.find( - (tenant) => tenant.customerId === key, - ), - ninjaName: listBackendNinjaOrgsResult.data?.Mappings[key].label, - ninjaId: listBackendNinjaOrgsResult.data?.Mappings[key].value, - })), - ) - } - }, [ - listBackendNinjaOrgsResult.data?.Mappings, - listBackendNinjaOrgsResult.data?.Tenants, - listBackendNinjaOrgsResult.isSuccess, - ]) - - const Offcanvas = (row, rowIndex, formatExtraData) => { - return ( - <> - - - row.haloId - ? setHaloMappingsArray((currentHaloMappings) => - currentHaloMappings.filter((item) => item !== row), - ) - : setNinjaMappingsArray((currentNinjaMappings) => - currentNinjaMappings.filter((item) => item !== row), - ) - } - > - - - - - ) - } - const halocolumns = [ - { - name: 'Tenant', - selector: (row) => row.Tenant?.displayName, - sortable: true, - cell: (row) => CellTip(row.Tenant?.displayName), - exportSelector: 'Tenant', - }, - { - name: 'TenantId', - selector: (row) => row.Tenant?.customerId, - sortable: true, - exportSelector: 'Tenant/customerId', - omit: true, - }, - { - name: 'Halo Client Name', - selector: (row) => row['haloName'], - sortable: true, - cell: (row) => CellTip(row['haloName']), - exportSelector: 'haloName', - }, - { - name: 'Halo ID', - selector: (row) => row['haloId'], - sortable: true, - cell: (row) => CellTip(row['haloId']), - exportSelector: 'haloId', - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '80px', - }, - ] - - const ninjacolumns = [ - { - name: 'Tenant', - selector: (row) => row.Tenant?.displayName, - sortable: true, - cell: (row) => CellTip(row.Tenant?.displayName), - exportSelector: 'Tenant', - }, - { - name: 'TenantId', - selector: (row) => row.Tenant?.customerId, - sortable: true, - exportSelector: 'Tenant/customerId', - omit: true, - }, - { - name: 'NinjaOne Organization Name', - selector: (row) => row['ninjaName'], - sortable: true, - cell: (row) => CellTip(row['ninjaName']), - exportSelector: 'ninjaName', - }, - { - name: 'NinjaOne Organization ID', - selector: (row) => row['ninjaId'], - sortable: true, - cell: (row) => CellTip(row['ninjaId']), - exportSelector: 'ninjaId', - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '80px', - }, - ] - - return ( - - {type === 'HaloPSA' && ( - <> - {listBackendHaloResult.isUninitialized && - listHaloBackend({ path: 'api/ExecExtensionMapping?List=Halo' })} - - - - {extensionHaloConfigResult.isFetching && ( - - )} - Save Mappings - - onHaloAutomap()} className="me-2"> - {extensionNinjaOrgsAutomapResult.isFetching && ( - - )} - Automap HaloPSA Clients - - - } - > - {listBackendHaloResult.isFetching && listBackendHaloResult.isUninitialized ? ( - - ) : ( -
{ - return ( - - - Use the table below to map your client to the correct PSA client. - { - //load all the existing mappings and show them first in a table. - listBackendHaloResult.isSuccess && ( - - ) - } - - - { - return !Object.keys(listBackendHaloResult.data?.Mappings).includes( - tenant.customerId, - ) - }).map((tenant) => ({ - name: tenant.displayName, - value: tenant.customerId, - }))} - onChange={(e) => { - setMappingArray(e.value) - }} - isLoading={listBackendHaloResult.isFetching} - /> - - - - - - { - return !Object.values(listBackendHaloResult.data?.Mappings) - .map((value) => { - return value.value - }) - .includes(client.value) - }).map((client) => ({ - name: client.name, - value: client.value, - }))} - onChange={(e) => setMappingValue(e)} - placeholder="Select a HaloPSA Client" - isLoading={listBackendHaloResult.isFetching} - /> - - { - if ( - mappingValue.value !== undefined && - mappingValue.value !== '-1' && - Object.values(haloMappingsArray) - .map((item) => item.haloId) - .includes(mappingValue.value) === false - ) { - //set the new mapping in the array - setHaloMappingsArray([ - ...haloMappingsArray, - { - Tenant: listBackendHaloResult.data?.Tenants.find( - (tenant) => tenant.customerId === mappingArray, - ), - haloName: mappingValue.label, - haloId: mappingValue.value, - }, - ]) - } - }} - className={`my-4 circular-button`} - title={'+'} - > - - - - - - {HaloAutoMap && ( - - Automapping has been executed. Remember to check the changes and save - them. - - )} - {(extensionHaloConfigResult.isSuccess || - extensionHaloConfigResult.isError) && - !extensionHaloConfigResult.isFetching && ( - - {extensionHaloConfigResult.isSuccess - ? extensionHaloConfigResult.data.Results - : 'Error'} - - )} - - - - After editing the mappings you must click Save Mappings for the changes to - take effect. The table will be saved exactly as presented. - - - ) - }} - /> - )} - - - )} - {type === 'NinjaOne' && ( - <> - {listBackendNinjaOrgsResult.isUninitialized && - listNinjaOrgsBackend({ path: 'api/ExecExtensionMapping?List=NinjaOrgs' })} - {listBackendNinjaFieldsResult.isUninitialized && - listNinjaFieldsBackend({ path: 'api/ExecExtensionMapping?List=NinjaFields' })} - - - {extensionNinjaOrgsConfigResult.isFetching && ( - - )} - Set Mappings - - onNinjaOrgsAutomap()} className="me-2"> - {extensionNinjaOrgsAutomapResult.isFetching && ( - - )} - Automap NinjaOne Organizations - - - } - > - {listBackendNinjaOrgsResult.isFetching && listBackendNinjaOrgsResult.isUninitialized ? ( - - ) : ( - { - return ( - - - Use the table below to map your client to the correct NinjaOne Organization. - { - //load all the existing mappings and show them first in a table. - listBackendNinjaOrgsResult.isSuccess && ( - - ) - } - - - { - return !Object.keys( - listBackendNinjaOrgsResult.data?.Mappings, - ).includes(tenant.customerId) - }).map((tenant) => ({ - name: tenant.displayName, - value: tenant.customerId, - }))} - onChange={(e) => { - setMappingArray(e.value) - }} - isLoading={listBackendNinjaOrgsResult.isFetching} - /> - - - - - - { - return !Object.values(listBackendNinjaOrgsResult.data?.Mappings) - .map((value) => { - return value.value - }) - .includes(client.value.toString()) - }, - ).map((client) => ({ - name: client.name, - value: client.value, - }))} - onChange={(e) => setMappingValue(e)} - placeholder="Select a NinjaOne Organization" - isLoading={listBackendNinjaOrgsResult.isFetching} - /> - - { - //set the new mapping in the array - if ( - mappingValue.value !== undefined && - mappingValue.value !== '-1' && - Object.values(ninjaMappingsArray) - .map((item) => item.ninjaId) - .includes(mappingValue.value) === false - ) { - setNinjaMappingsArray([ - ...ninjaMappingsArray, - { - Tenant: listBackendNinjaOrgsResult.data?.Tenants.find( - (tenant) => tenant.customerId === mappingArray, - ), - ninjaName: mappingValue.label, - ninjaId: mappingValue.value, - }, - ]) - } - }} - className={`my-4 circular-button`} - title={'+'} - > - - - - - - {(extensionNinjaOrgsAutomapResult.isSuccess || - extensionNinjaOrgsAutomapResult.isError) && - !extensionNinjaOrgsAutomapResult.isFetching && ( - - {extensionNinjaOrgsAutomapResult.isSuccess - ? extensionNinjaOrgsAutomapResult.data.Results - : 'Error'} - - )} - {(extensionNinjaOrgsConfigResult.isSuccess || - extensionNinjaOrgsConfigResult.isError) && - !extensionNinjaOrgsConfigResult.isFetching && ( - - {extensionNinjaOrgsConfigResult.isSuccess - ? extensionNinjaOrgsConfigResult.data.Results - : 'Error'} - - )} - - - - After editing the mappings you must click Save Mappings for the changes to - take effect. The table will be saved exactly as presented. - - - ) - }} - /> - )} - - - )} - {type === 'NinjaOne' && ( - - {extensionNinjaFieldsConfigResult.isFetching && ( - - )} - Set Mappings - - } - > - {listBackendNinjaFieldsResult.isFetching ? ( - - ) : ( - { - return ( - - -
Organization Global Custom Field Mapping
-

- Use the table below to map your Organization Field to the correct NinjaOne - Field -

- {listBackendNinjaFieldsResult.isSuccess && - listBackendNinjaFieldsResult.data.CIPPOrgFields.map((CIPPOrgFields) => ( - item.type === CIPPOrgFields.Type || item.type === 'unset', - )} - placeholder="Select a Field" - /> - ))} -
- -
Device Custom Field Mapping
-

- Use the table below to map your Device field to the correct NinjaOne WYSIWYG - Field -

- {listBackendNinjaFieldsResult.isSuccess && - listBackendNinjaFieldsResult.data.CIPPNodeFields.map((CIPPNodeFields) => ( - item.type === CIPPNodeFields.Type || item.type === 'unset', - )} - placeholder="Select a Field" - /> - ))} -
- - {(extensionNinjaFieldsConfigResult.isSuccess || - extensionNinjaFieldsConfigResult.isError) && - !extensionNinjaFieldsConfigResult.isFetching && ( - - {extensionNinjaFieldsConfigResult.isSuccess - ? extensionNinjaFieldsConfigResult.data.Results - : 'Error'} - - )} - -
- ) - }} - /> - )} -
- )} - - ) -} diff --git a/src/views/email-exchange/administration/EditMailboxPermissions.jsx b/src/views/email-exchange/administration/EditMailboxPermissions.jsx deleted file mode 100644 index 3f16a1e389d9..000000000000 --- a/src/views/email-exchange/administration/EditMailboxPermissions.jsx +++ /dev/null @@ -1,1017 +0,0 @@ -import React, { useEffect, useRef, useState } from 'react' -import { - CButton, - CCallout, - CCard, - CCardBody, - CCardHeader, - CCardTitle, - CCol, - CNav, - CNavItem, - CTabContent, - CTabPane, - CForm, - CRow, - CSpinner, -} from '@coreui/react' -import useQuery from 'src/hooks/useQuery' -import { useDispatch } from 'react-redux' -import { Form, Field } from 'react-final-form' -import { RFFSelectSearch, RFFCFormCheck, RFFCFormInput, RFFCFormSwitch } from 'src/components/forms' -import { CippLazy, ModalService } from 'src/components/utilities' -import { - useLazyGenericPostRequestQuery, - useLazyGenericGetRequestQuery, - useGenericGetRequestQuery, -} from 'src/store/api/app' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' -import { useListMailboxDetailsQuery, useListMailboxPermissionsQuery } from 'src/store/api/mailbox' -import { CellBoolean, CippDatatable } from 'src/components/tables' -import DatePicker from 'react-datepicker' -import 'react-datepicker/dist/react-datepicker.css' -import PropTypes from 'prop-types' - -const formatter = (cell, warning = false, reverse = false, colourless = false) => - CellBoolean({ cell, warning, reverse, colourless }) - -const MailboxSettings = () => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - const [active, setActive] = useState(1) - const columnsCal = [ - { - name: 'User', - selector: (row) => row['User'], - sortable: true, - wrap: true, - cell: (row) => row['User'], - exportSelector: 'User', - maxWidth: '150px', - }, - { - name: 'AccessRights', - selector: (row) => row['AccessRights'], - sortable: true, - wrap: true, - cell: (row) => row['AccessRights'], - exportSelector: 'AccessRights', - maxWidth: '150px', - }, - { - name: 'Identity', - selector: (row) => row['Identity'], - sortable: true, - wrap: true, - cell: (row) => row['Identity'], - exportSelector: 'Identity', - maxWidth: '150px', - }, - ] - const columns = [ - { - name: 'User', - selector: (row) => row.User, - sortable: true, - wrap: true, - exportSelector: 'User', - }, - { - name: 'Permissions', - selector: (row) => row['Permissions'], - sortable: true, - wrap: true, - exportSelector: 'Permissions', - }, - ] - - return ( - - - - - - setActive(1)} href="#"> - Mailbox Permissions - - setActive(2)} href="#"> - Calendar Permissions - - setActive(3)} href="#"> - Mailbox Forwarding - - setActive(4)} href="#"> - Out Of Office - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Account Information - {userId} - - - {active === 1 && ( - - )} - {active === 2 && ( - - )} - {active === 3 && ( - <> - - - )} - {active === 4 && ( - <> - - - )} - - - - - ) -} - -export default MailboxSettings - -const MailboxPermissions = () => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - - const [queryError, setQueryError] = useState(false) - - //const [EditMailboxPermission, { error: EditMailboxPermissionError, isFetching: EditMailboxPermissionIsFetching }] = useEditMailboxPermissionMutation() - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - - const { - data: users = [], - isFetching: usersIsFetching, - error: usersError, - } = useGenericGetRequestQuery({ - path: '/api/ListGraphRequest', - params: { - Endpoint: 'users', - TenantFilter: tenantDomain, - $filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', - $count: true, - }, - }) - - useEffect(() => { - if (!userId || !tenantDomain) { - ModalService.open({ - body: 'Error invalid request, could not load requested user.', - title: 'Invalid Request', - }) - setQueryError(true) - } else { - setQueryError(false) - } - }, [userId, tenantDomain, dispatch, postResults]) - const onSubmit = (values) => { - const shippedValues = { - userid: userId, - tenantFilter: tenantDomain, - AddFullAccessNoAutoMap: values.AddFullAccessNoAutoMap ? values.AddFullAccessNoAutoMap : null, - AddFullAccess: values.AddFullAccess ? values.AddFullAccess : null, - RemoveFullAccess: values.RemoveFullAccess ? values.RemoveFullAccess : null, - AddSendAs: values.AddSendAs ? values.AddSendAs : null, - RemoveSendAs: values.RemoveSendAs ? values.RemoveSendAs : null, - AddSendOnBehalf: values.AddSendOnBehalf ? values.AddSendOnBehalf : null, - RemoveSendOnBehalf: values.RemoveSendOnBehalf ? values.RemoveSendOnBehalf : null, - } - //window.alert(JSON.stringify(shippedValues)) - genericPostRequest({ path: '/api/ExecEditMailboxPermissions', values: shippedValues }) - } - - const formDisabled = queryError === true - - return ( - <> - {!queryError && ( - <> - {queryError && ( - - - - {/* @todo add more descriptive help message here */} - Failed to load user - - - - )} - - {usersIsFetching && } - {!usersIsFetching && ( - { - return ( - - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveFullAccess" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddFullAccess" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddFullAccessNoAutoMap" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddSendAs" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveSendAs" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="AddSendOnBehalf" - /> - {usersError && Failed to load list of users} - - - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="RemoveSendOnBehalf" - /> - {usersError && Failed to load list of users} - - - - - - Edit User Permissions - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - - {postResults.data.Results.map((result, idx) => ( -
  • {result}
  • - ))} -
    - )} -
    - ) - }} - /> - )} -
    - - )} - - ) -} - -const CalendarPermissions = () => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - - const [queryError, setQueryError] = useState(false) - - const { - data: user = [], - isFetching: userIsFetching, - error: userError, - } = useGenericGetRequestQuery({ - path: '/api/ListCalendarPermissions', - params: { TenantFilter: tenantDomain, UserId: userId }, - }) - - const { - data: users = [], - isFetching: usersIsFetching, - error: usersError, - } = useGenericGetRequestQuery({ - path: '/api/ListMailboxes', - params: { TenantFilter: tenantDomain, SkipLicense: true }, - }) - - useEffect(() => { - if (!userId || !tenantDomain) { - ModalService.open({ - body: 'Error invalid request, could not load requested user.', - title: 'Invalid Request', - }) - setQueryError(true) - } else { - setQueryError(false) - } - }, [userId, tenantDomain, dispatch]) - const [genericPostRequest, postResults] = useLazyGenericGetRequestQuery() - const onSubmit = (values) => { - const shippedValues = { - FolderName: user[0].FolderName, - userid: userId, - tenantFilter: tenantDomain, - Permissions: values.Permissions ? values.Permissions.value : '', - UserToGetPermissions: values.UserToGetPermissions ? values.UserToGetPermissions.value : '', - RemoveAccess: values.RemoveAccess ? values.RemoveAccess.value : '', - } - //window.alert(JSON.stringify(shippedValues)) - genericPostRequest({ path: '/api/ExecEditCalendarPermissions', params: shippedValues }) - } - const initialState = {} - - // this is dumb - const formDisabled = queryError === true - - const UsersMapped = users?.map((user) => ({ - value: `${user.primarySmtpAddress}`, - name: `${user.displayName} - (${user.primarySmtpAddress})`, - })) - UsersMapped.unshift({ value: 'Default', name: 'Default' }) - - return ( - <> - {queryError && ( - - - - {/* @todo add more descriptive help message here */} - Failed to load user - - - - )} - {!queryError && ( - <> - - - {userIsFetching && } - {userError && Error loading user} - {!userIsFetching && ( - { - return ( - - - - - {usersError && Failed to load list of users} - - - - {usersError && Failed to load list of users} - - - - {usersError && Failed to load list of users} - - - - - - Edit Permissions - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - {postResults.data?.Results} - )} - - ) - }} - /> - )} - - - - )} - - ) -} - -const MailboxForwarding = () => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - - const [queryError, setQueryError] = useState(false) - - //const [EditMailboxPermission, { error: EditMailboxPermissionError, isFetching: EditMailboxPermissionIsFetching }] = useEditMailboxPermissionMutation() - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - - const { - data: user = {}, - isFetching: userIsFetching, - error: userError, - } = useListMailboxPermissionsQuery({ tenantDomain, userId }) - - const { - data: users = [], - isFetching: usersIsFetching, - error: usersError, - } = useGenericGetRequestQuery({ - path: '/api/ListGraphRequest', - params: { - Endpoint: 'users', - TenantFilter: tenantDomain, - $filter: "userType eq 'Member' and mail ge ' '", // filter out guests and users with no mailbox. #HACK "mail ne 'null'" does not work so this horrible hack is required - }, - }) - useEffect(() => { - if (postResults.isSuccess) { - // @TODO do something here? - } - if (!userId || !tenantDomain) { - ModalService.open({ - body: 'Error invalid request, could not load requested user.', - title: 'Invalid Request', - }) - setQueryError(true) - } else { - setQueryError(false) - } - }, [userId, tenantDomain, dispatch, postResults]) - const onSubmit = (values) => { - const shippedValues = { - userid: userId, - tenantFilter: tenantDomain, - ForwardInternal: values.ForwardInternal ? values.ForwardInternal : '', - ForwardExternal: values.ForwardExternal ? values.ForwardExternal : '', - KeepCopy: values.KeepCopy ? true : false, - disableForwarding: values.forwardOption === 'disabled', - } - //window.alert(JSON.stringify(shippedValues)) - genericPostRequest({ path: '/api/ExecEmailForward', values: shippedValues }) - } - const initialState = { - ...user, - } - - const formDisabled = queryError === true - - return ( - <> - {!queryError && ( - <> - {queryError && ( - - - - {/* @todo add more descriptive help message here */} - Failed to load user - - - - )} - - - {usersIsFetching && } - {userError && Error loading user} - {!usersIsFetching && ( - { - return ( - - - -
    - -
    - {values.forwardOption === 'internalAddress' && ( - ({ - value: user.mail, - name: `${user.displayName} - ${user.mail} `, - }))} - placeholder={!usersIsFetching ? 'Select user' : 'Loading...'} - name="ForwardInternal" - /> - )} - {usersError && Failed to load list of users} -
    -
    - - -
    - -
    - {values.forwardOption === 'ExternalAddress' && ( - - )} -
    -
    - - -
    - -
    -
    -
    - - - - - Edit Forwarding - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - - {postResults.data.Results.map((result, idx) => ( -
  • {result}
  • - ))} -
    - )} -
    - ) - }} - /> - )} -
    -
    - - )} - - ) -} - -const ForwardingSettings = () => { - const query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - const { data: details, isFetching, error } = useListMailboxDetailsQuery({ userId, tenantDomain }) - const content = [ - { - heading: 'Forward and Deliver', - body: formatter(details?.ForwardAndDeliver, false, false, true), - }, - { - heading: 'Forwarding Address', - body: details?.ForwardingAddress ? details?.ForwardingAddress : 'N/A', - }, - ] - - return ( - - {isFetching && } - {!isFetching && ( - - {content.map((item, index) => ( -
    -
    {item.heading}
    -

    {item.body}

    -
    - ))} -
    - )} -
    - ) -} - -const OutOfOffice = () => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - const [queryError, setQueryError] = useState(false) - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - const [startDate, setStartDate] = useState(new Date()) - const [endDate, setEndDate] = useState(new Date()) - const { - data: user = {}, - isFetching: userIsFetching, - error: userError, - } = useListMailboxPermissionsQuery({ tenantDomain, userId }) - - const { - data: users = [], - isFetching: usersIsFetching, - error: usersError, - } = useGenericGetRequestQuery({ - path: '/api/ListGraphRequest', - params: { - Endpoint: 'users', - TenantFilter: tenantDomain, - $filter: 'assignedLicenses/$count ne 0 and accountEnabled eq true', - $count: true, - }, - }) - useEffect(() => { - if (postResults.isSuccess) { - // @TODO do something here? - } - if (!userId || !tenantDomain) { - ModalService.open({ - body: 'Error invalid request, could not load requested user.', - title: 'Invalid Request', - }) - setQueryError(true) - } else { - setQueryError(false) - } - }, [userId, tenantDomain, dispatch, postResults]) - const onSubmit = (values) => { - const shippedValues = { - user: userId, - tenantFilter: tenantDomain, - AutoReplyState: values.AutoReplyState ? 'Scheduled' : 'Disabled', - StartTime: startDate.toUTCString(), - EndTime: endDate.toUTCString(), - InternalMessage: values.InternalMessage ? values.InternalMessage : '', - ExternalMessage: values.ExternalMessage ? values.ExternalMessage : '', - } - //window.alert(JSON.stringify(shippedValues)) - genericPostRequest({ path: '/api/ExecSetOoO', values: shippedValues }) - } - const initialState = { - ...user, - } - - const formDisabled = queryError === true - - return ( - <> - {!queryError && ( - <> - {queryError && ( - - - - {/* @todo add more descriptive help message here */} - Failed to load user - - - - )} - - - {usersIsFetching && } - {userError && Error loading user} - {!usersIsFetching && ( - { - return ( - - - - - - - - - - setStartDate(date)} - showTimeSelect - /> - - - - - - setEndDate(date)} - showTimeSelect - /> - - - - - - - - - - - - - - - - Edit Out of Office - {postResults.isFetching && ( - - )} - - - - {postResults.isSuccess && ( - {postResults.data?.Results} - )} - - ) - }} - /> - )} - - - - )} - - ) -} - -const OutOfOfficeSettings = () => { - const query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - const tenantFilter = tenantDomain - const { - data: details, - isFetching, - error, - } = useGenericGetRequestQuery({ - path: '/api/ListOoO', - params: { userId, tenantFilter }, - }) - const combinedRegex = /(<([^>]+)>)|| /gi - const content = [ - { - heading: 'Auto Reply State', - body: formatter(details?.AutoReplyState, false, false, true), - }, - { - heading: 'Start Date/Time', - body: details?.StartTime ? details?.StartTime : 'N/A', - }, - { - heading: 'End Date/Time', - body: details?.EndTime ? details?.EndTime : 'N/A', - }, - { - heading: 'Internal Message', - body: details?.InternalMessage ? details?.InternalMessage.replace(combinedRegex, '') : 'N/A', - }, - { - heading: 'External Message', - body: details?.ExternalMessage ? details?.ExternalMessage.replace(combinedRegex, '') : 'N/A', - }, - ] - return ( - - {isFetching && ( - - Loading - - )} - {!isFetching && ( - - {content.map((item, index) => ( -
    -
    {item.heading}
    -

    {item.body}

    -
    - ))} -
    - )} - {error && Could not connect to API: {error.message}} -
    - ) -} diff --git a/src/views/email-exchange/administration/MailboxRuleList.jsx b/src/views/email-exchange/administration/MailboxRuleList.jsx deleted file mode 100644 index 34f3798900d8..000000000000 --- a/src/views/email-exchange/administration/MailboxRuleList.jsx +++ /dev/null @@ -1,82 +0,0 @@ -import React from 'react' -import { useSelector } from 'react-redux' -import { CippPageList } from 'src/components/layout' -import { CellTip } from 'src/components/tables' -import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' - -const MailboxRuleList = () => { - const tenant = useSelector((state) => state.app.currentTenant) - - const columns = [ - { - selector: (row) => row?.Tenant, - name: 'Tenant', - sortable: true, - exportSelector: 'Tenant', - maxWidth: '150px', - cell: cellGenericFormatter(), - }, - { - selector: (row) => row?.UserPrincipalName, - name: 'User Principal Name', - sortable: true, - exportSelector: 'UserPrincipalName', - maxWidth: '200px', - cell: cellGenericFormatter(), - }, - { - selector: (row) => row?.Enabled, - name: 'Enabled', - sortable: true, - cell: cellGenericFormatter(), - exportSelector: 'Enabled', - maxWidth: '50px', - }, - { - selector: (row) => row?.Name, - name: 'Display Name', - sortable: true, - cell: cellGenericFormatter(), - maxWidth: '200px', - exportSelector: 'Name', - }, - { - selector: (row) => row?.Description, - name: 'Description', - sortable: true, - cell: cellGenericFormatter(), - exportSelector: 'Description', - }, - { - selector: (row) => row?.MailboxOwnerId, - name: 'Mailbox', - sortable: true, - exportSelector: 'MailboxOwnerId', - maxWidth: '150px', - cell: cellGenericFormatter(), - }, - { - selector: (row) => row?.ForwardTo, - name: 'Forwards To', - sortable: true, - exportSelector: 'ForwardTo', - cell: cellGenericFormatter(), - }, - ] - - return ( - - ) -} - -export default MailboxRuleList diff --git a/src/views/email-exchange/administration/QuarantineList.jsx b/src/views/email-exchange/administration/QuarantineList.jsx deleted file mode 100644 index 6c5de828afec..000000000000 --- a/src/views/email-exchange/administration/QuarantineList.jsx +++ /dev/null @@ -1,189 +0,0 @@ -import React, { useState } from 'react' -import { useSelector } from 'react-redux' -import { CippPageList } from 'src/components/layout' -import { CButton } from '@coreui/react' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faEllipsisV, faMinusCircle, faPaperPlane } from '@fortawesome/free-solid-svg-icons' -import { CippActionsOffcanvas } from 'src/components/utilities' -import { cellDateFormatter, CellTip } from 'src/components/tables' - -const QuarantineList = () => { - const tenant = useSelector((state) => state.app.currentTenant) - - const Offcanvas = (row, rowIndex, formatExtraData) => { - const [ocVisible, setOCVisible] = useState(false) - return ( - <> - setOCVisible(true)}> - - - , - }, - { - label: 'Deny', - color: 'info', - modal: true, - modalUrl: `/api/ExecQuarantineManagement?TenantFilter=${tenant.defaultDomainName}&ID=${row.Identity}&Type=Deny`, - modalMessage: 'Are you sure you want to deny this message?', - icon: , - }, - { - label: 'Release & Allow Sender', - color: 'info', - modal: true, - modalUrl: `/api/ExecQuarantineManagement?TenantFilter=${tenant.defaultDomainName}&ID=${row.Identity}&Type=Release&AllowSender=true`, - modalMessage: - 'Are you sure you want to release this email, and add the sender to the whitelist?', - icon: , - }, - ]} - placement="end" - visible={ocVisible} - id={row.id} - hideFunction={() => setOCVisible(false)} - /> - - ) - } - - //TODO: Add CellBoolean - const columns = [ - { - selector: (row) => row['SenderAddress'], - name: 'Sender', - sortable: true, - cell: (row) => CellTip(row['SenderAddress']), - exportSelector: 'SenderAddress', - }, - { - selector: (row) => row.RecipientAddress.join(', '), - name: 'Recipient', - sortable: true, - exportSelector: 'RecipientAddress', - cell: (row) => CellTip(row.RecipientAddress.join(', ')), - }, - { - selector: (row) => row['Subject'], - name: 'Subject', - sortable: true, - cell: (row) => CellTip(row['Subject']), - exportSelector: 'Subject', - maxWidth: '300px', - }, - { - selector: (row) => row['Type'], - name: 'Reason', - sortable: true, - exportSelector: 'Type', - maxWidth: '200px', - }, - { - selector: (row) => row['ReceivedTime'], - name: 'Received on', - sortable: true, - exportSelector: 'ReceivedTime', - maxWidth: '150px', - cell: cellDateFormatter(), - }, - { - selector: (row) => row['ReleaseStatus'], - name: 'Status', - sortable: true, - exportSelector: 'ReleaseStatus', - maxWidth: '150px', - }, - { - selector: (row) => row['PolicyName'], - name: 'Blocked by Policy', - sortable: true, - exportSelector: 'PolicyName', - maxWidth: '170px', - cell: (row) => CellTip(row['PolicyName']), - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '100px', - }, - ] - - return ( - - ) -} - -export default QuarantineList diff --git a/src/views/email-exchange/tools/MessageViewer.jsx b/src/views/email-exchange/tools/MessageViewer.jsx deleted file mode 100644 index f010c0b37c4f..000000000000 --- a/src/views/email-exchange/tools/MessageViewer.jsx +++ /dev/null @@ -1,342 +0,0 @@ -import React, { useCallback, useEffect, useMemo, useState } from 'react' -import PropTypes from 'prop-types' -import { CippPage, CippMasonry, CippMasonryItem, CippContentCard } from 'src/components/layout' -import { parseEml, readEml, GBKUTF8, decode } from 'eml-parse-js' -import { useMediaPredicate } from 'react-media-hook' -import { useSelector } from 'react-redux' -import { CellDate } from 'src/components/tables' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { - CButton, - CCard, - CCardBody, - CCol, - CDropdown, - CDropdownMenu, - CDropdownToggle, - CLink, - CRow, -} from '@coreui/react' -import ReactTimeAgo from 'react-time-ago' -import { CippCodeBlock, ModalService } from 'src/components/utilities' -import DOMPurify from 'dompurify' -import ReactHtmlParser from 'react-html-parser' -import CippDropzone from 'src/components/utilities/CippDropzone' - -const MessageViewer = ({ emailSource }) => { - const [emlContent, setEmlContent] = useState(null) - const [emlError, setEmlError] = useState(false) - const [messageHtml, setMessageHtml] = useState('') - const [emlHeaders, setEmlHeaders] = useState(null) - - const getAttachmentIcon = (contentType) => { - if (contentType.includes('image')) { - return 'image' - } else if (contentType.includes('audio')) { - return 'volume-up' - } else if (contentType.includes('video')) { - return 'video' - } else if (contentType.includes('text')) { - return 'file-lines' - } else if (contentType.includes('pdf')) { - return 'file-pdf' - } else if ( - contentType.includes('zip') || - contentType.includes('compressed') || - contentType.includes('tar') || - contentType.includes('gzip') - ) { - return 'file-zipper' - } else if (contentType.includes('msword')) { - return 'file-word' - } else if (contentType.includes('spreadsheet')) { - return 'file-excel' - } else if (contentType.includes('presentation')) { - return 'file-powerpoint' - } else if (contentType.includes('json') || contentType.includes('xml')) { - return 'file-code' - } else if (contentType.includes('rfc822')) { - return 'envelope' - } else { - return 'file' - } - } - - const downloadAttachment = (attachment, newTab = false) => { - var contentType = attachment?.contentType?.split(';')[0] ?? 'text/plain' - var fileBytes = attachment.data - if (fileBytes instanceof Uint8Array && attachment?.data64) { - fileBytes = new Uint8Array( - atob(attachment.data64) - .split('') - .map((c) => c.charCodeAt(0)), - ) - } - var fileName = attachment.name - const blob = new Blob([fileBytes], { type: contentType ?? 'application/octet-stream' }) - const url = URL.createObjectURL(blob) - const link = document.createElement('a') - if (newTab) { - if (contentType.includes('rfc822')) { - var content = fileBytes - const nestedMessage = - ModalService.open({ - body: nestedMessage, - title: fileName, - size: 'lg', - }) - } else if (contentType.includes('pdf')) { - const embeddedPdf = - ModalService.open({ - body: embeddedPdf, - title: fileName, - size: 'lg', - }) - } else if (contentType.includes('image')) { - const embeddedImage = {fileName} - ModalService.open({ - body: embeddedImage, - title: fileName, - size: 'lg', - }) - } else if (contentType.includes('text')) { - const textContent = fileBytes - ModalService.open({ - data: textContent, - componentType: 'codeblock', - title: fileName, - size: 'lg', - }) - setTimeout(() => { - URL.revokeObjectURL(url) - }, 1000) - } else { - const newWindow = window.open() - newWindow.location.href = url - URL.revokeObjectURL(url) - } - } else { - link.href = url - link.download = fileName - link.click() - URL.revokeObjectURL(url) - } - } - - function isValidDate(d) { - return d instanceof Date && !isNaN(d) - } - - const showEmailModal = (emailSource, title = 'Email Source') => { - ModalService.open({ - data: emailSource, - componentType: 'codeblock', - title: title, - size: 'lg', - }) - } - - const EmailButtons = (emailHeaders, emailSource) => { - const emailSourceBytes = new TextEncoder().encode(emailSource) - const blob = new Blob([emailSourceBytes], { type: 'message/rfc822' }) - const url = URL.createObjectURL(blob) - return ( - - {emailHeaders && ( - showEmailModal(emailHeaders, 'Email Headers')} className="me-2"> - - View Headers - - )} - showEmailModal(emailSource)}> - - View Source - - - ) - } - - useEffect(() => { - readEml(emailSource, (err, ReadEmlJson) => { - if (err) { - setEmlError(true) - setEmlContent(null) - setMessageHtml(null) - setEmlHeaders(null) - } else { - setEmlContent(ReadEmlJson) - setEmlError(false) - if (ReadEmlJson.html) { - var sanitizedHtml = DOMPurify.sanitize(ReadEmlJson.html) - var parsedHtml = ReactHtmlParser(sanitizedHtml) - setMessageHtml(parsedHtml) - } else { - setMessageHtml(null) - } - const header_regex = /(?:^[\w-]+:\s?.*(?:\r?\n[ \t].*)*\r?\n?)+/gm - const headers = emailSource.match(header_regex) - setEmlHeaders(headers ? headers[0] : null) - } - }) - }, [emailSource, setMessageHtml, setEmlError, setEmlContent, setEmlHeaders]) - - var buttons = EmailButtons(emlHeaders, emailSource) - - return ( - <> - {emlError && ( - - Unable to parse the EML file, email source is displayed below. - - - )} - - {emlContent && ( - <> - - <> - - -
    - - {emlContent?.from?.name} <{emlContent?.from?.email}> -
    - {emlContent?.to?.length > 0 && ( -
    - - To:{' '} - {emlContent?.to?.map((to) => to.name + ' <' + to.email + '>').join(', ')} - -
    - )} - {emlContent?.cc?.length > 0 && ( -
    - - CC:{' '} - {emlContent?.cc?.map((cc) => cc.name + ' <' + cc.email + '>').join(', ')} - -
    - )} -
    - -
    - - - {emlContent.date && isValidDate(emlContent.date) - ? emlContent.date.toLocaleDateString() - : 'Invalid Date'} - - {emlContent.date && isValidDate(emlContent.date) && ( - <> - () - - )} - -
    -
    -
    - - - {emlContent.attachments && emlContent.attachments.length > 0 && ( - - - {emlContent.attachments.map((attachment, index) => ( - - - - {attachment.name ?? 'No name'} - - - downloadAttachment(attachment)} - > - - Download - - {(attachment?.contentType === undefined || - attachment?.contentType?.includes('text') || - attachment?.contentType?.includes('pdf') || - attachment?.contentType?.includes('image') || - attachment?.contentType?.includes('rfc822')) && ( - downloadAttachment(attachment, true)} - > - - View - - )} - - - ))} - - - )} - - {(emlContent?.text || emlContent?.html) && ( - - - {messageHtml ? ( -
    {messageHtml}
    - ) : ( -
    - -
    - )} -
    -
    - )} -
    - - )} - - ) -} - -MessageViewer.propTypes = { - emailSource: PropTypes.string, -} - -const MessageViewerPage = () => { - const [emlFile, setEmlFile] = useState(null) - const onDrop = useCallback((acceptedFiles) => { - acceptedFiles.forEach((file) => { - const reader = new FileReader() - reader.onabort = () => console.log('file reading was aborted') - reader.onerror = () => console.log('file reading has failed') - reader.onload = () => { - setEmlFile(reader.result) - } - reader.readAsText(file) - }) - }, []) - - return ( - - - {emlFile && } - - ) -} - -export default MessageViewerPage diff --git a/src/views/email-exchange/transport/TransportRules.jsx b/src/views/email-exchange/transport/TransportRules.jsx deleted file mode 100644 index 9d534e17dee5..000000000000 --- a/src/views/email-exchange/transport/TransportRules.jsx +++ /dev/null @@ -1,147 +0,0 @@ -import { CButton } from '@coreui/react' -import { faBan, faBook, faCheck, faEllipsisV, faTrash } from '@fortawesome/free-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import React, { useState } from 'react' -import { useSelector } from 'react-redux' -import { CippPageList } from 'src/components/layout' -import { CippActionsOffcanvas } from 'src/components/utilities' -import { CellTip } from 'src/components/tables' -import { TitleButton } from 'src/components/buttons' - -const Offcanvas = (row, rowIndex, formatExtraData) => { - const tenant = useSelector((state) => state.app.currentTenant) - const [ocVisible, setOCVisible] = useState(false) - //console.log(row) - return ( - <> - setOCVisible(true)}> - - - , - modalBody: row, - modalType: 'POST', - modalUrl: `/api/AddTransportTemplate`, - modalMessage: 'Are you sure you want to create a template based on this rule?', - }, - { - label: 'Enable Rule', - color: 'info', - icon: , - modal: true, - modalUrl: `/api/EditTransportRule?State=Enable&TenantFilter=${tenant.defaultDomainName}&GUID=${row.Guid}`, - modalMessage: 'Are you sure you want to enable this rule?', - }, - { - label: 'Disable Rule', - color: 'info', - icon: , - modal: true, - modalUrl: `/api/EditTransportRule?State=Disable&TenantFilter=${tenant.defaultDomainName}&GUID=${row.Guid}`, - modalMessage: 'Are you sure you want to disable this rule?', - }, - { - label: 'Delete Rule', - color: 'danger', - modal: true, - icon: , - modalUrl: `/api/RemoveTransportRule?TenantFilter=${tenant.defaultDomainName}&GUID=${row.Guid}`, - modalMessage: 'Are you sure you want to disable this rule?', - }, - ]} - placement="end" - visible={ocVisible} - id={row.id} - hideFunction={() => setOCVisible(false)} - /> - - ) -} - -const columns = [ - { - name: 'Name', - selector: (row) => row['Name'], - sortable: true, - wrap: true, - cell: (row) => CellTip(row['Name']), - exportSelector: 'Name', - }, - { - name: 'State', - selector: (row) => row['State'], - sortable: true, - exportSelector: 'State', - }, - { - name: 'Mode', - selector: (row) => row['Mode'], - sortable: true, - exportSelector: 'Mode', - }, - { - name: 'Error Action', - selector: (row) => row['RuleErrorAction'], - sortable: true, - exportSelector: 'RuleErrorAction', - }, - { - name: 'description', - selector: (row) => row['Description'], - omit: true, - exportSelector: 'Description', - }, - { - name: 'GUID', - selector: (row) => row['Guid'], - omit: true, - exportSelector: 'Guid', - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '80px', - }, -] - -const TransportRulesList = () => { - const tenant = useSelector((state) => state.app.currentTenant) - - return ( - - - - } - datatable={{ - filterlist: [ - { filterName: 'Enabled rules', filter: 'Complex: State eq Enabled' }, - { filterName: 'Disabled rules', filter: 'Complex: State eq Disabled' }, - ], - reportName: `${tenant?.defaultDomainName}-transport-rules-list`, - path: '/api/ListTransportRules', - params: { TenantFilter: tenant?.defaultDomainName }, - columns, - }} - /> - ) -} - -export default TransportRulesList diff --git a/src/views/endpoint/applications/ApplicationsAddRMM.jsx b/src/views/endpoint/applications/ApplicationsAddRMM.jsx deleted file mode 100644 index a6583e00fd4c..000000000000 --- a/src/views/endpoint/applications/ApplicationsAddRMM.jsx +++ /dev/null @@ -1,366 +0,0 @@ -import React from 'react' -import { CCol, CRow, CForm, CCallout, CSpinner } from '@coreui/react' -import { Field, FormSpy } from 'react-final-form' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons' -import { CippWizard } from 'src/components/layout' -import { WizardTableField } from 'src/components/tables' -import PropTypes from 'prop-types' -import { Condition, RFFCFormInput, RFFCFormRadio, RFFSelectSearch } from 'src/components/forms' -import { useLazyGenericPostRequestQuery } from 'src/store/api/app' - -const Error = ({ name }) => ( - - touched && error ? ( - - - {error} - - ) : null - } - /> -) - -Error.propTypes = { - name: PropTypes.string.isRequired, -} - -const requiredArray = (value) => (value && value.length !== 0 ? undefined : 'Required') - -const AddRMM = () => { - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - - const handleSubmit = async (values) => { - values.selectedTenants.map( - (tenant) => (values[`Select_${tenant.defaultDomainName}`] = tenant.defaultDomainName), - ) - if (values.AssignTo === 'customGroup') { - values.AssignTo = values.customGroup - } - genericPostRequest({ path: '/api/AddMSPApp', values: values }) - } - - const formValues = { - arch: true, - RemoveVersions: true, - AcceptLicense: true, - AssignTo: 'On', - } - - return ( - - -
    -

    Step 1

    -
    Choose a tenant
    -
    -
    - - {(props) => ( - row['displayName'], - sortable: true, - exportselector: 'displayName', - }, - { - name: 'Default Domain Name', - selector: (row) => row['defaultDomainName'], - sortable: true, - exportselector: 'mail', - }, - ]} - fieldProps={props} - /> - )} - - -
    -
    - -
    -

    Step 2

    -
    Supply the app information
    -
    -
    - - - - - - - - - - - {/* eslint-disable react/prop-types */} - {(props) => { - return ( - <> - - - - - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - - - - - - - - - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - - - - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - - - - - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - - - - - - - - - - - - - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - - {props.values.selectedTenants.map((item, index) => ( - - - - ))} - - - ) - }} - - - - - - - - - - -
    -
    - -
    -

    Step 3

    -
    Confirm and apply
    -
    -
    - {!postResults.isSuccess && ( - - {(props) => { - return ( - <> - - - - - - ) - }} - - )} - {postResults.isFetching && ( - - Loading - - )} - {postResults.isSuccess && {postResults.data.Results}} -
    -
    -
    - ) -} - -export default AddRMM diff --git a/src/views/endpoint/applications/ListApplicationQueue.jsx b/src/views/endpoint/applications/ListApplicationQueue.jsx deleted file mode 100644 index 53f1e9197d33..000000000000 --- a/src/views/endpoint/applications/ListApplicationQueue.jsx +++ /dev/null @@ -1,139 +0,0 @@ -import React from 'react' -import { useSelector } from 'react-redux' -import { CSpinner, CButton, CCallout } from '@coreui/react' -import { faCheck, faExclamationTriangle, faTrash } from '@fortawesome/free-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { CippPageList } from 'src/components/layout' -import { ModalService } from 'src/components/utilities' -import { useLazyGenericGetRequestQuery } from 'src/store/api/app' -import { CellTip } from 'src/components/tables' - -const RefreshAction = () => { - const [execStandards, execStandardsResults] = useLazyGenericGetRequestQuery() - - const showModal = () => - ModalService.confirm({ - body: ( -
    - Deploy all queued applications to tenants? -
    - Please note: This job runs automatically every 12 hours. -
    - ), - onConfirm: () => execStandards({ path: 'api/AddChocoApp_OrchestrationStarter' }), - }) - - return ( - <> - {execStandardsResults.data?.Results === - 'Already running. Please wait for the current instance to finish' && ( -
    {execStandardsResults.data?.Results}
    - )} - - {execStandardsResults.isLoading && } - {execStandardsResults.error && ( - - )} - {execStandardsResults.isSuccess && } - Deploy now - - - ) -} -const ListApplicationQueue = () => { - const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() - const Actions = (row, index, column) => { - const handleDeleteStandard = (apiurl, message) => { - ModalService.confirm({ - title: 'Confirm', - body:
    {message}
    , - onConfirm: () => ExecuteGetRequest({ path: apiurl }), - confirmLabel: 'Continue', - cancelLabel: 'Cancel', - }) - } - return ( - - handleDeleteStandard( - `api/RemoveQueuedApp?ID=${row.id}`, - 'Do you want to delete the queued application?', - ) - } - > - - - ) - } - const columns = [ - { - name: 'Tenant', - selector: (row) => row['tenantName'], - sortable: true, - cell: (row) => CellTip(row['tenantName']), - exportSelector: 'tenantName', - minWidth: '200px', - }, - { - name: 'Application Name', - selector: (row) => row['applicationName'], - sortable: true, - cell: (row) => CellTip(row['applicationName']), - exportSelector: 'applicationName', - minWidth: '200px', - }, - { - name: 'Install command', - selector: (row) => row['cmdLine'], - sortable: true, - cell: (row) => CellTip(row['cmdLine']), - exportSelector: 'cmdLine', - }, - { - name: 'Assign To', - selector: (row) => row['assignTo'], - sortable: true, - cell: (row) => CellTip(row['assignTo']), - exportSelector: 'assignTo', - }, - { - name: 'Actions', - cell: Actions, - }, - ] - const tenant = useSelector((state) => state.app.currentTenant) - - return ( -
    - {getResults.isFetching && ( - - Loading - - )} - {getResults.isSuccess && {getResults.data?.Results}} - {getResults.isError && ( - Could not connect to API: {getResults.error.message} - )} - ], - }, - keyField: 'id', - columns, - reportName: `ApplicationQueue-List`, - path: '/api/ListApplicationQueue', - params: { TenantFilter: tenant?.defaultDomainName }, - }} - /> -
    - ) -} - -export default ListApplicationQueue diff --git a/src/views/endpoint/intune/MEMListCompliance.jsx b/src/views/endpoint/intune/MEMListCompliance.jsx deleted file mode 100644 index 328a387566fd..000000000000 --- a/src/views/endpoint/intune/MEMListCompliance.jsx +++ /dev/null @@ -1,163 +0,0 @@ -import React, { useState } from 'react' -import { useSelector } from 'react-redux' -import { CButton } from '@coreui/react' -import { - faBook, - faEdit, - faEllipsisV, - faGlobeEurope, - faPager, - faTrashAlt, - faUser, -} from '@fortawesome/free-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { CippPageList } from 'src/components/layout' -import { Link } from 'react-router-dom' -import { CippActionsOffcanvas, CippCodeBlock } from 'src/components/utilities' -import { TitleButton } from 'src/components/buttons' -import { cellBooleanFormatter, cellDateFormatter } from 'src/components/tables' - -const Actions = (row, rowIndex, formatExtraData) => { - const [ocVisible, setOCVisible] = useState(false) - const tenant = useSelector((state) => state.app.currentTenant) - return ( - <> - setOCVisible(true)}> - - - , - modalUrl: `/api/AddIntuneTemplate?TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&URLName=deviceCompliancePolicies`, - modalMessage: 'Are you sure you want to create a template based on this policy?', - }, - { - icon: , - label: ' Assign to All Users', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=allLicensedUsers&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=deviceCompliancePolicies`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all users?`, - }, - { - icon: , - label: ' Assign to All Devices', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=AllDevices&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=deviceCompliancePolicies`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all devices?`, - }, - { - icon: , - label: ' Assign Globally (All Users / All Devices)', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=AllDevicesAndUsers&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=deviceCompliancePolicies`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all users and devices?`, - }, - { - label: 'Delete Policy', - color: 'danger', - modal: true, - icon: , - modalUrl: `/api/RemovePolicy?TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&URLName=deviceCompliancePolicies`, - modalMessage: 'Are you sure you want to delete this policy?', - }, - ]} - placement="end" - visible={ocVisible} - id={row.id} - hideFunction={() => setOCVisible(false)} - /> - - ) -} - -const columns = [ - { - selector: (row) => row['displayName'], - name: 'Name', - sortable: true, - exportSelector: 'displayName', - }, - { - selector: (row) => row['description'], - name: 'Description', - sortable: true, - exportSelector: 'description', - }, - { - selector: (row) => row['lastModifiedDateTime'], - name: 'Last Modified', - exportSelector: 'lastModifiedDateTime', - cell: cellDateFormatter({ format: 'relative' }), - }, - { - name: 'Actions', - cell: Actions, - maxWidth: '80px', - }, -] - -const ComplianceList = () => { - const tenant = useSelector((state) => state.app.currentTenant) - - // eslint-disable-next-line react/prop-types - const ExpandedComponent = ({ data }) => ( - // eslint-disable-next-line react/prop-types - - ) - - return ( - - - - } - tenantSelector={true} - datatable={{ - path: '/api/ListGraphRequest', - params: { - TenantFilter: tenant?.defaultDomainName, - Endpoint: 'deviceManagement/deviceCompliancePolicies', - $orderby: 'displayName', - $count: true, - }, - columns, - reportName: `${tenant?.defaultDomainName}-MEMPolicies-List`, - tableProps: { - expandableRows: true, - expandableRowsComponent: ExpandedComponent, - expandOnRowClicked: true, - selectableRows: true, - actionsList: [ - { - label: 'Delete Policy', - modal: true, - modalUrl: `api/RemovePolicy?TenantFilter=${tenant?.defaultDomainName}&ID=!id&URLName=deviceCompliancePolicies`, - modalMessage: 'Are you sure you want to delete these policies?', - }, - ], - }, - }} - /> - ) -} - -export default ComplianceList diff --git a/src/views/endpoint/intune/MEMListPolicies.jsx b/src/views/endpoint/intune/MEMListPolicies.jsx deleted file mode 100644 index f63db28effef..000000000000 --- a/src/views/endpoint/intune/MEMListPolicies.jsx +++ /dev/null @@ -1,158 +0,0 @@ -import React, { useState } from 'react' -import { useSelector } from 'react-redux' -import { CButton } from '@coreui/react' -import { - faBook, - faEdit, - faEllipsisV, - faGlobeEurope, - faPager, - faTrashAlt, - faUser, -} from '@fortawesome/free-solid-svg-icons' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { CippPageList } from 'src/components/layout' -import { Link } from 'react-router-dom' -import { CippActionsOffcanvas, CippCodeBlock } from 'src/components/utilities' -import { TitleButton } from 'src/components/buttons' - -const Actions = (row, rowIndex, formatExtraData) => { - const [ocVisible, setOCVisible] = useState(false) - - const tenant = useSelector((state) => state.app.currentTenant) - return ( - <> - setOCVisible(true)}> - - - , - modalUrl: `/api/AddIntuneTemplate?TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&URLName=${row.URLName}`, - modalMessage: 'Are you sure you want to create a template based on this policy?', - }, - { - icon: , - label: ' Assign to All Users', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=allLicensedUsers&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=${row.URLName}`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all users?`, - }, - { - icon: , - label: ' Assign to All Devices', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=AllDevices&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=${row.URLName}`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all devices?`, - }, - { - icon: , - label: ' Assign Globally (All Users / All Devices)', - color: 'info', - modal: true, - modalUrl: `/api/ExecAssignPolicy?AssignTo=AllDevicesAndUsers&TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&type=${row.URLName}`, - modalMessage: `Are you sure you want to assign ${row.displayName} to all users and devices?`, - }, - { - label: 'Delete Policy', - color: 'danger', - modal: true, - icon: , - modalUrl: `/api/RemovePolicy?TenantFilter=${tenant.defaultDomainName}&ID=${row.id}&URLName=${row.URLName}`, - modalMessage: 'Are you sure you want to delete this policy?', - }, - ]} - placement="end" - visible={ocVisible} - id={row.id} - hideFunction={() => setOCVisible(false)} - /> - - ) -} - -const columns = [ - { - selector: (row) => row['displayName'], - name: 'Name', - sortable: true, - exportSelector: 'displayName', - }, - { - selector: (row) => row['PolicyTypeName'], - name: 'Profile Type', - sortable: true, - exportSelector: 'PolicyTypeName', - }, - { - selector: (row) => row['id'], - name: 'id', - omit: true, - exportSelector: 'id', - }, - { - name: 'Actions', - cell: Actions, - maxWidth: '80px', - }, -] - -const IntuneList = () => { - const tenant = useSelector((state) => state.app.currentTenant) - - // eslint-disable-next-line react/prop-types - const ExpandedComponent = ({ data }) => ( - // eslint-disable-next-line react/prop-types - - ) - - return ( - - - - } - tenantSelector={true} - datatable={{ - path: '/api/ListIntunePolicy?type=ESP', - params: { TenantFilter: tenant?.defaultDomainName }, - columns, - reportName: `${tenant?.defaultDomainName}-MEMPolicies-List`, - tableProps: { - expandableRows: true, - expandableRowsComponent: ExpandedComponent, - expandOnRowClicked: true, - selectableRows: true, - actionsList: [ - { - label: 'Delete Policy', - modal: true, - modalUrl: `api/RemovePolicy?TenantFilter=${tenant?.defaultDomainName}&ID=!id&URLName=!URLName`, - modalMessage: 'Are you sure you want to delete these policies?', - }, - ], - }, - }} - /> - ) -} - -export default IntuneList diff --git a/src/views/identity/administration/Devices.jsx b/src/views/identity/administration/Devices.jsx deleted file mode 100644 index 664f7552757c..000000000000 --- a/src/views/identity/administration/Devices.jsx +++ /dev/null @@ -1,194 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { useSelector } from 'react-redux' -import { CellTip, cellBooleanFormatter } from 'src/components/tables' -import { CippPageList } from 'src/components/layout' -import { Link } from 'react-router-dom' -import { CButton } from '@coreui/react' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faEdit, faEllipsisV } from '@fortawesome/free-solid-svg-icons' -import { CippActionsOffcanvas } from 'src/components/utilities' -import { cellGenericFormatter } from 'src/components/tables/CellGenericFormat' - -const DevicesList = () => { - const [tenantColumnSet, setTenantColumn] = useState(true) - const tenant = useSelector((state) => state.app.currentTenant) - const Offcanvas = (row, rowIndex, formatExtraData) => { - const tenant = useSelector((state) => state.app.currentTenant) - const [ocVisible, setOCVisible] = useState(false) - const editLink = `/identity/administration/groups/edit?groupId=${row.id}&tenantDomain=${tenant.defaultDomainName}` - return ( - <> - setOCVisible(true)}> - - - setOCVisible(false)} - /> - - ) - } - const columns = [ - { - name: 'Tenant', - selector: (row) => row['Tenant'], - sortable: true, - cell: (row) => CellTip(row['Tenant']), - exportSelector: 'Tenant', - omit: tenantColumnSet, - }, - { - name: 'Retrieval Status', - selector: (row) => row['CippStatus'], - sortable: true, - cell: (row) => CellTip(row['CippStatus']), - exportSelector: 'CippStatus', - omit: tenantColumnSet, - }, - { - selector: (row) => row['displayName'], - name: 'Display Name', - sortable: true, - cell: (row) => CellTip(row['displayName']), - exportSelector: 'displayName', - }, - { - selector: (row) => row['accountEnabled'], - name: 'Enabled', - sortable: true, - cell: cellGenericFormatter(), - exportSelector: 'accountEnabled', - }, - { - selector: (row) => row['deviceOwnership'], - name: 'Device Ownership', - sortable: true, - cell: (row) => CellTip(row['deviceOwnership']), - exportSelector: 'recipientType', - }, - { - selector: (row) => row['enrollmentType'], - name: 'Enrollment Type', - sortable: true, - exportSelector: 'enrollmentType', - }, - { - selector: (row) => row['manufacturer'], - name: 'Manufacturer', - sortable: true, - exportSelector: 'manufacturer', - }, - { - selector: (row) => row['model'], - name: 'Model', - sortable: true, - exportSelector: 'model', - }, - { - selector: (row) => row['operatingSystem'], - name: 'OS', - sortable: true, - exportSelector: 'operatingSystem', - }, - { - selector: (row) => row['operatingSystemVersion'], - name: 'Version', - sortable: true, - exportSelector: 'operatingSystemVersion', - }, - { - selector: (row) => row['profileType'], - name: 'Profile Type', - sortable: true, - exportSelector: 'profileType', - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '20px', - }, - ] - useEffect(() => { - if (tenant.defaultDomainName === 'AllTenants') { - setTenantColumn(false) - } - if (tenant.defaultDomainName !== 'AllTenants') { - setTenantColumn(true) - } - }, [tenant.defaultDomainName, tenantColumnSet]) - return ( - - ) -} - -export default DevicesList diff --git a/src/views/identity/administration/UserMailboxRuleList.jsx b/src/views/identity/administration/UserMailboxRuleList.jsx deleted file mode 100644 index ae2592866e85..000000000000 --- a/src/views/identity/administration/UserMailboxRuleList.jsx +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' -import { CellBoolean, cellBooleanFormatter, CellTip } from 'src/components/tables' -import { DatatableContentCard } from 'src/components/contentcards' -import { faEnvelope } from '@fortawesome/free-solid-svg-icons' - -const rowStyle = (row, rowIndex) => { - const style = {} - - return style -} - -export default function UserMailboxRuleList({ userId, userEmail, tenantDomain, className = null }) { - const formatter = (cell) => CellBoolean({ cell }) - const columns = [ - { - selector: (row) => row['Name'], - name: 'Display Name', - sortable: true, - cell: (row) => CellTip(row['Name']), - exportSelector: 'Name', - width: '200px', - }, - { - selector: (row) => row['Description'], - name: 'Description', - sortable: true, - cell: (row) => CellTip(row['Description']), - exportSelector: 'Description', - width: '350px', - }, - { - selector: (row) => row['ForwardTo'], - name: 'Forwards To', - sortable: true, - cell: (row) => CellTip(row['ForwardTo']), - exportSelector: 'ForwardTo', - width: '250px', - }, - { - selector: (row) => row['RedirectTo'], - name: 'Redirect To', - sortable: true, - cell: (row) => CellTip(row['RedirectTo']), - exportSelector: 'RedirectTo', - maxwidth: '250px', - }, - { - selector: (row) => row['CopyToFolder'], - name: 'Copy To Folder', - sortable: true, - cell: (row) => CellTip(row['CopyToFolder']), - exportSelector: 'CopyToFolder', - maxwidth: '200px', - }, - { - selector: (row) => row['MoveToFolder'], - name: 'Move To Folder', - sortable: true, - cell: (row) => CellTip(row['MoveToFolder']), - exportSelector: 'MoveToFolder', - maxwidth: '200px', - }, - { - selector: (row) => row['DeleteMessage'], - name: 'Delete Message', - sortable: true, - cell: cellBooleanFormatter({ colourless: true }), - formatter, - exportSelector: 'DeleteMessage', - width: '200px', - }, - ] - return ( - - ) -} - -UserMailboxRuleList.propTypes = { - userId: PropTypes.string.isRequired, - userEmail: PropTypes.string, - tenantDomain: PropTypes.string.isRequired, - className: PropTypes.string, -} diff --git a/src/views/identity/administration/ViewBEC.jsx b/src/views/identity/administration/ViewBEC.jsx deleted file mode 100644 index 4f1173042008..000000000000 --- a/src/views/identity/administration/ViewBEC.jsx +++ /dev/null @@ -1,441 +0,0 @@ -import React, { useEffect } from 'react' -import { CButton, CCallout, CLink, CCardTitle, CSpinner } from '@coreui/react' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { - faCheckCircle, - faRedo, - faTimesCircle, - faLaptop, - faKey, - faForward, - faUsers, - faAsterisk, - faIdBadge, - faWindowRestore, - faSignInAlt, -} from '@fortawesome/free-solid-svg-icons' -import { useLazyExecBecCheckQuery } from 'src/store/api/users' -import useQuery from 'src/hooks/useQuery' -import { CippTable } from 'src/components/tables' -import { useLazyGenericPostRequestQuery } from 'src/store/api/app' -import { CippContentCard, CippMasonry, CippMasonryItem, CippPage } from 'src/components/layout' -import 'react-loading-skeleton/dist/skeleton.css' -import Skeleton from 'react-loading-skeleton' -import useConfirmModal from 'src/hooks/useConfirmModal' - -const ViewBec = () => { - let query = useQuery() - const userId = query.get('userId') - const userName = query.get('ID') - const tenantDomain = query.get('tenantDomain') - const [execBecRemediate, execRemediateResults] = useLazyGenericPostRequestQuery() - const [execBecView, results] = useLazyExecBecCheckQuery() - const { data: alerts = {}, isFetching, error, isSuccess } = results - useEffect(() => { - execBecView({ tenantFilter: tenantDomain, userId: userId, userName: userName }) - }, [execBecView, tenantDomain, userId, userName]) - - const deviceColumns = [ - { - name: 'Device Model', - selector: (row) => row['DeviceModel'], - sortable: true, - }, - { - name: 'First Sync Time', - selector: (row) => row['FirstSyncTime'], - sortable: true, - }, - { - name: 'Device User Agent', - selector: (row) => row['DeviceUserAgent'], - sortable: true, - }, - ] - - const rulesColumns = [ - { - name: 'Creator IP', - selector: (row) => row['ClientIP'], - sortable: true, - grow: 0, - }, - { - name: 'Rule Name', - selector: (row) => row['RuleName'], - sortable: true, - }, - { - name: 'Rule Conditions', - selector: (row) => row['RuleCondition'], - sortable: true, - }, - { - name: 'Created on', - selector: (row) => row['CreationTime'], - sortable: true, - }, - { - name: 'Created for', - selector: (row) => row['UserId'], - sortable: true, - }, - ] - - const logonColumns = [ - { - name: 'App', - selector: (row) => row['AppDisplayName'], - sortable: true, - }, - { - name: 'Date Time', - selector: (row) => row['CreatedDateTime'], - sortable: true, - }, - { - name: 'Error code', - selector: (row) => row.id, - sortable: true, - }, - { - name: 'Details', - selector: (row) => row.Status, - sortable: true, - }, - { - name: 'IP', - selector: (row) => row.IPAddress, - sortable: true, - }, - ] - - const mailboxlogonColumns = [ - { - name: 'IP', - selector: (row) => row['IPAddress'], - sortable: true, - }, - { - name: 'User', - selector: (row) => row['userPrincipalName'], - sortable: true, - }, - { - name: 'Application', - selector: (row) => row['AppDisplayName'], - sortable: true, - }, - { - name: 'Result', - selector: (row) => row['Status'], - sortable: true, - }, - ] - const newUserColumns = [ - { - name: 'DisplayName', - selector: (row) => row['displayName'], - sortable: true, - }, - { - name: 'Username', - selector: (row) => row['userPrincipalName'], - sortable: true, - }, - { - name: 'Date', - selector: (row) => row['CreatedDateTime'], - sortable: true, - }, - ] - - const passwordColumns = [ - { - name: 'displayName', - selector: (row) => row['displayName'], - sortable: true, - }, - { - name: 'Username', - selector: (row) => row['userPrincipalName'], - sortable: true, - }, - { - name: 'Date', - selector: (row) => row['lastPasswordChangeDateTime'], - sortable: true, - }, - ] - - const permissionColumns = [ - { - name: 'Operation', - selector: (row) => row['Operation'], - sortable: true, - }, - { - name: 'Executed by', - selector: (row) => row['UserKey'], - sortable: true, - }, - { - name: 'Executed on', - selector: (row) => row['ObjectId'], - sortable: true, - }, - { - name: 'Permissions', - selector: (row) => row['Permissions'], - sortable: true, - }, - ] - - const appColumns = [ - { - name: 'Type', - selector: (row) => row['Operation'], - sortable: true, - }, - { - name: 'User', - selector: (row) => row['UserId'], - sortable: true, - }, - { - name: 'Application', - selector: (row) => row['ObjectId'], - sortable: true, - }, - { - name: 'Result', - selector: (row) => row['ResultStatus'], - sortable: true, - }, - ] - const handleReMediate = useConfirmModal({ - body:
    Are you sure you want to remediate this user?
    , - onConfirm: () => { - execBecRemediate({ - path: '/api/execBecRemediate', - values: { - userId: userId, - tenantFilter: tenantDomain, - userName: userName, - }, - }) - }, - }) - return ( - - - - Business Email Compromise Overview - {userName}} - button={ - - execBecView({ - tenantFilter: tenantDomain, - userId: userId, - overwrite: true, - }) - } - disabled={isFetching} - > - {!isFetching && } - Refresh Data - - } - > - - Loading Data: {isFetching && } - {!isFetching && error && } - {isSuccess && ( - <> - - Data has been extracted at {alerts.ExtractedAt} - - )} - -

    - Use this information as a guide to check if a tenant or e-mail address might have been - compromised. All data is retrieved from the last 7 days of logs. -

    -

    - If you need more extensive information, run the{' '} - HAWK tool to investigate further - if you believe this user to be compromised. -

    -

    - Hit the button below to execute the following tasks: -

  • Block user signin
  • -
  • Reset user password
  • -
  • Disconnect all current sessions
  • -
  • Disable all inbox rules for the user
  • -

    - handleReMediate()}>Remediate User - {!execRemediateResults.isSuccess && execRemediateResults.isError && ( - Error. Could not remediate user - )} - {execRemediateResults.isFetching && ( - - - - )} - {execRemediateResults.isSuccess && ( - - {execRemediateResults.data?.Results.map((item, idx) => { - return
  • {item}
  • - })} -
    - )} -
    -
    - - - {isFetching && } - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - - - - {isFetching && } - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - - - - {isFetching && } - - {isSuccess && ( - - )} - - -
    -
    - ) -} - -export default ViewBec diff --git a/src/views/identity/administration/ViewUser.jsx b/src/views/identity/administration/ViewUser.jsx deleted file mode 100644 index 72341f5cda9f..000000000000 --- a/src/views/identity/administration/ViewUser.jsx +++ /dev/null @@ -1,111 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { CSpinner } from '@coreui/react' -import PropTypes from 'prop-types' -import useQuery from 'src/hooks/useQuery' -import { useDispatch } from 'react-redux' -import { CippPage, CippMasonry, CippMasonryItem } from 'src/components/layout' -import { ModalService } from 'src/components/utilities' -import UserDevices from 'src/views/identity/administration/UserDevices' -import UserDetails from 'src/views/identity/administration/UserDetails' -import UserLastLoginDetails from 'src/views/identity/administration/UserLastLoginDetails' -import UserCAPs from 'src/views/identity/administration/UserCAPs' -import UserActions from 'src/views/identity/administration/UserActions' -import UserOneDriveUsage from 'src/views/identity/administration/UserOneDriveUsage' -import User365Management from 'src/views/identity/administration/User365Management' -import UserEmailDetails from 'src/views/identity/administration/UserEmailDetails' -import UserEmailUsage from 'src/views/identity/administration/UserEmailUsage' -import UserEmailSettings from 'src/views/identity/administration/UserEmailSettings' -import UserEmailPermissions from 'src/views/identity/administration/UserEmailPermissions' -import UserGroups from 'src/views/identity/administration/UserGroups' -import UserSigninLogs from 'src/views/identity/administration/UserSigninLogs' -import UserMailboxRuleList from 'src/views/identity/administration/UserMailboxRuleList' -import { useListUserQuery } from 'src/store/api/users' - -const ViewUser = (props) => { - const dispatch = useDispatch() - let query = useQuery() - const userId = query.get('userId') - const tenantDomain = query.get('tenantDomain') - const userEmail = query.get('userEmail') - const [queryError, setQueryError] = useState(false) - - const { - data: user = {}, - isFetching: userFetching, - error: userError, - } = useListUserQuery({ tenantDomain, userId }) - - useEffect(() => { - if (!userId || !tenantDomain) { - ModalService.open({ - body: 'Error invalid request, could not load requested user.', - title: 'Invalid Request', - }) - setQueryError(true) - } - }, [tenantDomain, userId, dispatch]) - - return ( - - {userFetching && } - {!userFetching && userError && Error loading user} - {!queryError && !userFetching && ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - )} - - ) -} - -ViewUser.propTypes = { - params: PropTypes.object, - location: PropTypes.object, -} - -export default ViewUser diff --git a/src/views/tenant/backup/CreateBackup.jsx b/src/views/tenant/backup/CreateBackup.jsx deleted file mode 100644 index faec25e074a3..000000000000 --- a/src/views/tenant/backup/CreateBackup.jsx +++ /dev/null @@ -1,268 +0,0 @@ -import React, { useState } from 'react' -import { CButton, CCallout, CCol, CForm, CRow, CSpinner, CTooltip } from '@coreui/react' -import { useSelector } from 'react-redux' -import { Field, Form } from 'react-final-form' -import { RFFCFormSwitch } from 'src/components/forms' -import { - useGenericGetRequestQuery, - useLazyGenericGetRequestQuery, - useLazyGenericPostRequestQuery, -} from 'src/store/api/app' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faCircleNotch, faEdit, faEye } from '@fortawesome/free-solid-svg-icons' -import { CippPage, CippPageList } from 'src/components/layout' -import 'react-datepicker/dist/react-datepicker.css' -import { ModalService, TenantSelector } from 'src/components/utilities' -import arrayMutators from 'final-form-arrays' -import { useListConditionalAccessPoliciesQuery } from 'src/store/api/tenants' -import CippButtonCard from 'src/components/contentcards/CippButtonCard' -import { CellTip, cellGenericFormatter } from 'src/components/tables/CellGenericFormat' -import { cellBadgeFormatter, cellDateFormatter } from 'src/components/tables' - -const CreateBackup = () => { - const [ExecuteGetRequest, getResults] = useLazyGenericGetRequestQuery() - const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) - const [refreshState, setRefreshState] = useState(false) - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - - const onSubmit = (values) => { - const startDate = new Date() - startDate.setHours(0, 0, 0, 0) - const unixTime = Math.floor(startDate.getTime() / 1000) - 45 - const shippedValues = { - TenantFilter: tenantDomain, - Name: `CIPP Backup ${tenantDomain}`, - Command: { value: `New-CIPPBackup` }, - Parameters: { backupType: 'Scheduled', ScheduledBackupValues: { ...values } }, - ScheduledTime: unixTime, - Recurrence: { value: '1d' }, - } - genericPostRequest({ - path: '/api/AddScheduledItem?hidden=true&DisallowDuplicateName=true', - values: shippedValues, - }).then((res) => { - setRefreshState(res.requestId) - }) - } - const Offcanvas = (row, rowIndex, formatExtraData) => { - const handleDeleteSchedule = (apiurl, message) => { - ModalService.confirm({ - title: 'Confirm', - body:
    {message}
    , - onConfirm: () => - ExecuteGetRequest({ path: apiurl }).then((res) => { - setRefreshState(res.requestId) - }), - confirmLabel: 'Continue', - cancelLabel: 'Cancel', - }) - } - let jsonResults - try { - jsonResults = JSON.parse(row.Results) - } catch (error) { - jsonResults = row.Results - } - - return ( - <> - - - handleDeleteSchedule( - `/api/RemoveScheduledItem?&ID=${row.RowKey}`, - 'Do you want to delete this job?', - ) - } - size="sm" - variant="ghost" - color="danger" - > - - - - - ) - } - const columns = [ - { - name: 'Tenant', - selector: (row) => row['Tenant'], - sortable: true, - cell: (row) => CellTip(row['Tenant']), - exportSelector: 'Tenant', - }, - { - name: 'Task State', - selector: (row) => row['TaskState'], - sortable: true, - cell: cellBadgeFormatter(), - exportSelector: 'TaskState', - }, - { - name: 'Last executed time', - selector: (row) => row['ExecutedTime'], - sortable: true, - cell: cellDateFormatter({ format: 'relative' }), - exportSelector: 'ExecutedTime', - }, - { - name: 'Actions', - cell: Offcanvas, - maxWidth: '100px', - }, - ] - - const { - data: users = [], - isFetching: usersIsFetching, - error: usersError, - } = useGenericGetRequestQuery({ - path: '/api/ListGraphRequest', - params: { - TenantFilter: tenantDomain, - Endpoint: 'users', - $select: 'id,displayName,userPrincipalName,accountEnabled', - $count: true, - $top: 999, - $orderby: 'displayName', - }, - }) - - const { - data: caPolicies = [], - isFetching: caIsFetching, - error: caError, - } = useListConditionalAccessPoliciesQuery({ domain: tenantDomain }) - - return ( - - <> - - - - Create Backup Schedule - {postResults.isFetching && ( - - )} - - } - title="Add backup Schedule" - icon={faEdit} - > - { - return ( - -

    - Backups are stored in CIPPs storage and can be restored using the CIPP - Restore Backup Wizard. Backups run daily or on demand by clicking the backup - now button. -

    - - - - {(props) => } - - - -
    -
    - - -

    Identity

    - - -

    Conditional Access

    - -

    Intune

    - - - -

    CIPP

    - - - -
    -
    - {postResults.isSuccess && ( - -
  • {postResults.data.Results}
  • -
    - )} - {getResults.isFetching && ( - - Loading - - )} - {getResults.isSuccess && ( - {getResults.data?.Results} - )} - {getResults.isError && ( - - Could not connect to API: {getResults.error.message} - - )} -
    - ) - }} - /> -
    -
    - - - - -
    - -
    - ) -} - -export default CreateBackup diff --git a/src/views/tenant/backup/RestoreBackup.jsx b/src/views/tenant/backup/RestoreBackup.jsx deleted file mode 100644 index e2d3d1ec9a61..000000000000 --- a/src/views/tenant/backup/RestoreBackup.jsx +++ /dev/null @@ -1,239 +0,0 @@ -import React, { useState } from 'react' -import { CCallout, CCol, CListGroup, CListGroupItem, CRow, CSpinner, CTooltip } from '@coreui/react' -import { Field, FormSpy } from 'react-final-form' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { faExclamationTriangle, faTimes, faCheck } from '@fortawesome/free-solid-svg-icons' -import { useSelector } from 'react-redux' -import { CippCallout, CippWizard } from 'src/components/layout' -import PropTypes from 'prop-types' -import { Condition, RFFCFormSwitch, RFFSelectSearch } from 'src/components/forms' -import { TenantSelector } from 'src/components/utilities' -import { useGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' -import 'react-datepicker/dist/react-datepicker.css' - -const Error = ({ name }) => ( - - touched && error ? ( - - - {error} - - ) : null - } - /> -) - -Error.propTypes = { - name: PropTypes.string.isRequired, -} - -const OffboardingWizard = () => { - const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) - const { - data: currentBackups = [], - isFetching: currentBackupsIsFetching, - error: currentBackupsError, - } = useGenericGetRequestQuery({ - path: `/api/ExecListBackup?TenantFilter=${tenantDomain}&Type=Scheduled`, - }) - - const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery() - - const handleSubmit = (values) => { - const startDate = new Date() - const unixTime = Math.floor(startDate.getTime() / 1000) - 45 - const shippedValues = { - TenantFilter: tenantDomain, - Name: `CIPP Restore ${tenantDomain}`, - Command: { value: `New-CIPPRestore` }, - Parameters: { Type: 'Scheduled', RestoreValues: { ...values } }, - ScheduledTime: unixTime, - PostExecution: { - Webhook: values.webhook, - Email: values.email, - PSA: values.psa, - }, - } - genericPostRequest({ path: '/api/AddScheduledItem', values: shippedValues }).then((res) => {}) - } - - return ( - - -
    -

    Step 1

    -
    Choose a tenant
    -
    -
    - {(props) => } -
    -
    - -
    -

    Step 2

    -
    Select the backup to restore
    -
    -
    -
    - ({ - value: backup.RowKey, - name: `${backup.RowKey}`, - }))} - placeholder={!currentBackupsIsFetching ? 'Select a backup' : 'Loading...'} - name="backup" - /> - {currentBackupsError && Failed to load list of Current Backups} -
    -
    -
    - -
    -

    Step 3

    -
    Choose restore options
    -
    -
    -
    - - -

    Identity

    - - -

    Conditional Access

    - -
    - -

    Intune

    - - - -

    CIPP

    - - - -
    -
    -
    - - - - - - -
    Warning
    -

    - Overwriting existing entries will remove the current settings and replace them - with the backup settings. If you have selected to restore users, all properties - will be overwritten with the backup settings. -

    - -

    - To prevent and skip already existing entries, deselect the setting from the list - above, or disable overwrite. -

    -
    -
    -
    -
    - - - - - - - - -
    -
    -
    - -
    -

    Step 4

    -
    Confirm and apply
    -
    -
    -
    - {postResults.isFetching && ( - - Loading - - )} - {postResults.isSuccess && {postResults.data.Results}} - {!postResults.isSuccess && ( - - {/* eslint-disable react/prop-types */} - {(props) => ( - <> - - - - -
    Selected Tenant:
    - {tenantDomain} -
    - -
    Selected Backup:
    - {props.values.backup.value} -
    -
    -
    -
    -
    - - - - - Overwrite existing configuration - - - - Send results to Webhook - - - - Send results to E-Mail - - - - Send results to PSA - - - - - - - )} -
    - )} -
    -
    -
    -
    - ) -} - -export default OffboardingWizard diff --git a/src/views/tenant/standards/BestPracticeAnalyser.jsx b/src/views/tenant/standards/BestPracticeAnalyser.jsx deleted file mode 100644 index a0e1cb00b101..000000000000 --- a/src/views/tenant/standards/BestPracticeAnalyser.jsx +++ /dev/null @@ -1,471 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { - CBadge, - CButton, - CCard, - CCardBody, - CCardHeader, - CCardText, - CCardTitle, - CCol, - CCollapse, - CForm, - CRow, - CSpinner, -} from '@coreui/react' -import useQuery from 'src/hooks/useQuery' -import PropTypes from 'prop-types' -import { Field, Form, FormSpy } from 'react-final-form' -import { RFFCFormInput, RFFCFormSelect } from 'src/components/forms' -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' -import { - faChevronRight, - faChevronDown, - faSearch, - faExclamationTriangle, - faCheck, - faCross, - faTimes, - faSync, - faExclamation, -} from '@fortawesome/free-solid-svg-icons' -import { CippTable, cellBooleanFormatter } from 'src/components/tables' -import { useSelector } from 'react-redux' -import { useNavigate } from 'react-router-dom' -import { CippPage } from 'src/components/layout/CippPage' -import { useGenericGetRequestQuery, useLazyGenericGetRequestQuery } from 'src/store/api/app' -import { OnChange } from 'react-final-form-listeners' -import { queryString } from 'src/helpers' -import { CellTip, cellGenericFormatter } from 'src/components/tables/CellGenericFormat' -import { useExecBestPracticeAnalyserMutation } from 'src/store/api/reports' -import { ModalService } from 'src/components/utilities' -import { cellTableFormatter } from 'src/components/tables/CellTable' -import { cellMathFormatter } from 'src/components/tables/CellMathFormatter' - -const RefreshAction = ({ singleTenant = false, refreshFunction = null }) => { - const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName) - const [execBestPracticeAnalyser, { isLoading, isSuccess, error }] = - useLazyGenericGetRequestQuery() - var params = {} - if (singleTenant) { - params['TenantFilter'] = tenantDomain - } - const showModal = () => - ModalService.confirm({ - body: ( -
    - Are you sure you want to force the Best Practice Analysis to run? This will slow down - normal usage considerably.
    - Please note: this runs at 3:00 AM UTC automatically every day. -
    - ), - onConfirm: () => - execBestPracticeAnalyser({ - path: 'api/BestPracticeAnalyser_OrchestrationStarter', - params: params, - }), - }) - - return ( - <> - - {isLoading && } - {error && } - {isSuccess && } - {(singleTenant && 'Refresh Tenant Data') || 'Force Refresh All Data'} - - {refreshFunction !== null && ( - { - refreshFunction((Math.random() + 1).toString(36).substring(7)) - }} - className="m-1" - size="sm" - > - - - )} - - ) -} -RefreshAction.propTypes = { - singleTenant: PropTypes.bool, - refreshFunction: PropTypes.func, -} - -const getsubcolumns = (data) => { - const flatObj = data && data.length > 0 ? data : [{ data: 'No Data Found' }] - const QueryColumns = [] - - if (flatObj[0]) { - Object.keys(flatObj[0]).map((key) => { - QueryColumns.push({ - name: key, - selector: (row) => row[key], // Accessing the property using the key - sortable: true, - exportSelector: key, - cell: cellGenericFormatter(), - }) - }) - } - return QueryColumns -} -const getNestedValue = (obj, path) => { - if (!path) return undefined - return path.split('.').reduce((acc, part) => { - // Check for an array marker - const match = part.match(/(.*?)\[(\d+)\]/) - if (match) { - const propName = match[1] - const index = parseInt(match[2], 10) - return acc[propName] ? acc[propName][index] : undefined - } - // If no array marker, simply return the property value - return acc ? acc[part] : undefined - }, obj) -} -const BestPracticeAnalyser = () => { - const [reportTemplate, setReportTemplate] = useState('CIPP Best Practices v1.0 - Table view') - const [refreshValue, setRefreshValue] = useState('') - const { data: templates = [], isLoading: templatesfetch } = useGenericGetRequestQuery({ - path: 'api/listBPATemplates', - }) - let navigate = useNavigate() - const tenant = useSelector((state) => state.app.currentTenant) - let query = useQuery() - const Report = query.get('Report') - const SearchNow = query.get('SearchNow') - const [visibleA, setVisibleA] = useState(true) - const handleSubmit = async (values) => { - setVisibleA(false) - setReportTemplate(values.reportTemplate) - const shippedValues = { - SearchNow: true, - Report: reportTemplate, - tenantFilter: tenant.customerId, - random: (Math.random() + 1).toString(36).substring(7), - } - var queryString = Object.keys(shippedValues) - .map((key) => key + '=' + shippedValues[key]) - .join('&') - - navigate(`?${queryString}`) - } - const [execGraphRequest, graphrequest] = useLazyGenericGetRequestQuery() - const QueryColumns = { - set: false, - data: [ - { - name: 'Tenant', - selector: (row) => row['Tenant'], - sortable: true, - exportSelector: 'Tenant', - cell: (row) => CellTip(row['Tenant']), - }, - ], - } - const normalizeTableData = (value) => { - if (Array.isArray(value)) { - return value - } else if (value === null) { - return null - } else if (typeof value === 'object') { - return [value] - } else { - return value - } - } - if (graphrequest.isSuccess) { - if (graphrequest.data.length === 0) { - graphrequest.data = [{ data: 'No Data Found' }] - } - const flatObj = graphrequest.data.Columns.length >= 0 ? graphrequest.data.Columns : [] - - flatObj.map((col) => { - if (col === null) { - return - } - // Determine the cell selector based on the 'formatter' property - let cellSelector - if (col.formatter) { - switch (col.formatter) { - case 'bool': - cellSelector = cellBooleanFormatter() - break - case 'reverseBool': - cellSelector = cellBooleanFormatter({ reverse: true }) - break - case 'warnBool': - cellSelector = cellBooleanFormatter({ warning: true }) - break - case 'table': - cellSelector = cellTableFormatter(col.value) - break - case 'math': - cellSelector = cellMathFormatter({ col }) - break - default: - cellSelector = cellGenericFormatter() - break - } - } else { - cellSelector = cellGenericFormatter() - } - - QueryColumns.data.push({ - name: col.name, - selector: (row) => getNestedValue(row, col.value), - sortable: true, - exportSelector: col.value.split('.').join('/'), - cell: cellSelector, // Use the determined cell selector - }) - }) - - QueryColumns.set = true - } - - useEffect(() => { - execGraphRequest({ - path: 'api/listBPA', - params: { - tenantFilter: tenant.customerId, - Report: reportTemplate, - SearchNow: SearchNow, - refresh: refreshValue, - }, - }) - }, [ - Report, - execGraphRequest, - tenant.defaultDomainName, - query, - refreshValue, - reportTemplate, - tenant.customerId, - SearchNow, - ]) - return ( - <> - - - - - - Report Settings - setVisibleA(!visibleA)} - > - - - - - - - - - - { - return ( - - - - ({ - label: template.Name, - value: template.Name, - }))} - /> - - {templatesfetch && } - - - - - - - Retrieve Report - - - - - ) - }} - /> - - - - - -
    - - - - {graphrequest.isUninitialized && Choose a BPA Report to get started.} - {graphrequest.isFetching && } - {graphrequest.isSuccess && QueryColumns.set && graphrequest.data.Style == 'Table' && ( - - - Best Practice Report - - - , - ], - }} - /> - - - )} - {graphrequest.isSuccess && QueryColumns.set && graphrequest.data.Style == 'Tenant' && ( - <> - -
    - -
    - {graphrequest.data?.Data[0] && - Object.keys(graphrequest.data.Data[0]).length === 0 ? ( - - - Best Practice Report - - - - No Data Found for this tenant. Please refresh the tenant data. - - - - ) : ( - graphrequest.data.Columns.map((info, idx) => ( - - - - {info.name} - - - - {info.formatter === 'bool' && ( - - - {graphrequest.data.Data[0][info.value] ? 'Yes' : 'No'} - - )} - {info.formatter === 'reverseBool' && ( - - - {graphrequest.data.Data[0][info.value] ? 'No' : 'Yes'} - - )} - {info.formatter === 'warnBool' && ( - - - {graphrequest.data.Data[0][info.value] ? 'Yes' : 'No'} - - )} - - {info.formatter === 'table' && ( - <> - - - )} - - {info.formatter === 'number' && ( -

    - {getNestedValue(graphrequest.data.Data[0], info.value)} -

    - )} -
    - - {info.desc} - -
    -
    -
    - )) - )} -
    - - )} -
    -
    -
    - - ) -} - -export default BestPracticeAnalyser diff --git a/version_latest.txt b/version_latest.txt index 4c77920fd2c5..5e39348ef037 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -6.4.1 +99.99.99 \ No newline at end of file