-
-
- Ensure you read{' '}
-
- the documentation fully
- {' '}
- before proceeding with this wizard. Some of the changes cannot be reverted by CIPP.
-
-
- 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
- Select Standards
-
-
-
-
- {allStandardsList
- .filter((obj) => obj.cat === 'Global')
- .map((item, key) => (
- <>
-
-
- {item.addedComponent && (
-
- {item.addedComponent.type === 'Select' ? (
-
- ) : (
-
- )}
-
- )}
-
- >
- ))}
-
-
-
-
-
-
- Step 3
- Select Standards
-
-
-
-
- {allStandardsList
- .filter((obj) => obj.cat === 'AAD')
- .map((item, key) => (
- <>
-
-
- {item.addedComponent && (
-
- {item.addedComponent.type === 'Select' ? (
-
- ) : (
-
- )}
-
- )}
-
- >
- ))}
-
-
-
-
-
-
- Step 4
- Select Standards
-
-
-
-
- {allStandardsList
- .filter((obj) => obj.cat === 'Exchange')
- .map((item, key) => (
- <>
-
-
- {item.addedComponent && (
-
- {item.addedComponent.type === 'Select' ? (
-
- ) : (
-
- )}
-
- )}
-
- >
- ))}
-
-
-
-
-
-
- Step 5
- Select Standards
-
-
-
-
- {allStandardsList
- .filter((obj) => obj.cat === 'Intune')
- .map((item, key) => (
- <>
-
-
- {item.addedComponent && (
-
- {item.addedComponent.type === 'Select' ? (
-
- ) : (
-
- )}
-
- )}
-
- >
- ))}
-
-
-
-
-
-
- Step 5
- Select Standards
-
-
-
-
- {allStandardsList
- .filter((obj) => obj.cat === 'SharePoint')
- .map((item, key) => (
- <>
-
-
- {item.addedComponent && (
-
- {item.addedComponent.type === 'Select' ? (
-
- ) : (
-
- )}
-
- )}
-
- >
- ))}
-
-
-
-
-
-
- Step 7
- Select Default Templates to apply
-
-
-
- Attention: Selected options below will run every 3 hours and overwrite any previously set
- policy by the same name. This will keep the policy exactly in the state as defined by the
- template.
-
-
-
-
-
-
- {intuneTemplates.isUninitialized &&
- intuneGetRequest({ path: 'api/ListIntuneTemplates' })}
- {intuneTemplates.isSuccess && (
- ({
- value: template.GUID,
- name: template.Displayname,
- }))}
- placeholder="Select a template"
- label="Choose your Intune templates to apply"
- />
- )}
-
-
-
-
-
- {transportTemplates.isUninitialized &&
- transportGetRequest({ path: 'api/ListTransportRulesTemplates' })}
- {transportTemplates.isSuccess && (
- ({
- value: template.GUID,
- name: template.name,
- }))}
- placeholder="Select a template"
- label="Choose your Transport Rule templates to apply"
- />
- )}
-
-
-
-
-
- {caTemplates.isUninitialized && caGetRequest({ path: 'api/ListCAtemplates' })}
- {caTemplates.isSuccess && (
- ({
- value: template.GUID,
- name: template.displayName,
- }))}
- placeholder="Select a template"
- label="Choose your Conditional Access templates to apply"
- />
- )}
-
-
-
-
-
- {exConnectorTemplates.isUninitialized &&
- exConnectorGetRequest({ path: 'api/ListExConnectorTemplates' })}
- {exConnectorTemplates.isSuccess && (
- ({
- value: template.GUID,
- name: template.name,
- }))}
- placeholder="Select a template"
- label="Choose your Exchange Connector templates to apply"
- />
- )}
-
-
-
-
-
- {groupTemplates.isUninitialized &&
- groupGetRequest({ path: 'api/ListGroupTemplates' })}
- {groupTemplates.isSuccess && (
- ({
- value: template.GUID,
- name: template.Displayname,
- }))}
- placeholder="Select a template"
- label="Choose your Group templates to apply"
- />
- )}
-
-
-
-
-
-
-
-
- Step 6
- Confirm and apply
-
-
- {!postResults.isSuccess && (
-
-
-
- WARNING! Setting a standard will make changes to your tenants and set these standards
- on every 365 tenant you select. If you want to review only, please use the Best
- Practice Analyser.
-
-
- )}
- {postResults.isFetching && (
-
- Loading
-
- )}
- {!postResults.isSuccess && (
-
- {/* eslint-disable react/prop-types */}
- {(props) => (
- <>
-
-
- Selected Tenants
-
- {props.values.selectedTenants.map((tenant, idx) => (
-
- {tenant.displayName}- {tenant.defaultDomainName}
-
- ))}
-
- Selected Standards
-
- {getDeepKeys(props.values.standards)
- .reduce((acc, key) => {
- const existingItem = allStandardsList.find((obj) =>
- obj.name.includes(key),
- )
- if (
- existingItem &&
- !acc.find((item) => item.name === existingItem.name)
- ) {
- acc.push(existingItem)
- }
- return acc
- }, [])
- .map((item, idx) => (
- {item.label}
- ))}
-
-
-
-
- >
- )}
-
- )}
- {postResults.isSuccess && {postResults.data.Results}}
-
-
-
- )
-}
-
-export default ApplyStandard
diff --git a/src/views/tenant/standards/ListAppliedStandards.jsx b/src/views/tenant/standards/ListAppliedStandards.jsx
index 6a30e7ca5961..26622283e4bd 100644
--- a/src/views/tenant/standards/ListAppliedStandards.jsx
+++ b/src/views/tenant/standards/ListAppliedStandards.jsx
@@ -1,9 +1,23 @@
import React, { useState } from 'react'
-import { CButton, CCallout, CCol, CForm, CRow, CSpinner } from '@coreui/react'
+import {
+ CButton,
+ CCallout,
+ CCol,
+ CForm,
+ CRow,
+ CSpinner,
+ CAccordion,
+ CAccordionHeader,
+ CAccordionBody,
+ CAccordionItem,
+ CWidgetStatsB,
+ CBadge,
+} from '@coreui/react'
import { Form } from 'react-final-form'
import {
Condition,
RFFCFormInput,
+ RFFCFormRadio,
RFFCFormSelect,
RFFCFormSwitch,
RFFSelectSearch,
@@ -22,11 +36,12 @@ import Skeleton from 'react-loading-skeleton'
import { CippTable } from 'src/components/tables'
import allStandardsList from 'src/data/standards'
import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas'
+import GDAPRoles from 'src/data/GDAPRoles'
const RefreshAction = () => {
const [execStandards, execStandardsResults] = useLazyGenericGetRequestQuery()
-
- const showModal = () =>
+ const tenantDomain = useSelector((state) => state.app.currentTenant.defaultDomainName)
+ const showModal = (selectedTenant) =>
ModalService.confirm({
body: (