Skip to content

Dev to hotfix #3542

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

Merged
merged 63 commits into from
Jan 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
1b8eaca
Merge pull request #89 from KelvinTegelaar/dev
kris6673 Jan 27, 2025
6443e37
Merge pull request #93 from KelvinTegelaar/dev
kris6673 Jan 27, 2025
5952a7d
Update required engine to Node 20.
redanthrax Jan 27, 2025
56242de
Add fallback message for empty license translations
kris6673 Jan 27, 2025
2968075
Trim standards search, show output with 0 results, min width
redanthrax Jan 27, 2025
6005b87
Add User ID display to user tabs
kris6673 Jan 27, 2025
bcdbd1a
fix: revert back to location
OfficialEsco Jan 28, 2025
ebc19ab
Merge pull request #3498 from Ren-Roros-Digital/location
KelvinTegelaar Jan 28, 2025
d27a744
Merge pull request #3496 from kris6673/unlicensed-message
KelvinTegelaar Jan 28, 2025
137e9b0
Merge pull request #3495 from redanthrax/StandardsSearchStyling
KelvinTegelaar Jan 28, 2025
0523c8c
bring back offboarding defaults
JohnDuprey Jan 28, 2025
03f6426
Merge pull request #95 from KelvinTegelaar/dev
kris6673 Jan 28, 2025
6dd731b
Add icons for permission actions in OneDrive page
kris6673 Jan 28, 2025
5c88376
Remove unused actions and offCanvas variables from Azure AD Connect r…
kris6673 Jan 28, 2025
a4f8f1b
Remove unused actions and offCanvas variables from Sign Ins Report
kris6673 Jan 28, 2025
2e095d0
Refactor user filters in administration page for improved readability
kris6673 Jan 28, 2025
4745883
Add filters and actions to MFA Report page
kris6673 Jan 28, 2025
59adc40
Restrict creatable option for MFA user actions
kris6673 Jan 28, 2025
b363c66
Remove unused actions and offCanvas variables
kris6673 Jan 28, 2025
8cf68f8
Update tenant reports pathing to be the same as other pages
kris6673 Jan 28, 2025
295d71f
Update device management path to align with new endpoint structure
kris6673 Jan 28, 2025
ac0f452
forgot a spot
kris6673 Jan 28, 2025
d41a0b7
Update transport paths in email layout for consistency
kris6673 Jan 28, 2025
db5f73f
Update connectors paths to align with transport structure
kris6673 Jan 28, 2025
311c360
Fix path casing in email administration and remove unused deploy conn…
kris6673 Jan 28, 2025
f040f64
Remove unused placeholder and reorder to fit the rest of CIPPs pages
kris6673 Jan 28, 2025
dcdfc84
Add Book icon to connection filter page
kris6673 Jan 28, 2025
c7c8a3e
Update link in domains analyser to point to tools section
kris6673 Jan 28, 2025
a1b4b46
Update paths for Graph Explorer, Application Approval, and Individual…
kris6673 Jan 28, 2025
afbfd9c
Add icons for device actions in the autopilot device list
kris6673 Jan 28, 2025
23bb377
Fix Add Status Page placeholder
kris6673 Jan 29, 2025
be8d2cf
adjust logo size
JohnDuprey Jan 29, 2025
3ceb267
Merge pull request #3508 from kris6673/things-and-stuff
KelvinTegelaar Jan 29, 2025
9a403c2
Merge pull request #3492 from redanthrax/node20
KelvinTegelaar Jan 29, 2025
bb28245
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
JohnDuprey Jan 29, 2025
f75f84f
fix: added condition to name location actions
OfficialEsco Jan 30, 2025
c398600
fix: added conditional action to Quarantine Management
OfficialEsco Jan 30, 2025
f6029e3
fix: added trashbin to Remove
OfficialEsco Jan 30, 2025
3ed5d80
fix: fixed Contacts Page
OfficialEsco Jan 30, 2025
21ba332
fix: added condition to Global Address list
OfficialEsco Jan 30, 2025
360e275
fix: added edit icon
OfficialEsco Jan 30, 2025
51fe974
fix: added icon to global address list
OfficialEsco Jan 30, 2025
a99e4b7
hide tenant in title for logbook
JohnDuprey Jan 30, 2025
c0e01eb
fix: irons for named location
OfficialEsco Jan 30, 2025
215c6a3
fix: icons and fix block signin on Shared Mailboxes
OfficialEsco Jan 30, 2025
86ec1c9
fix: fix remove contact type
OfficialEsco Jan 30, 2025
6003bb1
fix: added icon to deleted items
OfficialEsco Jan 30, 2025
abd2d8c
fix: fix and add icons for email filter pages
OfficialEsco Jan 30, 2025
fd35931
Update CippApiDialog.jsx
JohnDuprey Jan 30, 2025
7e8bdc6
fix: no idea why lower case works as expected
OfficialEsco Jan 30, 2025
a25dd35
Merge pull request #3529 from Ren-Roros-Digital/namedlocation
JohnDuprey Jan 30, 2025
f15e30a
Update CippApiDialog.jsx
JohnDuprey Jan 30, 2025
4a812c0
add missing mailbox actions
JohnDuprey Jan 30, 2025
eba21f5
Add back sync autopilot devices button
kris6673 Jan 29, 2025
b0aa777
add github logos
JohnDuprey Jan 31, 2025
8d181b0
downgrade node to 20.18.1
JohnDuprey Jan 31, 2025
1ea3338
cleanup manually specified tenant filters in actions
JohnDuprey Jan 31, 2025
8830a02
fix reset form issue
KelvinTegelaar Jan 31, 2025
17f20dc
Merge pull request #3533 from kris6673/icons-and-autopilotsync
KelvinTegelaar Jan 31, 2025
d7f94b2
feat: readded MDM wipe methods
OfficialEsco Jan 31, 2025
2198b45
Merge pull request #3537 from Ren-Roros-Digital/mdmmethods
KelvinTegelaar Jan 31, 2025
392baf3
fix graph explorer in offcanvas
JohnDuprey Jan 31, 2025
f740ad5
up version
JohnDuprey Jan 31, 2025
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
12 changes: 6 additions & 6 deletions generate-placeholders.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ const pages = [
{ title: "Backup Wizard", path: "/tenant/backup/backup-wizard" },
{ title: "Restore Wizard", path: "/tenant/backup/restore-wizard" },
{ title: "Tools", path: "/tenant/administration" },
{ title: "Graph Explorer", path: "/tenant/administration/graph-explorer" },
{ title: "Application Approval", path: "/tenant/administration/appapproval" },
{ title: "Graph Explorer", path: "/tenant/tools/graph-explorer" },
{ title: "Application Approval", path: "/tenant/tools/appapproval" },
{ title: "IP Database", path: "/tenant/tools/geoiplookup" },
{ title: "Tenant Lookup", path: "/tenant/administration/tenantlookup" },
{ title: "Individual Domain Check", path: "/tenant/standards/individual-domains" },
{ title: "Individual Domain Check", path: "/tenant/tools/individual-domains" },
{ title: "BPA Report Builder", path: "/tenant/tools/bpa-report-builder" },
{ title: "Standards", path: "/tenant/standards" },
{ title: "Edit Standards", path: "/tenant/standards/list-applied-standards" },
Expand Down Expand Up @@ -82,7 +82,7 @@ const pages = [
{ title: "Add Profile", path: "/endpoint/autopilot/add-profile" },
{ title: "Status Pages", path: "/endpoint/autopilot/list-status-pages" },
{ title: "Add Status Page", path: "/endpoint/autopilot/add-status-page" },
{ title: "Devices", path: "/endpoint/reports/devices" },
{ title: "Devices", path: "/endpoint/MEM/devices" },
{ title: "Configuration Policies", path: "/endpoint/MEM/list-policies" },
{ title: "Compliance Policies", path: "/endpoint/MEM/list-compliance-policies" },
{ title: "Protection Policies", path: "/endpoint/MEM/list-appprotection-policies" },
Expand All @@ -108,9 +108,9 @@ const pages = [
{ title: "Transport rules", path: "/email/transport/list-rules" },
{ title: "Deploy Transport rule", path: "/email/transport/deploy-rules" },
{ title: "Transport Templates", path: "/email/transport/list-templates" },
{ title: "Connectors", path: "/email/connectors/list-connectors" },
{ title: "Connectors", path: "/email/transport/list-connectors" },
{ title: "Deploy Connector Templates", path: "/email/connectors/deploy-connector" },
{ title: "Connector Templates", path: "/email/connectors/list-connector-templates" },
{ title: "Connector Templates", path: "/email/transport/list-connector-templates" },
{ title: "Spamfilter", path: "/email/spamfilter/list-spamfilter" },
{ title: "Apply Spamfilter Template", path: "/email/spamfilter/deploy" },
{ title: "Templates", path: "/email/spamfilter/list-templates" },
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "cipp",
"version": "7.0.0",
"version": "7.1.3",
"author": "CIPP Contributors",
"homepage": "https://cipp.app/",
"bugs": {
"url": "https://github.com/KelvinTegelaar/CIPP/issues"
},
"license": "AGPL-3.0",
"engines": {
"node": "^18.17.0"
"node": "^20.18.1"
},
"repository": {
"type": "git",
Expand Down
Binary file added public/assets/integrations/github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/assets/integrations/github_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion public/version.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"version": "7.1.2"
"version": "7.1.3"
}
5 changes: 5 additions & 0 deletions src/components/CippCards/CippUserInfoCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ export const CippUserInfoCard = (props) => {
)
}
/>
<PropertyListItem
divider
label="User ID"
value={isFetching ? <Skeleton variant="text" width={120} /> : user?.id || "N/A"}
/>
<PropertyListItem
divider
label="Email Address"
Expand Down
1 change: 0 additions & 1 deletion src/components/CippComponents/CippApiDialog.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ export const CippApiDialog = (props) => {
} else {
Object.keys(dataObject).forEach((key) => {
const value = dataObject[key];

if (typeof value === "string" && value.startsWith("!")) {
newData[key] = value.slice(1);
} else if (typeof value === "string") {
Expand Down
1 change: 1 addition & 0 deletions src/components/CippComponents/CippUserActions.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export const CippUserActions = () => {
{ label: "Disabled", value: "Disabled" },
],
multiple: false,
creatable: false,
},
],
confirmText: "Are you sure you want to set per-user MFA for these users?",
Expand Down
4 changes: 2 additions & 2 deletions src/components/CippFormPages/CippAddGroupForm.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ const CippAddGroupForm = (props) => {
formControl={formControl}
name="owners"
label="Owners"
multiple={false}
multiple={true}
select={"id,userPrincipalName,displayName"}
/>
</Grid>
Expand All @@ -62,7 +62,7 @@ const CippAddGroupForm = (props) => {
formControl={formControl}
name="members"
label="Members"
multiple={false}
multiple={true}
select={"id,userPrincipalName,displayName"}
/>
</Grid>
Expand Down
3 changes: 1 addition & 2 deletions src/components/CippFormPages/CippFormPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const CippFormPage = (props) => {
formControl,
postUrl,
customDataformatter,
resetForm = true,
resetForm = false,
hideBackButton = false,
hidePageType = false,
hideTitle = false,
Expand All @@ -36,7 +36,6 @@ const CippFormPage = (props) => {
...other
} = props;
const router = useRouter();

//check if there are
const postCall = ApiPostCall({
datafromUrl: true,
Expand Down
3 changes: 2 additions & 1 deletion src/components/CippFormPages/CippSchedulerForm.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,8 @@ const CippSchedulerForm = (props) => {
formControl={formControl}
>
<Grid item xs={12} md={gridSize} key={idx}>
{param.Type === "System.Boolean" ? (
{param.Type === "System.Boolean" ||
param.Type === "System.Management.Automation.SwitchParameter" ? (
<CippFormComponent
type="switch"
name={`parameters.${param.Name}`}
Expand Down
224 changes: 126 additions & 98 deletions src/components/CippStandards/CippStandardDialog.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,18 @@ const CippStandardDialog = ({

const handleSearchQueryChange = useCallback(
debounce((query) => {
setSearchQuery(query);
setSearchQuery(query.trim());
}, 50),
[]
);

return (
<Dialog open={dialogOpen} onClose={handleCloseDialog} maxWidth="xxl">
<Dialog open={dialogOpen} onClose={handleCloseDialog} maxWidth="xxl"
PaperProps={{
sx: {
minWidth: "720px",
},
}}>
<DialogTitle>Select a Standard to Add</DialogTitle>
<DialogContent sx={{ backgroundColor: "background.default" }}>
<TextField
Expand All @@ -58,105 +63,128 @@ const CippStandardDialog = ({
onChange={(e) => handleSearchQueryChange(e.target.value.toLowerCase())}
/>
<Grid container spacing={3}>
{Object.keys(categories).map((category) =>
filterStandards(categories[category]).map((standard) => (
<Grid item xs={12} md={3} key={standard.name}>
<Card
sx={{
display: "flex",
flexDirection: "column",
height: "100%",
}}
>
<CardContent sx={{ flexGrow: 1 }}>
<Typography variant="h6" gutterBottom>
{standard.label}
</Typography>
{standard.helpText && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Description:
</Typography>
<Typography variant="body2" color="textSecondary" paragraph>
{standard.helpText}
</Typography>
</>
)}
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Category:
</Typography>
<Chip label={category} size="small" color="primary" sx={{ mt: 1, mb: 2 }} />
{standard.tag?.filter((tag) => !tag.toLowerCase().includes("impact")).length >
0 && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Tags:
</Typography>
<Box sx={{ display: "flex", flexWrap: "wrap", mb: 2 }}>
{standard.tag
.filter((tag) => !tag.toLowerCase().includes("impact"))
.map((tag, idx) => (
<Chip
key={idx}
label={tag}
size="small"
color="info"
sx={{ mr: 1, mt: 1 }}
/>
))}
</Box>
</>
)}
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Impact:
</Typography>
<Chip
label={standard.impact}
size="small"
color={
standard.impact === "High Impact"
? "error"
: standard.impact === "Medium Impact"
? "warning"
: "info"
}
/>
{standard.recommendedBy?.length > 0 && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Recommended By:
</Typography>
<Typography variant="body2" color="textSecondary" paragraph>
{standard.recommendedBy.join(", ")}
</Typography>
</>
)}
</CardContent>

<CardContent>
{standard.multiple ? (
<IconButton
{Object.keys(categories).every(
(category) => filterStandards(categories[category]).length === 0
) ? (
<Typography
variant="h6"
color="textSecondary"
sx={{ mt: 4, textAlign: "center", width: "100%" }}
>
Search returned no results
</Typography>
) : (
Object.keys(categories).map((category) =>
filterStandards(categories[category]).map((standard) => (
<Grid item xs={12} md={3} key={standard.name}>
<Card
sx={{
display: "flex",
flexDirection: "column",
height: "100%",
}}
>
<CardContent sx={{ flexGrow: 1 }}>
<Typography variant="h6" gutterBottom>
{standard.label}
</Typography>
{standard.helpText && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Description:
</Typography>
<Typography variant="body2" color="textSecondary" paragraph>
{standard.helpText}
</Typography>
</>
)}
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Category:
</Typography>
<Chip
label={category}
size="small"
color="primary"
disabled={isButtonDisabled}
onClick={() => handleAddClick(standard.name)}
>
<Add />
</IconButton>
) : (
<FormControlLabel
control={
<Switch
checked={!!selectedStandards[standard.name]}
onChange={() => handleToggleSingleStandard(standard.name)}
/>
sx={{ mt: 1, mb: 2 }}
/>
{standard.tag?.filter((tag) => !tag.toLowerCase().includes("impact")).length >
0 && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Tags:
</Typography>
<Box sx={{ display: "flex", flexWrap: "wrap", mb: 2 }}>
{standard.tag
.filter((tag) => !tag.toLowerCase().includes("impact"))
.map((tag, idx) => (
<Chip
key={idx}
label={tag}
size="small"
color="info"
sx={{ mr: 1, mt: 1 }}
/>
))}
</Box>
</>
)}
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Impact:
</Typography>
<Chip
label={standard.impact}
size="small"
color={
standard.impact === "High Impact"
? "error"
: standard.impact === "Medium Impact"
? "warning"
: "info"
}
label="Add this standard to the template"
/>
)}
</CardContent>
</Card>
</Grid>
))
{standard.recommendedBy?.length > 0 && (
<>
<Typography variant="subtitle2" sx={{ mt: 2 }}>
Recommended By:
</Typography>
<Typography
variant="body2"
color="textSecondary"
paragraph
>
{standard.recommendedBy.join(", ")}
</Typography>
</>
)}
</CardContent>

<CardContent>
{standard.multiple ? (
<IconButton
color="primary"
disabled={isButtonDisabled}
onClick={() => handleAddClick(standard.name)}
>
<Add />
</IconButton>
) : (
<FormControlLabel
control={
<Switch
checked={!!selectedStandards[standard.name]}
onChange={() =>
handleToggleSingleStandard(standard.name)
}
/>
}
label="Add this standard to the template"
/>
)}
</CardContent>
</Card>
</Grid>
))
)
)}
</Grid>
</DialogContent>
Expand Down
Loading
Loading