Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
0a0c77e
recommendations and casing
kris6673 Feb 14, 2025
c1894f6
Fix AutoAddProxy standard typo and disable features that dont work in…
kris6673 Feb 15, 2025
29266f6
Remove last redundant tags for ashe
kris6673 Feb 15, 2025
1a9abb5
New standard: AntiSpamSafeList
kris6673 Feb 15, 2025
81f3057
Change to POST
kris6673 Feb 17, 2025
d683c91
Change to POST
kris6673 Feb 17, 2025
f9ea548
Change mailbox conversion actions from GET to POST and update API end…
kris6673 Feb 17, 2025
4843840
Change to POST
kris6673 Feb 17, 2025
a74d9b1
Change restore action type from GET to POST
kris6673 Feb 17, 2025
174b37f
Change spam filter actions from GET to POST
kris6673 Feb 17, 2025
bdbe851
Change remove mailbox rule action type from GET to POST
kris6673 Feb 17, 2025
892004c
Change Send MFA Push action type from GET to POST
kris6673 Feb 17, 2025
2789f7b
Change Enable Online Archive action type from GET to POST
kris6673 Feb 17, 2025
656809e
Change Block Sign In action type from GET to POST
kris6673 Feb 17, 2025
bebccd1
Change Reset Password action type from GET to POST
kris6673 Feb 17, 2025
3c9c4c0
Change Revoke all user sessions action type from GET to POST
kris6673 Feb 17, 2025
d836a27
Change Delete User action type from GET to POST
kris6673 Feb 17, 2025
4f920bf
feat: New MDM User Scope standard
OfficialEsco Feb 17, 2025
d1aca5f
feat: TeamsGlobalMeetingPolicy AllowExternalParticipantGiveRequestCon…
OfficialEsco Feb 18, 2025
24a3166
feat: Standards addedDate property
OfficialEsco Feb 18, 2025
213e2d2
feat: InTune Template exclude
OfficialEsco Feb 19, 2025
5169104
Change Delete policy action type from GET to POST
kris6673 Feb 19, 2025
f4e81b7
GET to POST
kris6673 Feb 20, 2025
a50fc78
feat: nodejs 22 support
OfficialEsco Feb 21, 2025
59256bf
Remove useless more info and remove option to add own input to autoCo…
kris6673 Feb 21, 2025
9bf7ac1
Fix wrong property name
kris6673 Feb 22, 2025
9038ee6
Change action types from GET to POST for mailbox and group management…
kris6673 Feb 23, 2025
d10a2d1
Fix wrong endpoint used for deleting rooms and mailboxes
kris6673 Feb 23, 2025
9f58152
Change action types from GET to POST for Copy Sent Items operations
kris6673 Feb 23, 2025
4492e55
GET to POST
kris6673 Feb 23, 2025
7e89f0f
Change action types from GET to POST for antiphishing, malware, safe …
kris6673 Feb 23, 2025
230622b
Change action types from GET to POST for compliance policies and temp…
kris6673 Feb 23, 2025
df1475b
Change action types from GET to POST for various user and policy oper…
kris6673 Feb 23, 2025
9f13883
Merge pull request #3681 from Ren-Roros-Digital/node22
KelvinTegelaar Feb 24, 2025
4ffbe3f
Merge pull request #3674 from Ren-Roros-Digital/intuneExclude
KelvinTegelaar Feb 24, 2025
1cc076d
Merge pull request #3664 from Ren-Roros-Digital/AllowExternalParticip…
KelvinTegelaar Feb 24, 2025
c63c6a4
Merge pull request #3663 from Ren-Roros-Digital/DateAdded
KelvinTegelaar Feb 24, 2025
b05272c
Update src/data/standards.json
kris6673 Feb 24, 2025
65203d7
Update src/data/standards.json
kris6673 Feb 24, 2025
ff65d48
Update src/data/standards.json
kris6673 Feb 24, 2025
8602d02
Update src/data/standards.json
kris6673 Feb 24, 2025
221ee8d
Merge pull request #3660 from kris6673/endpoints
JohnDuprey Feb 24, 2025
bff556e
fix version number in build steps
JohnDuprey Feb 24, 2025
33ac08f
make build process get node version
JohnDuprey Feb 24, 2025
980738b
feat: readd defaultValue to Standards
OfficialEsco Feb 25, 2025
053ce3e
Merge pull request #3656 from Ren-Roros-Digital/mdmscope
JohnDuprey Feb 25, 2025
e499247
Merge pull request #3695 from Ren-Roros-Digital/defautlValue
JohnDuprey Feb 25, 2025
844f51c
Merge branch 'dev' into standards
JohnDuprey Feb 25, 2025
3a1c0b4
Merge pull request #3653 from kris6673/standards
JohnDuprey Feb 25, 2025
e2548ce
fix offboarding job
JohnDuprey Feb 25, 2025
16400f3
feat: disable form elements in cippformcondition
JohnDuprey Feb 25, 2025
c14f506
Update CippSchedulerForm.jsx
JohnDuprey Feb 25, 2025
37f3917
Create dev_deploy.yml
JohnDuprey Feb 26, 2025
c6b6408
Update settings-context.js
JohnDuprey Feb 26, 2025
ed0c7d6
fix tanstack tools
JohnDuprey Feb 26, 2025
e8a15e9
add default domain name
JohnDuprey Feb 26, 2025
1cbacd7
Update CippIntegrationTenantMapping.jsx
JohnDuprey Feb 26, 2025
88fd0f6
Update _app.js
JohnDuprey Feb 26, 2025
94ea962
feat: check auth more frequently
JohnDuprey Feb 26, 2025
9f4c8f0
feat: new UserPreferredLanguage standard
OfficialEsco Feb 26, 2025
c7ca93c
Update standards.json
JohnDuprey Feb 26, 2025
7d0e295
fix tenant setting actions
JohnDuprey Feb 26, 2025
c8a21c4
fix: external link turbo mode
JohnDuprey Feb 26, 2025
6f95ab3
feat: add role list back to user preferences page
JohnDuprey Feb 27, 2025
1af58f9
Merge pull request #3699 from Ren-Roros-Digital/UserPrefLang
JohnDuprey Feb 27, 2025
252b40e
feat: more SpamFilter options
OfficialEsco Feb 27, 2025
dd1c132
feat: add docs link to speed dial
JohnDuprey Feb 27, 2025
2998a81
Merge pull request #3704 from Ren-Roros-Digital/SpamFilter
JohnDuprey Feb 27, 2025
4e0242c
form tweaks
JohnDuprey Feb 28, 2025
93ac677
feat: update mailbox API data structure to use ExchangeGuid so it dos…
kris6673 Feb 28, 2025
155954c
CIPP now gives head
KelvinTegelaar Feb 28, 2025
527ac4b
Merge pull request #3713 from kris6673/fix-managed-folder-assistant
KelvinTegelaar Feb 28, 2025
72e0105
fix: bitlocker key retrieval on identity>devices
JohnDuprey Feb 28, 2025
a9b3e8a
fix: remove filter from relationship list
JohnDuprey Feb 28, 2025
bf9d2b5
fix: bpa builder tweaks
JohnDuprey Mar 1, 2025
65e06bc
corrected tthe head
KelvinTegelaar Mar 1, 2025
a63435a
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
KelvinTegelaar Mar 1, 2025
01e8f52
update help text for viva
JohnDuprey Mar 2, 2025
ee660ae
fix: remove required property on field mapping
JohnDuprey Mar 2, 2025
dd2b139
chore: update Grid to use mui/system
JohnDuprey Mar 2, 2025
71d98ef
feat: improve cippformcondition
JohnDuprey Mar 2, 2025
0a2f172
test invalidate auth querykey on redirect
JohnDuprey Mar 3, 2025
e687383
fix: addtogroup functionality
JohnDuprey Mar 3, 2025
eca425f
usability
KelvinTegelaar Mar 3, 2025
766e14e
fix: boolean support for cippapidialog
JohnDuprey Mar 3, 2025
b86fa06
fix: add redirect url to unauthenticated page
JohnDuprey Mar 3, 2025
d6732b5
feat: add functionality to enable auto-expanding archive for users
kris6673 Mar 3, 2025
976dfb3
feat: add bookmarks
JohnDuprey Mar 3, 2025
281c6a2
Merge pull request #3728 from kris6673/auto-expanding-archive
JohnDuprey Mar 3, 2025
5fa5cb9
add close nav
JohnDuprey Mar 3, 2025
b978e5f
feat: add disable forwarding functionality in CippWizardOffboarding
kris6673 Mar 3, 2025
6b24564
Merge pull request #3729 from kris6673/disable-forwarding
JohnDuprey Mar 3, 2025
0b6eeba
fix: casing
JohnDuprey Mar 4, 2025
9a73a15
feat: display manager in view user
OfficialEsco Mar 4, 2025
f5d7d8f
feat: add application roles to permission check
JohnDuprey Mar 4, 2025
98d817d
fix: remove internal link routing from useEffect
JohnDuprey Mar 4, 2025
4a319e2
fix: tenant list links
JohnDuprey Mar 4, 2025
21e555a
feat: added set sponsor in edit user
OfficialEsco Mar 4, 2025
a121a37
chore: cleanup user preferences
JohnDuprey Mar 4, 2025
3643491
chore: add license page back
JohnDuprey Mar 4, 2025
46fb90d
Merge pull request #3731 from Ren-Roros-Digital/viewmanager
JohnDuprey Mar 4, 2025
9596578
Merge pull request #3732 from Ren-Roros-Digital/sponsor
JohnDuprey Mar 4, 2025
bd034d5
Update _app.js
JohnDuprey Mar 4, 2025
172bdb4
fixes edit user bugs
KelvinTegelaar Mar 4, 2025
80b56a8
fix: bookmarking with long titles
JohnDuprey Mar 4, 2025
69c6f52
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
JohnDuprey Mar 4, 2025
dab5f7f
up version
KelvinTegelaar Mar 4, 2025
6a349d7
update confirm text
JohnDuprey Mar 4, 2025
821d7e0
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP into dev
JohnDuprey Mar 4, 2025
c92dedf
Merge pull request #3734 from KelvinTegelaar/dev
KelvinTegelaar Mar 4, 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
9 changes: 8 additions & 1 deletion .github/workflows/cipp_dev_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,17 @@ jobs:
uses: actions/checkout@v4.2.2

# Set up Node.js
- name: Get Node version
id: get_node_version
run: |
node_raw_version=$(node -p "require('./package.json').engines.node")
node_sanitized_version=$(echo $node_raw_version | sed -E 's/[^0-9.]+//g')
echo "node_version=$node_sanitized_version" >> $GITHUB_OUTPUT

- name: Set up Node.js
uses: actions/setup-node@v4.2.0
with:
node-version: '20.18.1'
node-version: ${{ steps.get_node_version.outputs.node_version }}

# Install dependencies
- name: Install Dependencies
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/cipp_frontend_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,17 @@ jobs:
uses: actions/checkout@v4.2.2

# Set up Node.js
- name: Get Node version
id: get_node_version
run: |
node_raw_version=$(node -p "require('./package.json').engines.node")
node_sanitized_version=$(echo $node_raw_version | sed -E 's/[^0-9.]+//g')
echo "node_version=$node_sanitized_version" >> $GITHUB_OUTPUT

- name: Set up Node.js
uses: actions/setup-node@v4.2.0
with:
node-version: '20.18.1'
node-version: ${{ steps.get_node_version.outputs.node_version }}

# Install dependencies
- name: Install Dependencies
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/dev_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CIPP Development Frontend CI/CD

on:
push:
branches:
- dev

jobs:
build_and_deploy_job:
if: github.event.repository.fork == false && github.event_name == 'push'
runs-on: ubuntu-latest
name: Build and Deploy Job
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Build And Deploy
id: builddeploy
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_AMBITIOUS_MOSS_0A047A40F }} # change this to your repository secret name
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments)
action: 'upload'
###### Repository/Build Configurations - These values can be configured to match your app requirements. ######
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: '/' # App source code path
api_location: '' # Api source code path - optional
output_location: 'out' # Built app content directory - optional
###### End of Repository/Build Configurations ######

close_pull_request_job:
if: github.event.repository.fork == false && github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request Job
steps:
- name: Close Pull Request
id: closepullrequest
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_AMBITIOUS_MOSS_0A047A40F }} # change this to your repository secret name
action: 'close'
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
},
"license": "AGPL-3.0",
"engines": {
"node": "^20.18.1"
"node": "^22.13.0"
},
"repository": {
"type": "git",
Expand Down
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.2.3"
"version": "7.3.0"
}
13 changes: 10 additions & 3 deletions src/api/ApiCall.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import axios, { isAxiosError } from "axios";
import { useDispatch } from "react-redux";
import { showToast } from "../store/toasts";
import { getCippError } from "../utils/get-cipp-error";
import { useRouter } from "next/router";

export function ApiGetCall(props) {
const {
Expand All @@ -16,6 +15,8 @@ export function ApiGetCall(props) {
bulkRequest = false,
toast = false,
onResult,
staleTime = 600000, // 10 minutes
refetchOnWindowFocus = false,
} = props;
const queryClient = useQueryClient();
const dispatch = useDispatch();
Expand All @@ -27,6 +28,12 @@ export function ApiGetCall(props) {
returnRetry = false;
}
if (isAxiosError(error) && HTTP_STATUS_TO_NOT_RETRY.includes(error.response?.status ?? 0)) {
if (
error.response?.status === 302 &&
error.response?.headers.get("location").includes("/.auth/login/aad")
) {
queryClient.invalidateQueries({ queryKey: ["authmecipp"] });
}
returnRetry = false;
}
if (returnRetry === false && toast) {
Expand Down Expand Up @@ -93,8 +100,8 @@ export function ApiGetCall(props) {
return response.data;
}
},
staleTime: 600000, // 10 minutes
refetchOnWindowFocus: false,
staleTime: staleTime,
refetchOnWindowFocus: refetchOnWindowFocus,
retry: retryFn,
});
return queryInfo;
Expand Down
5 changes: 2 additions & 3 deletions src/components/CippCards/CippPageCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { useRouter } from "next/router";
import { Box, Container, Stack, Button, SvgIcon, Typography, Card } from "@mui/material";
import ArrowLeftIcon from "@mui/icons-material/ArrowLeft";
import Head from "next/head";
import { CippHead } from "../CippComponents/CippHead";
const CippPageCard = (props) => {
const {
title,
Expand All @@ -20,9 +21,7 @@ const CippPageCard = (props) => {

return (
<>
<Head>
<title>{title}</title>
</Head>
<CippHead title={title} />
<Box
sx={{
flexGrow: 1,
Expand Down
6 changes: 5 additions & 1 deletion src/components/CippCards/CippUserInfoCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,14 @@ export const CippUserInfoCard = (props) => {
value={isFetching ? <Skeleton variant="text" width={100} /> : user?.jobTitle || "N/A"}
/>
<PropertyListItem
divider
label="Department"
value={isFetching ? <Skeleton variant="text" width={100} /> : user?.department || "N/A"}
/>
<PropertyListItem
divider
label="Manager"
value={isFetching ? <Skeleton variant="text" width={100} /> : user?.manager?.displayName || "N/A"}
/>
<PropertyListItem
label="Address"
value={
Expand Down
26 changes: 20 additions & 6 deletions src/components/CippComponents/CippApiDialog.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ export const CippApiDialog = (props) => {
} else {
newData[key] = value;
}
} else if (typeof value === 'boolean') {
newData[key] = value;
} else if (typeof value === "object" && value !== null) {
const processedValue = processActionData(value, row, replacementBehaviour);
if (replacementBehaviour !== "removeNulls" || Object.keys(processedValue).length > 0) {
Expand Down Expand Up @@ -273,20 +275,32 @@ export const CippApiDialog = (props) => {
.reduce((acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined), obj);
};

// Handling link navigation
if (api.link) {
// Handling external link navigation
useEffect(() => {
if (api.link && createDialog.open) {
const linkWithRowData = api.link.replace(/\[([^\]]+)\]/g, (_, key) => {
return getNestedValue(row, key) || `[${key}]`;
});

if (!linkWithRowData.startsWith("/")) {
window.open(linkWithRowData, api.target || "_blank");
createDialog.handleClose();
}
}
}, [api.link, createDialog.open]);

// Handling internal link navigation
if (api.link && createDialog.open) {
const linkWithRowData = api.link.replace(/\[([^\]]+)\]/g, (_, key) => {
return getNestedValue(row, key) || `[${key}]`;
});

if (linkWithRowData.startsWith("/")) {
router.push(linkWithRowData, undefined, { shallow: true });
} else {
window.open(linkWithRowData, api.target || "_blank");
createDialog.handleClose();
}

return null;
}

useEffect(() => {
if (api.noConfirm) {
formHook.handleSubmit(onSubmit)(); // Submits the form on mount
Expand Down
21 changes: 13 additions & 8 deletions src/components/CippComponents/CippCentralSearch.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import {
Grid,
Card,
CardContent,
CardActionArea,
Typography,
Box,
} from "@mui/material";
Expand Down Expand Up @@ -107,15 +108,19 @@ export const CippCentralSearch = ({ handleClose, open }) => {
<Grid item xs={12} sm={12} md={12} key={index}>
<Card
variant="outlined"
sx={{ height: "100%", cursor: "pointer" }}
onClick={() => handleCardClick(item.path)}
sx={{ height: "100%" }}
>
<CardContent>
<Typography variant="h6">{highlightMatch(item.title)}</Typography>
<Typography variant="body2" color="textSecondary">
Path: {highlightMatch(item.path)}
</Typography>
</CardContent>
<CardActionArea
onClick={() => handleCardClick(item.path)}
aria-label={`Navigate to ${item.title}`}
>
<CardContent>
<Typography variant="h6">{highlightMatch(item.title)}</Typography>
<Typography variant="body2" color="textSecondary">
Path: {highlightMatch(item.path)}
</Typography>
</CardContent>
</CardActionArea>
</Card>
</Grid>
))}
Expand Down
4 changes: 4 additions & 0 deletions src/components/CippComponents/CippFormComponent.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export const CippFormComponent = (props) => {
name, // The name that may have bracket notation
label,
labelLocation = "behind", // Default location for switches
defaultValue,
...other
} = props;
const { errors } = useFormState({ control: formControl.control });
Expand Down Expand Up @@ -121,6 +122,7 @@ export const CippFormComponent = (props) => {
{...other}
{...formControl.register(convertedName, { ...validators })}
label={label}
defaultValue={defaultValue}
/>
</div>
<Typography variant="subtitle3" color="error">
Expand Down Expand Up @@ -156,6 +158,7 @@ export const CippFormComponent = (props) => {
{...other}
{...formControl.register(convertedName, { ...validators })}
label={label}
defaultValue={defaultValue}
/>
</div>
<Typography variant="subtitle3" color="error">
Expand All @@ -171,6 +174,7 @@ export const CippFormComponent = (props) => {
<Controller
name={convertedName}
control={formControl.control}
defaultValue={defaultValue}
render={({ field }) =>
renderSwitchWithLabel(
<Switch
Expand Down
Loading