Skip to content

Commit b5a6cfe

Browse files
pull[bot]BNWEINJohnDupreykris6673KelvinTegelaar
authored
[pull] main from KelvinTegelaar:main (#2)
* Handle null values in flatten function * Add tags to all standards * Helptext change to reflect change * Add sortable quota selectors for onedrive and email reports * Change nudgeMFA standard to be 1 entry * Change to reflect backend * Add reporting and alerts for undo oauth * Change UserSubmissions to be only 1 entry * Change to number instead of string * helptext * improvements mailbox stats * added manager field * Graph Explorer - Add import/export option - Add custom path to CippCodeOffcanvas * Add copied state * Update CippCodeOffcanvas.jsx * add bulk remove and add of users * text changes * add urlonly * add urlonly * add device list * add device actions * Cleanup graph explorer import/export * Function Statistics * fix interface bug for all tenants overview * add exchange standard * version up * Graph Explorer - Add React Select search with Creatable component - Change $select form input to RFFCSelectSearch with preloading properties * Add filters and reorder table * guest name change * Update GraphExplorer.jsx * Update GraphExplorer.jsx * Add refresh function * Update RFFComponents.jsx * version up * Update DomainsAnalyser.jsx Added DKIM Records to table and export. * remove old imports * save columns when user changes them with option to reset * add exportselector where required * fixes missing postal code * Added custom thresholds for SharePoint and Mailbox Quota alerts Added custom thresholds for SharePoint and Mailbox Quota alerts * removed default value removed default value * use endpointname instead of report name. * CippDatatable - refetch * for now, this'll do. * CippTable fix Fix addColumn for omitted cols * More omit checks * Made a start on adding "New User" attributes in "User Settings" one for @JohnDuprey / @KelvinTegelaar the superheroes to finish off! * Fix nav items property * Devices Bulk Actions Add selectable rows to Devices page Add Enable/Disable/Delete actions Implements KelvinTegelaar#2154 * Settings refactor, CippCallout wip * Bump version, update font awesome icons * Unify all results notifications to use new component CippCallout which combines CCallout and CAlert but is dismissible. Fix issues with notification not appearing when running a second time. Fix issue with password config not working. * add saving of user settings * added defaultAttributes * update license overview * add anon data warning. * fixes anon * added KelvinTegelaar#2189 * Pending Webhooks - Add table offcanvas - Add pending webhooks action button with expandable json view * fix button text * fixes bug when endpoint name is null for modals * fixed issue with graph explorer columns * minor bug with new column setup * Update AppHeader.jsx * fix card layout while bringing sexy back * fix button * cleanup imports * Pretty MEM policy list json * Add tooltips * Graph Explorer - Org Branding preset Implements KelvinTegelaar#2160 * upp version * Add null safe operator to default settings * up version * Update Statistics.jsx * update package-lock * fixes edit user bug * users fix * DisableAppCreation standard * Update formatters for alerts/scheduler * up version * Update package-lock.json * Add boolean switch to standards list * SafeLinks Standard * Add SafeLinks Policy Standard * SafeLinks Policy Label fix * SafeLink Policy use boolean * Revert "SafeLink Policy use boolean" * boolean test * Added EnableOrganizationBranding to SafeLink option * Move SafeLinksPolicy to Defender Standard * Updated Name label * Changed according to feedback * Updated label name * bulk user adds * create * Added Compliance Policies * Standard for trusting external MFA in Cross-tenant access setting * dynamic lists * fixes bug with blank arrays * fixes KelvinTegelaar#2210 * added alerts * changes * fix radio/checkbox bug * fixes selector * fix tenant access check * fixes ap issue disappearing offCanvas * add standards from PR KelvinTegelaar#2257 KelvinTegelaar#2256 KelvinTegelaar#2255 KelvinTegelaar#2254 * improved search * fixes for or * WizardTableField set dynamicColumns to false * remove lighthouse requirement for tenant check * add version update function * Mail Test * Update MailTest.jsx * add multi select offboarding * add alert for going over maximum * up version * Update MailTest.jsx * Added default value support to standards number type * handle undefined/null columns * favourites adding * add dash header if favorites are set. * null safe props on mail test * Update licenses * Fix Number defaultValue Update standards.json fix? Co-Authored-By: Kai Stenbro <[email protected]> * preserve tableFilter in tenant selector fixes KelvinTegelaar#2293 * Up version * Revert "Merge pull request KelvinTegelaar#2298 from KelvinTegelaar/dev" This reverts commit e3cb141, reversing changes made to 1c3eb56. * up version --------- Co-authored-by: BNWEIN <[email protected]> Co-authored-by: John Duprey <[email protected]> Co-authored-by: Kristian Kjærgård <[email protected]> Co-authored-by: Kristian Kjærgård <[email protected]> Co-authored-by: KelvinTegelaar <[email protected]> Co-authored-by: KelvinTegelaar <[email protected]> Co-authored-by: John Duprey <[email protected]> Co-authored-by: Kevin Grube <[email protected]> Co-authored-by: Esco <[email protected]> Co-authored-by: Kai Stenbro <[email protected]>
1 parent f9d5200 commit b5a6cfe

File tree

79 files changed

+6043
-9829
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+6043
-9829
lines changed

Tools/Update-Version.ps1

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Param($Version)
2+
Set-Location (Get-Item $PSScriptRoot).Parent.FullName
3+
$Files = @('version_latest.txt', 'public/version_latest.txt')
4+
foreach ($File in $Files) {
5+
Set-Content $File -Value $Version
6+
}
7+
8+
$Package = Get-Content package.json | ConvertFrom-Json
9+
$Package.version = $Version
10+
$Package | ConvertTo-Json -Depth 10 | Set-Content package.json

package-lock.json

Lines changed: 765 additions & 7111 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cipp",
3-
"version": "4.5.5",
3+
"version": "5.4.2",
44
"description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.",
55
"homepage": "https://cipp.app/",
66
"bugs": {
@@ -31,11 +31,11 @@
3131
"@coreui/react": "^4.11.0",
3232
"@coreui/react-chartjs": "^2.1.3",
3333
"@coreui/utils": "^1.3.1",
34-
"@fortawesome/fontawesome-svg-core": "^1.2.36",
35-
"@fortawesome/free-brands-svg-icons": "^5.15.4",
36-
"@fortawesome/free-regular-svg-icons": "^5.15.4",
37-
"@fortawesome/free-solid-svg-icons": "^5.15.4",
38-
"@fortawesome/react-fontawesome": "^0.1.16",
34+
"@fortawesome/fontawesome-svg-core": "^6.5.1",
35+
"@fortawesome/free-brands-svg-icons": "^6.5.1",
36+
"@fortawesome/free-regular-svg-icons": "^6.5.1",
37+
"@fortawesome/free-solid-svg-icons": "^6.5.1",
38+
"@fortawesome/react-fontawesome": "^0.2.0",
3939
"@monaco-editor/react": "^4.5.2",
4040
"@popperjs/core": "^2.10.2",
4141
"@reduxjs/toolkit": "^1.9.7",

public/version_latest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.1.1
1+
5.4.2

src/_nav.jsx

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ const _nav = [
5050
name: 'Groups',
5151
to: '/identity/administration/groups',
5252
},
53+
{
54+
component: CNavItem,
55+
name: 'Devices',
56+
to: '/identity/administration/devices',
57+
},
5358
{
5459
component: CNavItem,
5560
name: 'Deploy Group Template',
@@ -476,9 +481,19 @@ const _nav = [
476481
},
477482
{
478483
component: CNavItem,
479-
name: 'MEM Policies',
484+
name: 'Configuration Policies',
480485
to: '/endpoint/MEM/list-policies',
481486
},
487+
{
488+
component: CNavItem,
489+
name: 'Compliance Policies',
490+
to: '/endpoint/MEM/list-compliance-policies',
491+
},
492+
{
493+
component: CNavItem,
494+
name: 'Protection Policies',
495+
to: '/endpoint/MEM/list-appprotection-policies',
496+
},
482497
{
483498
component: CNavItem,
484499
name: 'Apply Policy',
@@ -607,6 +622,11 @@ const _nav = [
607622
name: 'Mailbox Restores',
608623
to: '/email/tools/mailbox-restores',
609624
},
625+
{
626+
component: CNavItem,
627+
name: 'Mail Test',
628+
to: '/email/tools/mail-test',
629+
},
610630
],
611631
},
612632
{
@@ -737,6 +757,11 @@ const _nav = [
737757
name: 'Logbook',
738758
to: '/cipp/logs',
739759
},
760+
{
761+
component: CNavItem,
762+
name: 'Statistics',
763+
to: '/cipp/statistics',
764+
},
740765
{
741766
component: CNavItem,
742767
name: 'SAM Setup Wizard',

src/adminRoutes.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from 'react'
2-
const CIPPSettings = React.lazy(() => import('src/views/cipp/CIPPSettings'))
2+
3+
const CIPPSettings = React.lazy(() => import('src/views/cipp/app-settings/CIPPSettings'))
34
const Setup = React.lazy(() => import('src/views/cipp/Setup'))
45
const ApplyStandard = React.lazy(() => import('src/views/tenant/standards/ListStandards'))
56
const GDAPStatus = React.lazy(() => import('src/views/tenant/administration/ListGDAPQueue'))
@@ -25,7 +26,11 @@ const adminRoutes = [
2526
{ path: '/cipp/setup', name: 'Setup', component: Setup },
2627

2728
{ path: '/tenant/administration/gdap', name: 'GDAP Wizard', component: GDAP },
28-
{ path: '/tenant/administration/gdap-invite', name: 'GDAP Invite Wizard', component: GDAPInvite },
29+
{
30+
path: '/tenant/administration/gdap-invite',
31+
name: 'GDAP Invite Wizard',
32+
component: GDAPInvite,
33+
},
2934
{
3035
path: '/tenant/administration/gdap-role-wizard',
3136
name: 'GDAP Role Wizard',
@@ -41,9 +46,21 @@ const adminRoutes = [
4146
name: 'GDAP Relationships',
4247
component: GDAPRelationships,
4348
},
44-
{ path: '/tenant/administration/appapproval', name: 'App Approval', component: appapproval },
45-
{ path: '/tenant/administration/gdap-status', name: 'GDAP Status', component: GDAPStatus },
46-
{ path: '/tenant/standards/list-standards', name: 'List Standard', component: ApplyStandard },
49+
{
50+
path: '/tenant/administration/appapproval',
51+
name: 'App Approval',
52+
component: appapproval,
53+
},
54+
{
55+
path: '/tenant/administration/gdap-status',
56+
name: 'GDAP Status',
57+
component: GDAPStatus,
58+
},
59+
{
60+
path: '/tenant/standards/list-standards',
61+
name: 'List Standard',
62+
component: ApplyStandard,
63+
},
4764
{
4865
path: '/tenant/administration/tenant-offboarding-wizard',
4966
name: 'Tenant Offboarding',

src/components/forms/RFFComponents.jsx

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ import {
1111
CTooltip,
1212
} from '@coreui/react'
1313
import Select from 'react-select'
14+
import Creatable, { useCreatable } from 'react-select/creatable'
1415
import { Field } from 'react-final-form'
1516
import { FieldArray } from 'react-final-form-arrays'
16-
import React, { useState, useMemo, useRef } from 'react'
17+
import React, { useState, useMemo } from 'react'
1718
import PropTypes from 'prop-types'
1819
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
1920
import { debounce } from 'lodash-es'
@@ -36,6 +37,7 @@ const sharedPropTypes = {
3637
error: PropTypes.any,
3738
}),
3839
}),
40+
onClick: PropTypes.func,
3941
}
4042

4143
export const RFFCFormFeedback = ({ meta }) => {
@@ -53,7 +55,14 @@ RFFCFormFeedback.propTypes = {
5355
}),
5456
}
5557

56-
export const RFFCFormCheck = ({ name, label, className = 'mb-3', validate, disabled = false }) => {
58+
export const RFFCFormCheck = ({
59+
name,
60+
label,
61+
className = 'mb-3',
62+
validate,
63+
disabled = false,
64+
onClick,
65+
}) => {
5766
return (
5867
<Field name={name} type="checkbox" validate={validate}>
5968
{({ input, meta }) => (
@@ -66,6 +75,7 @@ export const RFFCFormCheck = ({ name, label, className = 'mb-3', validate, disab
6675
disabled={disabled}
6776
id={name}
6877
label={label}
78+
onClick={onClick}
6979
/>
7080
<RFFCFormFeedback meta={meta} />
7181
</div>
@@ -91,6 +101,7 @@ export const RFFCFormSwitch = ({
91101
validate,
92102
disabled = false,
93103
initialValue,
104+
onClick,
94105
}) => {
95106
return (
96107
<Field initialValue={initialValue} name={name} type="checkbox" validate={validate}>
@@ -112,6 +123,7 @@ export const RFFCFormSwitch = ({
112123
disabled={disabled}
113124
id={name}
114125
label={label}
126+
onClick={onClick}
115127
/>
116128
{input.value && <RFFCFormFeedback meta={meta} />}
117129
<sub>{sublabel}</sub>
@@ -137,10 +149,11 @@ export const RFFCFormInput = ({
137149
disabled = false,
138150
spellCheck = true,
139151
autoFocus = false,
152+
hiddenValue,
140153
onChange,
141154
}) => {
142155
return (
143-
<Field name={name} validate={validate}>
156+
<Field initialValue={hiddenValue} name={name} validate={validate}>
144157
{({ input, meta }) => {
145158
const handleChange = onChange
146159
? (e) => {
@@ -237,6 +250,7 @@ export const RFFCFormRadio = ({
237250
className = 'mb-3',
238251
validate,
239252
disabled = false,
253+
onClick,
240254
}) => {
241255
return (
242256
<Field name={name} type="radio" value={value} validate={validate}>
@@ -250,6 +264,7 @@ export const RFFCFormRadio = ({
250264
type="radio"
251265
name={name}
252266
label={label}
267+
onClick={onClick}
253268
/>
254269
<RFFCFormFeedback meta={meta} />
255270
</div>
@@ -393,6 +408,7 @@ export const RFFSelectSearch = ({
393408
disabled = false,
394409
retainInput = true,
395410
isLoading = false,
411+
allowCreate = false,
396412
refreshFunction,
397413
props,
398414
}) => {
@@ -427,13 +443,18 @@ export const RFFSelectSearch = ({
427443
{label}
428444
{refreshFunction && (
429445
<CTooltip content="Refresh" placement="right">
430-
<CButton onClick={refreshFunction} variant="ghost" className="ms-1" size="sm">
446+
<CButton
447+
onClick={refreshFunction}
448+
variant="ghost"
449+
className="ms-1 py-0 border-0"
450+
size="sm"
451+
>
431452
<FontAwesomeIcon icon="sync" />
432453
</CButton>
433454
</CTooltip>
434455
)}
435456
</CFormLabel>
436-
{onChange && (
457+
{!allowCreate && onChange && (
437458
<Select
438459
className="react-select-container"
439460
classNamePrefix="react-select"
@@ -452,7 +473,7 @@ export const RFFSelectSearch = ({
452473
{...props}
453474
/>
454475
)}
455-
{!onChange && (
476+
{!allowCreate && !onChange && (
456477
<Select
457478
className="react-select-container"
458479
classNamePrefix="react-select"
@@ -470,6 +491,43 @@ export const RFFSelectSearch = ({
470491
{...props}
471492
/>
472493
)}
494+
{allowCreate && onChange && (
495+
<Creatable
496+
className="react-select-container"
497+
classNamePrefix="react-select"
498+
{...input}
499+
isClearable={false}
500+
name={name}
501+
id={name}
502+
disabled={disabled}
503+
options={selectSearchvalues}
504+
placeholder={placeholder}
505+
isMulti={multi}
506+
onChange={onChange}
507+
onInputChange={debounceOnInputChange}
508+
inputValue={inputText}
509+
isLoading={isLoading}
510+
{...props}
511+
/>
512+
)}
513+
{allowCreate && !onChange && (
514+
<Creatable
515+
className="react-select-container"
516+
classNamePrefix="react-select"
517+
{...input}
518+
isClearable={true}
519+
name={name}
520+
id={name}
521+
disabled={disabled}
522+
options={selectSearchvalues}
523+
placeholder={placeholder}
524+
onInputChange={setOnInputChange}
525+
isMulti={multi}
526+
inputValue={inputText}
527+
isLoading={isLoading}
528+
{...props}
529+
/>
530+
)}
473531
{meta.error && meta.touched && <span className="text-danger">{meta.error}</span>}
474532
</div>
475533
)

src/components/header/AppHeaderSearch.jsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useCallback } from 'react'
22
import { faSearch } from '@fortawesome/free-solid-svg-icons'
33
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
44
import { toggleSwitcher } from 'src/store/features/switcher'
5-
import { CButton } from '@coreui/react'
5+
import { CButton, CTooltip } from '@coreui/react'
66
import { useDispatch } from 'react-redux'
77

88
const AppHeaderSearch = () => {
@@ -12,9 +12,11 @@ const AppHeaderSearch = () => {
1212
}, [dispatch])
1313
return (
1414
<>
15-
<CButton variant="ghost" onClick={handleFastSwitcher}>
16-
<FontAwesomeIcon icon={faSearch} size="lg" />
17-
</CButton>
15+
<CTooltip content="Search" placement="bottom">
16+
<CButton variant="ghost" onClick={handleFastSwitcher}>
17+
<FontAwesomeIcon icon={faSearch} size="lg" />
18+
</CButton>
19+
</CTooltip>
1820
</>
1921
)
2022
}

0 commit comments

Comments
 (0)