From 4456db2b4fad9054ef17095367b87a8482435b37 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 9 Jun 2023 17:24:27 -0400 Subject: [PATCH 01/14] User License Fix Fix TimeAgo errors --- src/App.js | 3 +++ src/components/tables/CellDate.js | 3 --- src/components/tables/CippTable.js | 8 +++++++- src/components/utilities/CippActionsOffcanvas.js | 4 ---- src/views/home/Home.js | 4 ---- src/views/identity/administration/Users.js | 3 ++- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/App.js b/src/App.js index 1a632b4d87dd..3ed5f1f12ae4 100644 --- a/src/App.js +++ b/src/App.js @@ -6,6 +6,9 @@ import routes from 'src/routes' import { Helmet } from 'react-helmet' import adminRoutes from './adminRoutes' import Skeleton from 'react-loading-skeleton' +import TimeAgo from 'javascript-time-ago' +import en from 'javascript-time-ago/locale/en.json' +TimeAgo.addDefaultLocale(en) // Containers const DefaultLayout = React.lazy(() => import('./layout/DefaultLayout')) diff --git a/src/components/tables/CellDate.js b/src/components/tables/CellDate.js index c3934ffcb83d..9806f137c290 100644 --- a/src/components/tables/CellDate.js +++ b/src/components/tables/CellDate.js @@ -2,9 +2,6 @@ import React from 'react' import moment from 'moment' import PropTypes from 'prop-types' import { CTooltip } from '@coreui/react' -import TimeAgo from 'javascript-time-ago' -import en from 'javascript-time-ago/locale/en.json' -TimeAgo.addDefaultLocale(en) import ReactTimeAgo from 'react-time-ago' /** diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 372bad9eea18..71d6b5432ce9 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -329,8 +329,10 @@ export default function CippTable({ if (!disablePDFExport || !disableCSVExport) { const keys = [] + const exportFormatted = {} columns.map((col) => { if (col.exportSelector) keys.push(col.exportSelector) + if (col.exportFormatted) exportFormatted[col.exportSelector] = col.exportFormatted return null }) @@ -348,7 +350,11 @@ export default function CippTable({ acc[curr] = 'n/a' } } else { - acc[curr] = obj[curr] + if (typeof exportFormatted[curr] === 'function') { + acc[curr] = exportFormatted[curr]({ cell: obj[curr] }) + } else { + acc[curr] = obj[curr] + } } return acc }, {}), diff --git a/src/components/utilities/CippActionsOffcanvas.js b/src/components/utilities/CippActionsOffcanvas.js index b24aa1a28c12..bdf28fae5cff 100644 --- a/src/components/utilities/CippActionsOffcanvas.js +++ b/src/components/utilities/CippActionsOffcanvas.js @@ -19,10 +19,6 @@ import { CippOffcanvasTable } from 'src/components/tables' import { useLazyGenericGetRequestQuery, useLazyGenericPostRequestQuery } from 'src/store/api/app' import { Link, useNavigate } from 'react-router-dom' import { stringCamelCase } from 'src/components/utilities/CippCamelCase' -import TimeAgo from 'javascript-time-ago' - -import en from 'javascript-time-ago/locale/en.json' -TimeAgo.addDefaultLocale(en) import ReactTimeAgo from 'react-time-ago' export default function CippActionsOffcanvas(props) { diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 1ddbf776a400..630577a4a73a 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -23,11 +23,7 @@ import Skeleton from 'react-loading-skeleton' import { UniversalSearch } from 'src/components/utilities/UniversalSearch' import { ActionContentCard } from 'src/components/contentcards' import { useSelector } from 'react-redux' -import TimeAgo from 'javascript-time-ago' import allStandardsList from 'src/data/standards' - -import en from 'javascript-time-ago/locale/en.json' -TimeAgo.addDefaultLocale(en) import ReactTimeAgo from 'react-time-ago' const Home = () => { diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index eb1bf03c1813..5b03cc3323d2 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -8,7 +8,7 @@ import { cellBooleanFormatter, CellTip } from 'src/components/tables' import { CippPageList } from 'src/components/layout' import { TitleButton } from 'src/components/buttons' import { CippActionsOffcanvas } from 'src/components/utilities' -import { cellLicenseFormatter } from 'src/components/tables/CellLicense' +import { cellLicenseFormatter, CellLicense } from 'src/components/tables/CellLicense' import M365Licenses from 'src/data/M365Licenses' const Offcanvas = (row, rowIndex, formatExtraData) => { @@ -276,6 +276,7 @@ const Users = (row) => { name: 'Licenses', selector: (row) => row['assignedLicenses'], exportSelector: 'assignedLicenses', + exportFormatted: CellLicense, cell: cellLicenseFormatter(), sortable: true, grow: 5, From 08ed85747847ed1edff77a491fa2d3a21a56a682 Mon Sep 17 00:00:00 2001 From: John Duprey Date: Fri, 9 Jun 2023 21:22:11 -0400 Subject: [PATCH 02/14] nested property export --- src/components/tables/CippTable.js | 23 ++++++++++++---------- src/views/identity/administration/Users.js | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/tables/CippTable.js b/src/components/tables/CippTable.js index 71d6b5432ce9..c3cc3f0665f2 100644 --- a/src/components/tables/CippTable.js +++ b/src/components/tables/CippTable.js @@ -329,10 +329,10 @@ export default function CippTable({ if (!disablePDFExport || !disableCSVExport) { const keys = [] - const exportFormatted = {} + const exportFormatter = {} columns.map((col) => { if (col.exportSelector) keys.push(col.exportSelector) - if (col.exportFormatted) exportFormatted[col.exportSelector] = col.exportFormatted + if (col.exportFormatter) exportFormatter[col.exportSelector] = col.exportFormatter return null }) @@ -342,16 +342,19 @@ export default function CippTable({ keys.reduce((acc, curr) => { const key = curr.split('/') if (key.length > 1) { - const parent = key[0] - const subkey = key[1] - if (obj[parent] !== null && obj[parent][subkey] !== null) { - acc[curr] = obj[parent][subkey] - } else { - acc[curr] = 'n/a' + var property = obj + for (var x = 0; x < key.length; x++) { + if (property[key[x]] !== null) { + property = property[key[x]] + } else { + property = 'n/a' + break + } } + acc[curr] = property } else { - if (typeof exportFormatted[curr] === 'function') { - acc[curr] = exportFormatted[curr]({ cell: obj[curr] }) + if (typeof exportFormatter[curr] === 'function') { + acc[curr] = exportFormatter[curr]({ cell: obj[curr] }) } else { acc[curr] = obj[curr] } diff --git a/src/views/identity/administration/Users.js b/src/views/identity/administration/Users.js index 5b03cc3323d2..7cf8eda1368b 100644 --- a/src/views/identity/administration/Users.js +++ b/src/views/identity/administration/Users.js @@ -276,7 +276,7 @@ const Users = (row) => { name: 'Licenses', selector: (row) => row['assignedLicenses'], exportSelector: 'assignedLicenses', - exportFormatted: CellLicense, + exportFormatter: CellLicense, cell: cellLicenseFormatter(), sortable: true, grow: 5, From d51139eb7fab75b7c08ad9378f640d2801a41d6d Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Wed, 14 Jun 2023 22:31:55 +0200 Subject: [PATCH 03/14] Replaced Endpoint portal link with Intune --- src/views/tenant/administration/Tenants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/administration/Tenants.js b/src/views/tenant/administration/Tenants.js index fe047247bde5..f3431c1a8eb7 100644 --- a/src/views/tenant/administration/Tenants.js +++ b/src/views/tenant/administration/Tenants.js @@ -275,7 +275,7 @@ const TenantsList = () => { center: true, cell: (row) => ( Date: Fri, 16 Jun 2023 09:40:13 +0200 Subject: [PATCH 04/14] Footer spacing fix --- src/components/layout/AppFooter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/layout/AppFooter.js b/src/components/layout/AppFooter.js index 13e1c174efb5..63975a2c9314 100644 --- a/src/components/layout/AppFooter.js +++ b/src/components/layout/AppFooter.js @@ -16,7 +16,7 @@ const AppFooter = () => { {' '} - + {' '} From 4520c75ca63928a02b64952faae9364f73ca246f Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Sun, 18 Jun 2023 05:21:07 +0200 Subject: [PATCH 05/14] Added List Devices link to dashboard --- src/views/home/Home.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 630577a4a73a..78fd7bbbd459 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -131,6 +131,11 @@ const Home = () => { link: `/identity/administration/groups?customerId=${currentTenant.customerId}`, icon: faUsers, }, + { + label: 'List Devices', + link: `/endpoint/reports/devices?customerId=${currentTenant.customerId}`, + icon: faLaptopCode, + }, { label: 'Create User', link: `/identity/administration/users/add?customerId=${currentTenant.customerId}`, From fe6698884ea9d3c4ea277771232fddffa5c5fb0f Mon Sep 17 00:00:00 2001 From: Roel van der Wegen Date: Fri, 23 Jun 2023 09:25:33 +0200 Subject: [PATCH 06/14] Add Sharepoint Quota to dashboard --- src/views/home/Home.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/views/home/Home.js b/src/views/home/Home.js index 78fd7bbbd459..957c36d4e933 100644 --- a/src/views/home/Home.js +++ b/src/views/home/Home.js @@ -48,6 +48,16 @@ const Home = () => { params: { tenantFilter: currentTenant.defaultDomainName }, }) + const { + data: sharepoint, + isLoading: isLoadingSPQuota, + isSuccess: issuccessSPQuota, + isFetching: isFetchingSPQuota, + } = useGenericGetRequestQuery({ + path: '/api/ListSharepointQuota', + params: { tenantFilter: currentTenant.defaultDomainName }, + }) + const { data: standards, isLoading: isLoadingStandards, @@ -272,6 +282,11 @@ const Home = () => { ))} + +

Sharepoint Quota

+ {(isLoadingSPQuota || isFetchingSPQuota) && } + {sharepoint && !isFetchingSPQuota && sharepoint?.Dashboard} +

Applied Standards

{(isLoadingStandards || isFetchingStandards) && } From 8d9c7b2555fa88ba7c13b536c4230db03cd70d51 Mon Sep 17 00:00:00 2001 From: Brandon Martinez Date: Mon, 26 Jun 2023 08:23:27 -0700 Subject: [PATCH 07/14] Updated Intune wipe actions --- src/views/endpoint/intune/Devices.js | 31 +++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src/views/endpoint/intune/Devices.js b/src/views/endpoint/intune/Devices.js index 06d28a18c558..b49962591e96 100644 --- a/src/views/endpoint/intune/Devices.js +++ b/src/views/endpoint/intune/Devices.js @@ -132,18 +132,39 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { color: 'danger', modal: true, modalType: 'POST', - modalBody: { keepUserData: 'false', keepEnrollmentData: 'true' }, + modalBody: { keepUserData: false, keepEnrollmentData: true }, + modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, + modalCheckbox: 'Remove enrollment data', + modalMessage: 'Are you sure you want to wipe this device?', + }, + { + label: 'Wipe Device, remove enrollment data', + color: 'danger', + modal: true, + modalType: 'POST', + modalBody: { keepUserData: false, keepEnrollmentData: false }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, - modalMessage: 'Are you sure you want to wipe this device', + modalMessage: 'Are you sure you want to wipe device, AND remove enrollment data?', }, { - label: 'Wipe Device and continue at powerloss', + label: 'Wipe Device, keep enrollment data, and continue at powerloss', + color: 'danger', + modal: true, + modalType: 'POST', + modalBody: { keepEnrollmentData: true, keepUserData: false, useProtectedWipe: true }, + modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, + modalMessage: + 'Are you sure you want to wipe this device? This will keep enrollment data. Continuing at powerloss may cause boot issues if wipe is interrupted.', + }, + { + label: 'Wipe Device, remove enrollment data, and continue at powerloss', color: 'danger', modal: true, modalType: 'POST', modalBody: { keepEnrollmentData: false, keepUserData: false, useProtectedWipe: true }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, - modalMessage: 'Are you sure you want to wipe this device', + modalMessage: + 'Are you sure you want to wipe this device? This will also remove enrollment data. Continuing at powerloss may cause boot issues if wipe is interrupted.', }, { label: 'Autopilot Reset', @@ -152,7 +173,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { modalType: 'POST', modalBody: { keepUserData: 'false', keepEnrollmentData: 'true' }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=wipe`, - modalMessage: 'Are you sure you want to wipe this device', + modalMessage: 'Are you sure you want to Autopilot Reset this device?', }, { label: 'Retire device', From fe7fe8c2a017042b80e30fcdbe4af421b87a249b Mon Sep 17 00:00:00 2001 From: John Duprey Date: Wed, 28 Jun 2023 16:45:20 -0400 Subject: [PATCH 08/14] GDAP Relationship tweak Add roles to extended info --- src/data/GDAPRoles.json | 706 ++++++++++++++++++ .../administration/ListGDAPRelationships.js | 18 +- 2 files changed, 722 insertions(+), 2 deletions(-) create mode 100644 src/data/GDAPRoles.json diff --git a/src/data/GDAPRoles.json b/src/data/GDAPRoles.json new file mode 100644 index 000000000000..adc846cf3028 --- /dev/null +++ b/src/data/GDAPRoles.json @@ -0,0 +1,706 @@ +[ + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of app registrations and enterprise apps.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Application Administrator", + "ObjectId": "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3" + }, + { + "ExtensionData": {}, + "Description": "Can create application registrations independent of the \u0027Users can register applications\u0027 setting.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Application Developer", + "ObjectId": "cf1c38e5-3621-4004-a7cb-879624dced7c" + }, + { + "ExtensionData": {}, + "Description": "Can create attack payloads that an administrator can initiate later.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attack Payload Author", + "ObjectId": "9c6df0f2-1e7c-4dc3-b195-66dfbd24aa8f" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of attack simulation campaigns.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attack Simulation Administrator", + "ObjectId": "c430b396-e693-46cc-96f3-db01bf8bb62a" + }, + { + "ExtensionData": {}, + "Description": "Assign custom security attribute keys and values to supported Azure AD objects.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attribute Assignment Administrator", + "ObjectId": "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d" + }, + { + "ExtensionData": {}, + "Description": "Read custom security attribute keys and values for supported Azure AD objects.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attribute Assignment Reader", + "ObjectId": "ffd52fa5-98dc-465c-991d-fc073eb59f8f" + }, + { + "ExtensionData": {}, + "Description": "Define and manage the definition of custom security attributes.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attribute Definition Administrator", + "ObjectId": "8424c6f0-a189-499e-bbd0-26c1753c96d4" + }, + { + "ExtensionData": {}, + "Description": "Read the definition of custom security attributes.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Attribute Definition Reader", + "ObjectId": "1d336d2c-4ae8-42ef-9711-b3604ce3fc2c" + }, + { + "ExtensionData": {}, + "Description": "Allowed to view, set and reset authentication method information for any non-admin user.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Authentication Administrator", + "ObjectId": "c4e39bd9-1100-46d3-8c65-fb160da0071f" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage the authentication methods policy, tenant-wide MFA settings, password protection policy, and verifiable credentials.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Authentication Policy Administrator", + "ObjectId": "0526716b-113d-4c15-b2c8-68e3c22b9f80" + }, + { + "ExtensionData": {}, + "Description": "Users assigned to this role are added to the local administrators group on Azure AD-joined devices.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Azure AD Joined Device Local Administrator", + "ObjectId": "9f06204d-73c1-4d4c-880a-6edb90606fd8" + }, + { + "ExtensionData": {}, + "Description": "Can manage Azure DevOps organization policy and settings.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Azure DevOps Administrator", + "ObjectId": "e3973bdf-4987-49ae-837a-ba8e231c7286" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Azure Information Protection product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Azure Information Protection Administrator", + "ObjectId": "7495fdc4-34c4-4d15-a289-98788ce399fd" + }, + { + "ExtensionData": {}, + "Description": "Can manage secrets for federation and encryption in the Identity Experience Framework (IEF).", + "IsEnabled": true, + "IsSystem": true, + "Name": "B2C IEF Keyset Administrator", + "ObjectId": "aaf43236-0c0d-4d5f-883a-6955382ac081" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage trust framework policies in the Identity Experience Framework (IEF).", + "IsEnabled": true, + "IsSystem": true, + "Name": "B2C IEF Policy Administrator", + "ObjectId": "3edaf663-341e-4475-9f94-5c398ef6c070" + }, + { + "ExtensionData": {}, + "Description": "Can perform common billing related tasks like updating payment information.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Billing Administrator", + "ObjectId": "b0f54661-2d74-4c50-afa3-1ec803f12efe" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Cloud App Security product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Cloud App Security Administrator", + "ObjectId": "892c5842-a9a6-463a-8041-72aa08ca3cf6" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of app registrations and enterprise apps except App Proxy.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Cloud Application Administrator", + "ObjectId": "158c047a-c907-4556-b7ef-446551a6b5f7" + }, + { + "ExtensionData": {}, + "Description": "Full access to manage devices in Azure AD.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Cloud Device Administrator", + "ObjectId": "7698a772-787b-4ac8-901f-60d6b08affd2" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of Azure AD and Microsoft services that use Azure AD identities. This role was formerly known as Global Administrator.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Company Administrator", + "ObjectId": "62e90394-69f5-4237-9190-012177145e10" + }, + { + "ExtensionData": {}, + "Description": "Can read and manage compliance configuration and reports in Azure AD and Microsoft 365.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Compliance Administrator", + "ObjectId": "17315797-102d-40b4-93e0-432062caca18" + }, + { + "ExtensionData": {}, + "Description": "Creates and manages compliance content.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Compliance Data Administrator", + "ObjectId": "e6d1a23a-da11-4be4-9570-befc86d067a7" + }, + { + "ExtensionData": {}, + "Description": "Can manage Conditional Access capabilities.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Conditional Access Administrator", + "ObjectId": "b1be1c3e-b65d-4f19-8427-f6fa0d97feb9" + }, + { + "ExtensionData": {}, + "Description": "Can approve Microsoft support requests to access customer organizational data.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Customer LockBox Access Approver", + "ObjectId": "5c4f9dcd-47dc-4cf7-8c9a-9e4207cbfc91" + }, + { + "ExtensionData": {}, + "Description": "Can access and manage Desktop management tools and services.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Desktop Analytics Administrator", + "ObjectId": "38a96431-2bdf-4b4c-8b6e-5d3d8abac1a4" + }, + { + "ExtensionData": {}, + "Description": "Device Join", + "IsEnabled": true, + "IsSystem": true, + "Name": "Device Join", + "ObjectId": "9c094953-4995-41c8-84c8-3ebb9b32c93f" + }, + { + "ExtensionData": {}, + "Description": "Device Users", + "IsEnabled": true, + "IsSystem": true, + "Name": "Device Users", + "ObjectId": "d405c6df-0af8-4e3b-95e4-4d06e542189e" + }, + { + "ExtensionData": {}, + "Description": "Can read basic directory information. Commonly used to grant directory read access to applications and guests.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Directory Readers", + "ObjectId": "88d8e3e3-8f55-4a1e-953a-9b9898b8876b" + }, + { + "ExtensionData": {}, + "Description": "Only used by Azure AD Connect service.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Directory Synchronization Accounts", + "ObjectId": "d29b2b05-8046-44ba-8758-1e26182fcf32" + }, + { + "ExtensionData": {}, + "Description": "Can read and write basic directory information. For granting access to applications, not intended for users.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Directory Writers", + "ObjectId": "9360feb5-f418-4baa-8175-e2a00bac4301" + }, + { + "ExtensionData": {}, + "Description": "Can manage domain names in cloud and on-premises.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Domain Name Administrator", + "ObjectId": "8329153b-31d0-4727-b945-745eb3bc5f31" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Dynamics 365 product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Dynamics 365 Administrator", + "ObjectId": "44367163-eba1-44c3-98af-f5787879f96a" + }, + { + "ExtensionData": {}, + "Description": "Manage all aspects of Microsoft Edge.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Edge Administrator", + "ObjectId": "3f1acade-1e04-4fbc-9b69-f0302cd84aef" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Exchange product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Exchange Administrator", + "ObjectId": "29232cdf-9323-42fd-ade2-1d097af3e4de" + }, + { + "ExtensionData": {}, + "Description": "Can create or update Exchange Online recipients within the Exchange Online organization.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Exchange Recipient Administrator", + "ObjectId": "31392ffb-586c-42d1-9346-e59415a2cc4e" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of user flows.", + "IsEnabled": true, + "IsSystem": true, + "Name": "External ID User Flow Administrator", + "ObjectId": "6e591065-9bad-43ed-90f3-e9424366d2f0" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage the attribute schema available to all user flows.", + "IsEnabled": true, + "IsSystem": true, + "Name": "External ID User Flow Attribute Administrator", + "ObjectId": "0f971eea-41eb-4569-a71e-57bb8a3eff1e" + }, + { + "ExtensionData": {}, + "Description": "Can configure identity providers for use in direct federation.", + "IsEnabled": true, + "IsSystem": true, + "Name": "External Identity Provider Administrator", + "ObjectId": "be2f45a1-457d-42af-a067-6ec1fa63bc45" + }, + { + "ExtensionData": {}, + "Description": "Can read everything that a Global Administrator can, but not update anything.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Global Reader", + "ObjectId": "f2ef992c-3afb-46b9-b7cf-a126ee74c451" + }, + { + "ExtensionData": {}, + "Description": "Members of this role can create/manage groups, create/manage groups settings like naming and expiration policies, and view groups activity and audit reports.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Groups Administrator", + "ObjectId": "fdd7a751-b60b-444a-984c-02652fe8fa1c" + }, + { + "ExtensionData": {}, + "Description": "Can invite guest users independent of the \u0027members can invite guests\u0027 setting.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Guest Inviter", + "ObjectId": "95e79109-95c0-4d8e-aee3-d01accf2d47b" + }, + { + "ExtensionData": {}, + "Description": "Can reset passwords for non-administrators and Helpdesk Administrators.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Helpdesk Administrator", + "ObjectId": "729827e3-9c14-49f7-bb1b-9608f156bbb8" + }, + { + "ExtensionData": {}, + "Description": "Can manage AD to Azure AD cloud provisioning, Azure AD Connect, and federation settings.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Hybrid Identity Administrator", + "ObjectId": "8ac3fc64-6eca-42ea-9e69-59f4c7b60eb2" + }, + { + "ExtensionData": {}, + "Description": "Manage access using Azure AD for identity governance scenarios.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Identity Governance Administrator", + "ObjectId": "45d8d3c5-c802-45c6-b32a-1d70b5e1e86e" + }, + { + "ExtensionData": {}, + "Description": "Has administrative access in the Microsoft 365 Insights app.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Insights Administrator", + "ObjectId": "eb1f4a8d-243a-41f0-9fbd-c7cdf6c5ef7c" + }, + { + "ExtensionData": {}, + "Description": "Access the analytical capabilities in Microsoft Viva Insights and run custom queries.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Insights Analyst", + "ObjectId": "25df335f-86eb-4119-b717-0ff02de207e9" + }, + { + "ExtensionData": {}, + "Description": "Can view and share dashboards and insights via the M365 Insights app.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Insights Business Leader", + "ObjectId": "31e939ad-9672-4796-9c2e-873181342d2d" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Intune product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Intune Administrator", + "ObjectId": "3a2c62db-5318-420d-8d74-23affee5d9d5" + }, + { + "ExtensionData": {}, + "Description": "Can manage settings for Microsoft Kaizala.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Kaizala Administrator", + "ObjectId": "74ef975b-6605-40af-a5d2-b9539d836353" + }, + { + "ExtensionData": {}, + "Description": "Can configure knowledge, learning, and other intelligent features.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Knowledge Administrator", + "ObjectId": "b5a8dcf3-09d5-43a9-a639-8e29ef291470" + }, + { + "ExtensionData": {}, + "Description": "Has access to topic management dashboard and can manage content.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Knowledge Manager", + "ObjectId": "744ec460-397e-42ad-a462-8b3f9747a02c" + }, + { + "ExtensionData": {}, + "Description": "Can manage product licenses on users and groups.", + "IsEnabled": true, + "IsSystem": true, + "Name": "License Administrator", + "ObjectId": "4d6ac14f-3453-41d0-bef9-a3e0c569773a" + }, + { + "ExtensionData": {}, + "Description": "Create and manage all aspects of workflows and tasks associated with Lifecycle Workflows in Azure AD.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Lifecycle Workflows Administrator", + "ObjectId": "59d46f88-662b-457b-bceb-5c3809e5908f" + }, + { + "ExtensionData": {}, + "Description": "Can read security messages and updates in Office 365 Message Center only.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Message Center Privacy Reader", + "ObjectId": "ac16e43d-7b2d-40e0-ac05-243ff356ab5b" + }, + { + "ExtensionData": {}, + "Description": "Can read messages and updates for their organization in Office 365 Message Center only.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Message Center Reader", + "ObjectId": "790c1fb9-7f7d-4f88-86a1-ef1f95c05c1b" + }, + { + "ExtensionData": {}, + "Description": "Can manage network locations and review enterprise network design insights for Microsoft 365 Software as a Service applications.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Network Administrator", + "ObjectId": "d37c8bed-0711-4417-ba38-b4abe66ce4c2" + }, + { + "ExtensionData": {}, + "Description": "Can manage Office apps cloud services, including policy and settings management, and manage the ability to select, unselect and publish \u0027what\u0027s new\u0027 feature content to end-user\u0027s devices.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Office Apps Administrator", + "ObjectId": "2b745bdf-0803-4d80-aa65-822c4493daac" + }, + { + "ExtensionData": {}, + "Description": "Do not use - not intended for general use.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Partner Tier1 Support", + "ObjectId": "4ba39ca4-527c-499a-b93d-d9b492c50246" + }, + { + "ExtensionData": {}, + "Description": "Do not use - not intended for general use.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Partner Tier2 Support", + "ObjectId": "e00e864a-17c5-4a4b-9c06-f5b95a8d5bd8" + }, + { + "ExtensionData": {}, + "Description": "Can reset passwords for non-administrators and Password Administrators.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Password Administrator", + "ObjectId": "966707d0-3269-4727-9be2-8c3a10f19b9d" + }, + { + "ExtensionData": {}, + "Description": "Manage all aspects of Entra Permissions Management.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Permissions Management Administrator", + "ObjectId": "af78dc32-cf4d-46f9-ba4e-4428526346b5" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Power BI product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Power BI Administrator", + "ObjectId": "a9ea8996-122f-4c74-9520-8edcd192826c" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of Microsoft Dynamics 365, PowerApps and Microsoft Flow.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Power Platform Administrator", + "ObjectId": "11648597-926c-4cf3-9c36-bcebb0ba8dcc" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of printers and printer connectors.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Printer Administrator", + "ObjectId": "644ef478-e28f-4e28-b9dc-3fdde9aa0b1f" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of printers and printer connectors.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Printer Technician", + "ObjectId": "e8cef6f1-e4bd-4ea8-bc07-4b8d950f4477" + }, + { + "ExtensionData": {}, + "Description": "Allowed to view, set and reset authentication method information for any user (admin or non-admin).", + "IsEnabled": true, + "IsSystem": true, + "Name": "Privileged Authentication Administrator", + "ObjectId": "7be44c8a-adaf-4e2a-84d6-ab2649e08a13" + }, + { + "ExtensionData": {}, + "Description": "Can manage role assignments in Azure AD, and all aspects of Privileged Identity Management.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Privileged Role Administrator", + "ObjectId": "e8611ab8-c189-46e8-94e1-60213ab1f814" + }, + { + "ExtensionData": {}, + "Description": "Can read sign-in and audit reports.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Reports Reader", + "ObjectId": "4a5d8f65-41da-4de4-8968-e035b65339cf" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of Microsoft Search settings.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Search Administrator", + "ObjectId": "0964bb5e-9bdb-4d7b-ac29-58e794862a40" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage the editorial content such as bookmarks, Q and As, locations, floorplan.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Search Editor", + "ObjectId": "8835291a-918c-4fd7-a9ce-faa49f0cf7d9" + }, + { + "ExtensionData": {}, + "Description": "Security Administrator allows ability to read and manage security configuration and reports.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Security Administrator", + "ObjectId": "194ae4cb-b126-40b2-bd5b-6091b380977d" + }, + { + "ExtensionData": {}, + "Description": "Creates and manages security events.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Security Operator", + "ObjectId": "5f2222b1-57c3-48ba-8ad5-d4759f1fde6f" + }, + { + "ExtensionData": {}, + "Description": "Can read security information and reports in Azure AD and Office 365.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Security Reader", + "ObjectId": "5d6b6bb7-de71-4623-b4af-96380a352509" + }, + { + "ExtensionData": {}, + "Description": "Can read service health information and manage support tickets.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Service Support Administrator", + "ObjectId": "f023fd81-a637-4b56-95fd-791ac0226033" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the SharePoint service.", + "IsEnabled": true, + "IsSystem": true, + "Name": "SharePoint Administrator", + "ObjectId": "f28a1f50-f6e7-4571-818b-6a12f2af6b6c" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of the Skype for Business product.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Skype for Business Administrator", + "ObjectId": "75941009-915a-4869-abe7-691bff18279e" + }, + { + "ExtensionData": {}, + "Description": "Can manage the Microsoft Teams service.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Teams Administrator", + "ObjectId": "69091246-20e8-4a56-aa4d-066075b2a7a8" + }, + { + "ExtensionData": {}, + "Description": "Can manage calling and meetings features within the Microsoft Teams service.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Teams Communications Administrator", + "ObjectId": "baf37b3a-610e-45da-9e62-d9d1e5e8914b" + }, + { + "ExtensionData": {}, + "Description": "Can troubleshoot communications issues within Teams using advanced tools.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Teams Communications Support Engineer", + "ObjectId": "f70938a0-fc10-4177-9e90-2178f8765737" + }, + { + "ExtensionData": {}, + "Description": "Can troubleshoot communications issues within Teams using basic tools.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Teams Communications Support Specialist", + "ObjectId": "fcf91098-03e3-41a9-b5ba-6f0ec8188a12" + }, + { + "ExtensionData": {}, + "Description": "Can perform management related tasks on Teams certified devices.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Teams Devices Administrator", + "ObjectId": "3d762c5a-1b6c-493f-843e-55a3b42923d4" + }, + { + "ExtensionData": {}, + "Description": "Can see only tenant level aggregates in Microsoft 365 Usage Analytics and Productivity Score.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Usage Summary Reports Reader", + "ObjectId": "75934031-6c7e-415a-99d7-48dbd49e875e" + }, + { + "ExtensionData": {}, + "Description": "Can manage all aspects of users and groups, including resetting passwords for limited admins.", + "IsEnabled": true, + "IsSystem": true, + "Name": "User Administrator", + "ObjectId": "fe930be7-5e62-47db-91af-98c3a49a38b1" + }, + { + "ExtensionData": {}, + "Description": "Manage and share Virtual Visits information and metrics from admin centers or the Virtual Visits app.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Virtual Visits Administrator", + "ObjectId": "e300d9e7-4a2b-4295-9eff-f1c78b36cc98" + }, + { + "ExtensionData": {}, + "Description": "Can provision and manage all aspects of Cloud PCs.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Windows 365 Administrator", + "ObjectId": "11451d60-acb2-45eb-a7d6-43d0f0125c13" + }, + { + "ExtensionData": {}, + "Description": "Can create and manage all aspects of Windows Update deployments through the Windows Update for Business deployment service.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Windows Update Deployment Administrator", + "ObjectId": "32696413-001a-46ae-978c-ce0f6b3620d2" + }, + { + "ExtensionData": {}, + "Description": "Workplace Device Join", + "IsEnabled": true, + "IsSystem": true, + "Name": "Workplace Device Join", + "ObjectId": "c34f683f-4d5a-4403-affd-6615e00e3a7f" + }, + { + "ExtensionData": {}, + "Description": "Manage all aspects of Yammer.", + "IsEnabled": true, + "IsSystem": true, + "Name": "Yammer Administrator", + "ObjectId": "810a2642-a034-447f-a5e8-41beaa378541" + } +] diff --git a/src/views/tenant/administration/ListGDAPRelationships.js b/src/views/tenant/administration/ListGDAPRelationships.js index 51a0e031f215..ae40d66ddd40 100644 --- a/src/views/tenant/administration/ListGDAPRelationships.js +++ b/src/views/tenant/administration/ListGDAPRelationships.js @@ -6,19 +6,33 @@ import { useSelector } from 'react-redux' import { CippPageList } from 'src/components/layout' import { cellDateFormatter, cellNullTextFormatter } from 'src/components/tables' import { CippActionsOffcanvas } from 'src/components/utilities' +import GDAPRoles from 'src/data/GDAPRoles' const Actions = (row, rowIndex, formatExtraData) => { const [ocVisible, setOCVisible] = useState(false) const tenant = useSelector((state) => state.app.currentTenant) + + var extendedInfo = [] + row?.accessDetails.unifiedRoles.map((role) => { + for (var x = 0; x < GDAPRoles.length; x++) { + if (GDAPRoles[x].ObjectId == role.roleDefinitionId) { + extendedInfo.push({ + label: GDAPRoles[x].Name, + value: GDAPRoles[x].Description, + }) + break + } + } + }) return ( <> setOCVisible(true)}> Date: Thu, 29 Jun 2023 14:01:00 +0100 Subject: [PATCH 09/14] Update BestPracticeAnalyser.js Fixed "Privacy in Reports" to show correctly when its disabled. --- src/views/tenant/standards/BestPracticeAnalyser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/tenant/standards/BestPracticeAnalyser.js b/src/views/tenant/standards/BestPracticeAnalyser.js index 826b8633e1d5..3361dad1b699 100644 --- a/src/views/tenant/standards/BestPracticeAnalyser.js +++ b/src/views/tenant/standards/BestPracticeAnalyser.js @@ -169,7 +169,7 @@ const BestPracticeAnalyser = () => { { name: 'Privacy in Reports Enabled', selector: (row) => row['PrivacyEnabled'], - cell: cellBooleanFormatter({ reverse: true, warning: true }), + cell: cellBooleanFormatter({ reverse: false, warning: false }), sortable: true, exportSelector: 'PrivacyEnabled', minWidth: '150px', From d45fa2814c74eef340f8e8335c53dfba751d6e63 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Thu, 29 Jun 2023 15:07:18 +0200 Subject: [PATCH 10/14] alert popups better --- src/components/layout/AppHeader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/layout/AppHeader.js b/src/components/layout/AppHeader.js index c74f51eec2b1..e902401f52a9 100644 --- a/src/components/layout/AppHeader.js +++ b/src/components/layout/AppHeader.js @@ -72,6 +72,7 @@ const AppHeader = () => { {dashboard && + dashboard.length >= 1 && dashboard.map((item, index) => (
Date: Thu, 29 Jun 2023 15:23:56 +0200 Subject: [PATCH 11/14] made toasts prettier --- src/components/utilities/Toasts.js | 16 +++------------- src/store/middleware/errorMiddleware.js | 4 +++- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/src/components/utilities/Toasts.js b/src/components/utilities/Toasts.js index 8ceee3836291..cfc6d99c3b4d 100644 --- a/src/components/utilities/Toasts.js +++ b/src/components/utilities/Toasts.js @@ -45,20 +45,10 @@ const Toast = ({ message, title, onClose, error }) => {
{message} - setVisible(!visible)}> - Details - -
- -
-            {error?.status} - {error?.message}
-          
-
+
+          {error?.status} - {error?.message}
+        
) diff --git a/src/store/middleware/errorMiddleware.js b/src/store/middleware/errorMiddleware.js index 4adfce059a6a..740027f89dc3 100644 --- a/src/store/middleware/errorMiddleware.js +++ b/src/store/middleware/errorMiddleware.js @@ -18,7 +18,9 @@ export const errorMiddleware = 'The Azure Function has taken too long to respond. Try selecting a different report or a single tenant instead' } const message = action.payload?.data || 'A generic error has occurred.' - + if (message.length > 240) { + message = message.substring(0, 240) + '...' + } const toastError = action.payload dispatch( From c5aecb98281e4d209f8ff9563a8fd85ceaf54095 Mon Sep 17 00:00:00 2001 From: Brandon Martinez Date: Thu, 29 Jun 2023 07:58:22 -0700 Subject: [PATCH 12/14] Corrected messages in Device actions, signed commit --- src/views/endpoint/intune/Devices.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/views/endpoint/intune/Devices.js b/src/views/endpoint/intune/Devices.js index b49962591e96..85111eab9967 100644 --- a/src/views/endpoint/intune/Devices.js +++ b/src/views/endpoint/intune/Devices.js @@ -134,8 +134,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { modalType: 'POST', modalBody: { keepUserData: false, keepEnrollmentData: true }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, - modalCheckbox: 'Remove enrollment data', - modalMessage: 'Are you sure you want to wipe this device?', + modalMessage: 'Are you sure you want to wipe this device, and retain enrollment data?', }, { label: 'Wipe Device, remove enrollment data', @@ -144,7 +143,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { modalType: 'POST', modalBody: { keepUserData: false, keepEnrollmentData: false }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, - modalMessage: 'Are you sure you want to wipe device, AND remove enrollment data?', + modalMessage: 'Are you sure you want to wipe this device, and remove enrollment data?', }, { label: 'Wipe Device, keep enrollment data, and continue at powerloss', @@ -154,7 +153,7 @@ const Offcanvas = (row, rowIndex, formatExtraData) => { modalBody: { keepEnrollmentData: true, keepUserData: false, useProtectedWipe: true }, modalUrl: `/api/ExecDeviceAction?TenantFilter=${tenant.defaultDomainName}&GUID=${row.id}&Action=cleanWindowsDevice`, modalMessage: - 'Are you sure you want to wipe this device? This will keep enrollment data. Continuing at powerloss may cause boot issues if wipe is interrupted.', + 'Are you sure you want to wipe this device? This will retain enrollment data. Continuing at powerloss may cause boot issues if wipe is interrupted.', }, { label: 'Wipe Device, remove enrollment data, and continue at powerloss', From 6033d9123f263cf0043fe950e1433c464f073e3b Mon Sep 17 00:00:00 2001 From: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Fri, 30 Jun 2023 16:08:59 +0200 Subject: [PATCH 13/14] added device validation --- src/views/endpoint/autopilot/AutopilotAddDevice.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/views/endpoint/autopilot/AutopilotAddDevice.js b/src/views/endpoint/autopilot/AutopilotAddDevice.js index 80e28426fdef..0496ea4e1acc 100644 --- a/src/views/endpoint/autopilot/AutopilotAddDevice.js +++ b/src/views/endpoint/autopilot/AutopilotAddDevice.js @@ -73,7 +73,8 @@ const AddAPDevice = () => { }, }, ] - + const valbutton = (value) => + autopilotData ? undefined : 'You must add at least one device. Did you forget to click add?' const handleOnDrop = (data) => { const importdata = data.map((item) => { const normalizedData = {} @@ -209,6 +210,14 @@ const AddAPDevice = () => { }} + + From 3e83623559bff204d1d402a84a8a8768e92d5c45 Mon Sep 17 00:00:00 2001 From: KelvinTegelaar <49186168+KelvinTegelaar@users.noreply.github.com> Date: Tue, 4 Jul 2023 01:08:02 +0200 Subject: [PATCH 14/14] upped version, removed old references to files and cleared up lic confusion --- LICENSE.CustomLicenses | 1 + src/routes.js | 7 +------ .../endpoint/autopilot/AutopilotAddPolicyTemplate.js | 11 ----------- src/views/endpoint/autopilot/AutopilotAddProfile.js | 1 - .../endpoint/autopilot/AutopilotAddStatusPage.js | 1 - src/views/endpoint/autopilot/AutopilotEditProfile.js | 11 ----------- .../endpoint/autopilot/AutopilotEditStatusPage.js | 11 ----------- version_latest.txt | 2 +- 8 files changed, 3 insertions(+), 42 deletions(-) create mode 100644 LICENSE.CustomLicenses delete mode 100644 src/views/endpoint/autopilot/AutopilotAddPolicyTemplate.js delete mode 100644 src/views/endpoint/autopilot/AutopilotEditProfile.js delete mode 100644 src/views/endpoint/autopilot/AutopilotEditStatusPage.js diff --git a/LICENSE.CustomLicenses b/LICENSE.CustomLicenses new file mode 100644 index 000000000000..cf44562e72c4 --- /dev/null +++ b/LICENSE.CustomLicenses @@ -0,0 +1 @@ +Custom licenses are available upon agreement via Github Sponsorships. Custom licenses will not have to be published in this repository. All contributors automatically agree with this provision. \ No newline at end of file diff --git a/src/routes.js b/src/routes.js index ca216a35f4d1..d14afabdb4b7 100644 --- a/src/routes.js +++ b/src/routes.js @@ -116,12 +116,7 @@ const AutopilotListStatusPages = React.lazy(() => ) const IntuneListPolicies = React.lazy(() => import('src/views/endpoint/intune/MEMListPolicies')) const MEMEditPolicy = React.lazy(() => import('src/views/endpoint/intune/MEMEditPolicy')) -const EditAutopilotProfile = React.lazy(() => - import('src/views/endpoint/autopilot/AutopilotEditProfile'), -) -const EditAutopilotStatusPage = React.lazy(() => - import('src/views/endpoint/autopilot/AutopilotEditStatusPage'), -) + const IntuneCAPolicies = React.lazy(() => import('src/views/endpoint/intune/MEMCAPolicies')) const IntuneAddPolicy = React.lazy(() => import('src/views/endpoint/intune/MEMAddPolicy')) const MEMAddPolicyTemplate = React.lazy(() => diff --git a/src/views/endpoint/autopilot/AutopilotAddPolicyTemplate.js b/src/views/endpoint/autopilot/AutopilotAddPolicyTemplate.js deleted file mode 100644 index d4172564964e..000000000000 --- a/src/views/endpoint/autopilot/AutopilotAddPolicyTemplate.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' - -const AutopilotAddPolicyTemplate = (props) => { - return ( -
-

AutopilotAddProfile

-
- ) -} - -export default AutopilotAddPolicyTemplate diff --git a/src/views/endpoint/autopilot/AutopilotAddProfile.js b/src/views/endpoint/autopilot/AutopilotAddProfile.js index 7ab5e5ef7630..4247ea12a19c 100644 --- a/src/views/endpoint/autopilot/AutopilotAddProfile.js +++ b/src/views/endpoint/autopilot/AutopilotAddProfile.js @@ -169,7 +169,6 @@ const ApplyStandard = () => { {!postResults.isSuccess && ( {(props) => { - /* eslint-disable react/prop-types */ return ( <> diff --git a/src/views/endpoint/autopilot/AutopilotAddStatusPage.js b/src/views/endpoint/autopilot/AutopilotAddStatusPage.js index d1845cb59e20..516ee21de8be 100644 --- a/src/views/endpoint/autopilot/AutopilotAddStatusPage.js +++ b/src/views/endpoint/autopilot/AutopilotAddStatusPage.js @@ -141,7 +141,6 @@ const ApplyStandard = () => { {!postResults.isSuccess && ( {(props) => { - /* eslint-disable react/prop-types */ return ( <> diff --git a/src/views/endpoint/autopilot/AutopilotEditProfile.js b/src/views/endpoint/autopilot/AutopilotEditProfile.js deleted file mode 100644 index 1872007188a6..000000000000 --- a/src/views/endpoint/autopilot/AutopilotEditProfile.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' - -const EditAutopilotProfile = (props) => { - return ( -
-

Edit Profile

-
- ) -} - -export default EditAutopilotProfile diff --git a/src/views/endpoint/autopilot/AutopilotEditStatusPage.js b/src/views/endpoint/autopilot/AutopilotEditStatusPage.js deleted file mode 100644 index b2e391683991..000000000000 --- a/src/views/endpoint/autopilot/AutopilotEditStatusPage.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' - -const EditAutopilotStatusPage = (props) => { - return ( -
-

Edit Status Page

-
- ) -} - -export default EditAutopilotStatusPage diff --git a/version_latest.txt b/version_latest.txt index 084e244cea32..240bba90696a 100644 --- a/version_latest.txt +++ b/version_latest.txt @@ -1 +1 @@ -3.6.0 \ No newline at end of file +3.7.0 \ No newline at end of file