Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from KelvinTegelaar:main #98

Merged
merged 15 commits into from
Jun 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@
"request": "launch",
"name": "Launch Chrome Debugger",
"url": "http://localhost:4280"
},
{
"type": "PowerShell",
"name": "Launch in Windows Terminal",
"request": "launch",
"cwd": "${cwd}",
"script": ". '${cwd}\\Tools\\Start-CippDevEmulators.ps1'"
}
],
"compounds": [
Expand Down
4 changes: 4 additions & 0 deletions Tools/Start-CippDevEmulators.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Write-Host "Starting CIPP Dev Emulators"
$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

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cipp",
"version": "5.8.0",
"version": "5.8.5",
"description": "The CyberDrain Improved Partner Portal is a portal to help manage administration for Microsoft Partners.",
"homepage": "https://cipp.app/",
"bugs": {
Expand Down
14 changes: 14 additions & 0 deletions public/MFAStates.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[
{
"value": "disabled",
"label": "Disabled"
},
{
"value": "enabled",
"label": "Enabled"
},
{
"value": "enforced",
"label": "Enforced"
}
]
2 changes: 1 addition & 1 deletion public/version_latest.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
5.8.0
5.8.5
1 change: 1 addition & 0 deletions src/components/buttons/TableModalButton.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,5 @@ TableModalButton.propTypes = {
title: PropTypes.string,
className: PropTypes.string,
countOnly: PropTypes.bool,
icon: PropTypes.string,
}
1 change: 1 addition & 0 deletions src/components/tables/CellBoolean.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ export default function CellBoolean({
if (
cell.toLowerCase() === 'success' ||
cell.toLowerCase() === 'enabled' ||
cell.toLowerCase() === 'enforced' ||
cell.toLowerCase() === 'pass' ||
cell.toLowerCase() === 'true' ||
cell.toLowerCase() === 'compliant'
Expand Down
12 changes: 11 additions & 1 deletion src/data/standards.json
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,16 @@
"impact": "High Impact",
"impactColour": "danger"
},
{
"name": "standards.PerUserMFA",
"cat": "Entra (AAD) Standards",
"tag": ["highimpact"],
"helpText": "Enables per user MFA for all users.",
"addedComponent": [],
"label": "Enables per user MFA for all users.",
"impact": "High Impact",
"impactColour": "danger"
},
{
"name": "standards.OutBoundSpamAlert",
"cat": "Exchange Standards",
Expand Down Expand Up @@ -1327,7 +1337,7 @@
},
{
"type": "boolean",
"label": "Enable Internal Sender Admin Notifications",
"label": "Enable External Sender Admin Notifications",
"name": "standards.MalwareFilterPolicy.EnableExternalSenderAdminNotifications"
},
{
Expand Down
2 changes: 1 addition & 1 deletion src/views/endpoint/intune/MEMListCompliance.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ const ComplianceList = () => {
label: 'Delete Policy',
modal: true,
modalUrl: `api/RemovePolicy?TenantFilter=${tenant?.defaultDomainName}&ID=!id&URLName=deviceCompliancePolicies`,
modalMessage: 'Are you sure you want to convert these users to a shared mailbox?',
modalMessage: 'Are you sure you want to delete these policies?',
},
],
},
Expand Down
40 changes: 40 additions & 0 deletions src/views/identity/administration/Users.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,26 @@ const Offcanvas = (row, rowIndex, formatExtraData) => {
modalUrl: `/api/ExecSendPush?TenantFilter=${tenant.defaultDomainName}&UserEmail=${row.userPrincipalName}`,
modalMessage: 'Are you sure you want to send a MFA request?',
},
{
label: 'Set Per-User MFA',
color: 'info',
modal: true,
modalUrl: `/api/ExecPerUserMFA`,
modalType: 'POST',
modalBody: {
TenantFilter: tenant.defaultDomainName,
userId: `${row.userPrincipalName}`,
},
modalMessage: 'Are you sure you want to set per-user MFA for these users?',
modalDropdown: {
url: '/MFAStates.json',
labelField: 'label',
valueField: 'value',
addedField: {
State: 'value',
},
},
},
{
label: 'Convert to Shared Mailbox',
color: 'info',
Expand Down Expand Up @@ -500,6 +520,26 @@ const Users = (row) => {
modalUrl: `/api/ExecResetMFA?TenantFilter=!Tenant&ID=!id`,
modalMessage: 'Are you sure you want to enable MFA for these users?',
},
{
label: 'Set Per-User MFA',
color: 'info',
modal: true,
modalUrl: `/api/ExecPerUserMFA`,
modalType: 'POST',
modalBody: {
TenantFilter: tenant.defaultDomainName,
userId: '!userPrincipalName',
},
modalMessage: 'Are you sure you want to set per-user MFA for these users?',
modalDropdown: {
url: '/MFAStates.json',
labelField: 'label',
valueField: 'value',
addedField: {
State: 'value',
},
},
},
{
label: 'Enable Online Archive',
color: 'info',
Expand Down
24 changes: 16 additions & 8 deletions src/views/identity/reports/MFAReport.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,56 @@ import React from 'react'
import { useSelector } from 'react-redux'
import { cellBooleanFormatter, CellTip } from 'src/components/tables'
import { CippPageList } from 'src/components/layout'
import { Row } from 'react-bootstrap'

const columns = [
{
selector: (row) => row['UPN'],
name: 'User Principal Name',
sortable: true,
exportSelector: 'UPN',
grow: 2,
cell: (row) => CellTip(row['UPN']),
maxWidth: '400px',
},
{
selector: (row) => row['AccountEnabled'],
name: 'Account Enabled',
sortable: true,
cell: cellBooleanFormatter({ colourless: true }),
exportSelector: 'AccountEnabled',
maxWidth: '200px',
},
{
selector: (row) => row['isLicensed'],
name: 'Account Licensed',
sortable: true,
cell: cellBooleanFormatter({ colourless: true }),
exportSelector: 'isLicensed',
maxWidth: '200px',
},
{
selector: (row) => row['MFARegistration'],
name: 'Registered for Conditional MFA',
sortable: true,
cell: cellBooleanFormatter(),
exportSelector: 'MFARegistration',
maxWidth: '200px',
},
{
selector: (row) => row['PerUser'],
name: 'Per user MFA Status',
sortable: true,
cell: cellBooleanFormatter(),
exportSelector: 'PerUser',
maxWidth: '200px',
},
{
selector: (row) => row['CoveredBySD'],
name: 'Enforced via Security Defaults',
sortable: true,
cell: cellBooleanFormatter({ colourless: true }),
cell: cellBooleanFormatter(),
exportSelector: 'CoveredBySD',
maxWidth: '200px',
},
{
selector: (row) => row['CoveredByCA'],
Expand All @@ -46,12 +60,6 @@ const columns = [
cell: (row) => CellTip(row['CoveredByCA']),
exportSelector: 'CoveredByCA',
},
{
selector: (row) => row['PerUser'],
name: 'Per user MFA Status',
sortable: true,
exportSelector: 'PerUser',
},
]

const Altcolumns = [
Expand Down
3 changes: 1 addition & 2 deletions version_latest.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
5.8.0

5.8.5