Skip to content

Commit

Permalink
[pull] main from KelvinTegelaar:main (#2)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
11 people authored Apr 11, 2024
1 parent f9d5200 commit b5a6cfe
Show file tree
Hide file tree
Showing 79 changed files with 6,043 additions and 9,829 deletions.
10 changes: 10 additions & 0 deletions Tools/Update-Version.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Param($Version)
Set-Location (Get-Item $PSScriptRoot).Parent.FullName
$Files = @('version_latest.txt', 'public/version_latest.txt')
foreach ($File in $Files) {
Set-Content $File -Value $Version
}

$Package = Get-Content package.json | ConvertFrom-Json
$Package.version = $Version
$Package | ConvertTo-Json -Depth 10 | Set-Content package.json
7,876 changes: 765 additions & 7,111 deletions package-lock.json

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cipp",
"version": "4.5.5",
"version": "5.4.2",
"description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.",
"homepage": "https://cipp.app/",
"bugs": {
Expand Down Expand Up @@ -31,11 +31,11 @@
"@coreui/react": "^4.11.0",
"@coreui/react-chartjs": "^2.1.3",
"@coreui/utils": "^1.3.1",
"@fortawesome/fontawesome-svg-core": "^1.2.36",
"@fortawesome/free-brands-svg-icons": "^5.15.4",
"@fortawesome/free-regular-svg-icons": "^5.15.4",
"@fortawesome/free-solid-svg-icons": "^5.15.4",
"@fortawesome/react-fontawesome": "^0.1.16",
"@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",
Expand Down
2 changes: 1 addition & 1 deletion public/version_latest.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.1.1
5.4.2
27 changes: 26 additions & 1 deletion src/_nav.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ const _nav = [
name: 'Groups',
to: '/identity/administration/groups',
},
{
component: CNavItem,
name: 'Devices',
to: '/identity/administration/devices',
},
{
component: CNavItem,
name: 'Deploy Group Template',
Expand Down Expand Up @@ -476,9 +481,19 @@ const _nav = [
},
{
component: CNavItem,
name: 'MEM Policies',
name: 'Configuration Policies',
to: '/endpoint/MEM/list-policies',
},
{
component: CNavItem,
name: 'Compliance Policies',
to: '/endpoint/MEM/list-compliance-policies',
},
{
component: CNavItem,
name: 'Protection Policies',
to: '/endpoint/MEM/list-appprotection-policies',
},
{
component: CNavItem,
name: 'Apply Policy',
Expand Down Expand Up @@ -607,6 +622,11 @@ const _nav = [
name: 'Mailbox Restores',
to: '/email/tools/mailbox-restores',
},
{
component: CNavItem,
name: 'Mail Test',
to: '/email/tools/mail-test',
},
],
},
{
Expand Down Expand Up @@ -737,6 +757,11 @@ const _nav = [
name: 'Logbook',
to: '/cipp/logs',
},
{
component: CNavItem,
name: 'Statistics',
to: '/cipp/statistics',
},
{
component: CNavItem,
name: 'SAM Setup Wizard',
Expand Down
27 changes: 22 additions & 5 deletions src/adminRoutes.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react'
const CIPPSettings = React.lazy(() => import('src/views/cipp/CIPPSettings'))

const CIPPSettings = React.lazy(() => import('src/views/cipp/app-settings/CIPPSettings'))
const Setup = React.lazy(() => import('src/views/cipp/Setup'))
const ApplyStandard = React.lazy(() => import('src/views/tenant/standards/ListStandards'))
const GDAPStatus = React.lazy(() => import('src/views/tenant/administration/ListGDAPQueue'))
Expand All @@ -25,7 +26,11 @@ const adminRoutes = [
{ path: '/cipp/setup', name: 'Setup', component: Setup },

{ path: '/tenant/administration/gdap', name: 'GDAP Wizard', component: GDAP },
{ path: '/tenant/administration/gdap-invite', name: 'GDAP Invite Wizard', component: GDAPInvite },
{
path: '/tenant/administration/gdap-invite',
name: 'GDAP Invite Wizard',
component: GDAPInvite,
},
{
path: '/tenant/administration/gdap-role-wizard',
name: 'GDAP Role Wizard',
Expand All @@ -41,9 +46,21 @@ const adminRoutes = [
name: 'GDAP Relationships',
component: GDAPRelationships,
},
{ path: '/tenant/administration/appapproval', name: 'App Approval', component: appapproval },
{ path: '/tenant/administration/gdap-status', name: 'GDAP Status', component: GDAPStatus },
{ path: '/tenant/standards/list-standards', name: 'List Standard', component: ApplyStandard },
{
path: '/tenant/administration/appapproval',
name: 'App Approval',
component: appapproval,
},
{
path: '/tenant/administration/gdap-status',
name: 'GDAP Status',
component: GDAPStatus,
},
{
path: '/tenant/standards/list-standards',
name: 'List Standard',
component: ApplyStandard,
},
{
path: '/tenant/administration/tenant-offboarding-wizard',
name: 'Tenant Offboarding',
Expand Down
70 changes: 64 additions & 6 deletions src/components/forms/RFFComponents.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@ import {
CTooltip,
} from '@coreui/react'
import Select from 'react-select'
import Creatable, { useCreatable } from 'react-select/creatable'
import { Field } from 'react-final-form'
import { FieldArray } from 'react-final-form-arrays'
import React, { useState, useMemo, useRef } from 'react'
import React, { useState, useMemo } from 'react'
import PropTypes from 'prop-types'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { debounce } from 'lodash-es'
Expand All @@ -36,6 +37,7 @@ const sharedPropTypes = {
error: PropTypes.any,
}),
}),
onClick: PropTypes.func,
}

export const RFFCFormFeedback = ({ meta }) => {
Expand All @@ -53,7 +55,14 @@ RFFCFormFeedback.propTypes = {
}),
}

export const RFFCFormCheck = ({ name, label, className = 'mb-3', validate, disabled = false }) => {
export const RFFCFormCheck = ({
name,
label,
className = 'mb-3',
validate,
disabled = false,
onClick,
}) => {
return (
<Field name={name} type="checkbox" validate={validate}>
{({ input, meta }) => (
Expand All @@ -66,6 +75,7 @@ export const RFFCFormCheck = ({ name, label, className = 'mb-3', validate, disab
disabled={disabled}
id={name}
label={label}
onClick={onClick}
/>
<RFFCFormFeedback meta={meta} />
</div>
Expand All @@ -91,6 +101,7 @@ export const RFFCFormSwitch = ({
validate,
disabled = false,
initialValue,
onClick,
}) => {
return (
<Field initialValue={initialValue} name={name} type="checkbox" validate={validate}>
Expand All @@ -112,6 +123,7 @@ export const RFFCFormSwitch = ({
disabled={disabled}
id={name}
label={label}
onClick={onClick}
/>
{input.value && <RFFCFormFeedback meta={meta} />}
<sub>{sublabel}</sub>
Expand All @@ -137,10 +149,11 @@ export const RFFCFormInput = ({
disabled = false,
spellCheck = true,
autoFocus = false,
hiddenValue,
onChange,
}) => {
return (
<Field name={name} validate={validate}>
<Field initialValue={hiddenValue} name={name} validate={validate}>
{({ input, meta }) => {
const handleChange = onChange
? (e) => {
Expand Down Expand Up @@ -237,6 +250,7 @@ export const RFFCFormRadio = ({
className = 'mb-3',
validate,
disabled = false,
onClick,
}) => {
return (
<Field name={name} type="radio" value={value} validate={validate}>
Expand All @@ -250,6 +264,7 @@ export const RFFCFormRadio = ({
type="radio"
name={name}
label={label}
onClick={onClick}
/>
<RFFCFormFeedback meta={meta} />
</div>
Expand Down Expand Up @@ -393,6 +408,7 @@ export const RFFSelectSearch = ({
disabled = false,
retainInput = true,
isLoading = false,
allowCreate = false,
refreshFunction,
props,
}) => {
Expand Down Expand Up @@ -427,13 +443,18 @@ export const RFFSelectSearch = ({
{label}
{refreshFunction && (
<CTooltip content="Refresh" placement="right">
<CButton onClick={refreshFunction} variant="ghost" className="ms-1" size="sm">
<CButton
onClick={refreshFunction}
variant="ghost"
className="ms-1 py-0 border-0"
size="sm"
>
<FontAwesomeIcon icon="sync" />
</CButton>
</CTooltip>
)}
</CFormLabel>
{onChange && (
{!allowCreate && onChange && (
<Select
className="react-select-container"
classNamePrefix="react-select"
Expand All @@ -452,7 +473,7 @@ export const RFFSelectSearch = ({
{...props}
/>
)}
{!onChange && (
{!allowCreate && !onChange && (
<Select
className="react-select-container"
classNamePrefix="react-select"
Expand All @@ -470,6 +491,43 @@ export const RFFSelectSearch = ({
{...props}
/>
)}
{allowCreate && onChange && (
<Creatable
className="react-select-container"
classNamePrefix="react-select"
{...input}
isClearable={false}
name={name}
id={name}
disabled={disabled}
options={selectSearchvalues}
placeholder={placeholder}
isMulti={multi}
onChange={onChange}
onInputChange={debounceOnInputChange}
inputValue={inputText}
isLoading={isLoading}
{...props}
/>
)}
{allowCreate && !onChange && (
<Creatable
className="react-select-container"
classNamePrefix="react-select"
{...input}
isClearable={true}
name={name}
id={name}
disabled={disabled}
options={selectSearchvalues}
placeholder={placeholder}
onInputChange={setOnInputChange}
isMulti={multi}
inputValue={inputText}
isLoading={isLoading}
{...props}
/>
)}
{meta.error && meta.touched && <span className="text-danger">{meta.error}</span>}
</div>
)
Expand Down
10 changes: 6 additions & 4 deletions src/components/header/AppHeaderSearch.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, { useCallback } from 'react'
import { faSearch } from '@fortawesome/free-solid-svg-icons'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { toggleSwitcher } from 'src/store/features/switcher'
import { CButton } from '@coreui/react'
import { CButton, CTooltip } from '@coreui/react'
import { useDispatch } from 'react-redux'

const AppHeaderSearch = () => {
Expand All @@ -12,9 +12,11 @@ const AppHeaderSearch = () => {
}, [dispatch])
return (
<>
<CButton variant="ghost" onClick={handleFastSwitcher}>
<FontAwesomeIcon icon={faSearch} size="lg" />
</CButton>
<CTooltip content="Search" placement="bottom">
<CButton variant="ghost" onClick={handleFastSwitcher}>
<FontAwesomeIcon icon={faSearch} size="lg" />
</CButton>
</CTooltip>
</>
)
}
Expand Down
Loading

0 comments on commit b5a6cfe

Please sign in to comment.