Skip to content

Dev to hotfix #3755

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 16 commits into from
Mar 6, 2025
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
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.3.1"
"version": "7.3.2"
}
2 changes: 1 addition & 1 deletion src/components/CippComponents/CippAutocomplete.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export const CippAutoComplete = (props) => {
setGetRequestInfo({
url: api.url,
data: {
...(!api.excludeTenantFilter ? { TenantFilter: currentTenant } : null),
...(!api.excludeTenantFilter ? { tenantFilter: currentTenant } : null),
...api.data,
},
waiting: true,
Expand Down
240 changes: 240 additions & 0 deletions src/components/CippComponents/CippExchangeActions.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
import {
EyeIcon,
TrashIcon,
MagnifyingGlassIcon,
PlayCircleIcon,
} from "@heroicons/react/24/outline";
import {
Archive,
MailOutline,
Person,
Room,
Visibility,
VisibilityOff,
PhonelinkLock,
Key,
PostAdd,
Add,
} from "@mui/icons-material";
import { useSettings } from "/src/hooks/use-settings.js";

export const CippExchangeActions = () => {
// const tenant = useSettings().currentTenant;
return [
{
label: "Edit permissions",
link: "/identity/administration/users/user/exchange?userId=[ExternalDirectoryObjectId]",
color: "info",
icon: <Key />,
},
{
label: "Research Compromised Account",
link: "/identity/administration/users/user/bec?userId=[ExternalDirectoryObjectId]",
color: "info",
icon: <MagnifyingGlassIcon />,
},
{
label: "Send MFA Push",
type: "POST",
url: "/api/ExecSendPush",
data: {
UserEmail: "UPN",
},
confirmText: "Are you sure you want to send an MFA request?",
icon: <PhonelinkLock />,
},
{
label: "Convert to User Mailbox",
type: "POST",
url: "/api/ExecConvertMailbox",
icon: <Person />,
data: {
ID: "UPN",
MailboxType: "!Regular",
},
confirmText: "Are you sure you want to convert this mailbox to a user mailbox?",
condition: (row) => row.recipientTypeDetails !== "UserMailbox",
},
{
label: "Convert to Shared Mailbox",
type: "POST",
icon: <MailOutline />,
url: "/api/ExecConvertMailbox",
data: {
ID: "UPN",
MailboxType: "!Shared",
},
confirmText: "Are you sure you want to convert this mailbox to a shared mailbox?",
condition: (row) => row.recipientTypeDetails !== "SharedMailbox",
},
{
label: "Convert to Room Mailbox",
type: "POST",
url: "/api/ExecConvertMailbox",
icon: <Room />,
data: {
ID: "UPN",
MailboxType: "!Room",
},
confirmText: "Are you sure you want to convert this mailbox to a room mailbox?",
condition: (row) => row.recipientTypeDetails !== "RoomMailbox",
},
{
//tested
label: "Enable Online Archive",
type: "POST",
icon: <Archive />,
url: "/api/ExecEnableArchive",
data: { ID: "Id", username: "UPN" },
confirmText: "Are you sure you want to enable the online archive for this user?",
multiPost: false,
condition: (row) => row.ArchiveGuid === "00000000-0000-0000-0000-000000000000",
},
{
label: "Enable Auto-Expanding Archive",
type: "POST",
icon: <PostAdd />,
url: "/api/ExecEnableAutoExpandingArchive",
data: { ID: "Id", username: "UPN" },
confirmText:
"Are you sure you want to enable auto-expanding archive for this user? The archive must already be enabled.",
multiPost: false,
condition: (row) => row.ArchiveGuid !== "00000000-0000-0000-0000-000000000000",
},
{
label: "Hide from Global Address List",
type: "POST",
url: "/api/ExecHideFromGAL",
icon: <VisibilityOff />,
data: {
ID: "UPN",
HidefromGAL: true,
},
confirmText:
"Are you sure you want to hide this mailbox from the global address list? This will not work if the user is AD Synced.",
condition: (row) => row.HiddenFromAddressListsEnabled === false,
},
{
label: "Unhide from Global Address List",
type: "POST",
url: "/api/ExecHideFromGAL",
icon: <Visibility />,
data: {
ID: "UPN",
HidefromGAL: false,
},
confirmText:
"Are you sure you want to unhide this mailbox from the global address list? This will not work if the user is AD Synced.",
condition: (row) => row.HiddenFromAddressListsEnabled === true,
},
{
label: "Start Managed Folder Assistant",
type: "POST",
url: "/api/ExecStartManagedFolderAssistant",
icon: <PlayCircleIcon />,
data: {
ID: "ExchangeGuid",
UserPrincipalName: "UPN",
},
confirmText: "Are you sure you want to start the managed folder assistant for this user?",
},
{
label: "Delete Mailbox",
type: "POST",
icon: <TrashIcon />,
url: "/api/RemoveUser",
data: { ID: "UPN" },
confirmText: "Are you sure you want to delete this mailbox?",
multiPost: false,
},
{
label: "Copy Sent Items to Shared Mailbox",
type: "POST",
url: "/api/ExecCopyForSent",
data: { ID: "UPN" },
confirmText: "Are you sure you want to enable Copy Sent Items to Shared Mailbox?",
icon: <MailOutline />,
condition: (row) =>
row.MessageCopyForSentAsEnabled === false && row.recipientTypeDetails === "SharedMailbox",
},
{
label: "Disable Copy Sent Items to Shared Mailbox",
type: "POST",
url: "/api/ExecCopyForSent",
data: { ID: "UPN", MessageCopyForSentAsEnabled: false },
confirmText: "Are you sure you want to disable Copy Sent Items to Shared Mailbox?",
icon: <MailOutline />,
condition: (row) =>
row.MessageCopyForSentAsEnabled === true && row.recipientTypeDetails === "SharedMailbox",
},
{
label: "Set mailbox locale",
type: "POST",
url: "/api/ExecSetMailboxLocale",
data: { user: "UPN", ProhibitSendQuota: true },
confirmText: "Enter a locale, e.g. en-US",
icon: <MailOutline />,
fields: [
{
label: "Locale",
name: "locale",
type: "textField",
placeholder: "e.g. en-US",
},
],
},
{
label: "Set Send Quota",
type: "POST",
url: "/api/ExecSetMailboxQuota",
data: { user: "UPN", ProhibitSendQuota: true },
confirmText: "Enter a quota. e.g. 1000MB, 10GB,1TB",
icon: <MailOutline />,
fields: [
{
label: "Quota",
name: "quota",
type: "textField",
placeholder: "e.g. 1000MB, 10GB,1TB",
},
],
},
{
label: "Set Send and Receive Quota",
type: "POST",
url: "/api/ExecSetMailboxQuota",
data: {
user: "UPN",
ProhibitSendReceiveQuota: true,
},
confirmText: "Enter a quota. e.g. 1000MB, 10GB,1TB",
icon: <MailOutline />,
fields: [
{
label: "Quota",
name: "quota",
type: "textField",
placeholder: "e.g. 1000MB, 10GB,1TB",
},
],
},
{
label: "Set Quota Warning Level",
type: "POST",
url: "/api/ExecSetMailboxQuota",
data: { user: "UPN", IssueWarningQuota: true },
confirmText: "Enter a quota. e.g. 1000MB, 10GB,1TB",
icon: <MailOutline />,
fields: [
{
label: "Quota",
name: "quota",
type: "textField",
placeholder: "e.g. 1000MB, 10GB,1TB",
},
],
},
];
};

export default CippExchangeActions;
2 changes: 1 addition & 1 deletion src/components/CippFormPages/CippAddEditUser.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ const CippAddEditUser = (props) => {
formControl={formControl}
/>
</Grid>
{userSettingsDefaults?.userAttributes?.map((attribute, idx) => (
{userSettingsDefaults?.userAttributes?.filter((attribute) => attribute.value !== "sponsor").map((attribute, idx) => (
<Grid item xs={6} key={idx}>
<CippFormComponent
type="textField"
Expand Down
1 change: 1 addition & 0 deletions src/components/CippTable/CippDataTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ export const CippDataTable = (props) => {
</>
);
},
enableGlobalFilterModes: true,
});

useEffect(() => {
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,7 @@ export const nativeMenuItems = [
),
items: [
{ title: "Application Settings", path: "/cipp/settings", roles: ["admin", "superadmin"] },
{ title: "Logbook", path: "/cipp/logs", roles: ["admin", "superadmin"] },
{ title: "Logbook", path: "/cipp/logs", roles: ["editor", "admin", "superadmin"] },
{ title: "SAM Setup Wizard", path: "/onboarding", roles: ["admin", "superadmin"] },
{ title: "Integrations", path: "/cipp/integrations", roles: ["admin", "superadmin"] },
{
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ export const Layout = (props) => {
}}
>
<LayoutContainer>
{currentTenant === "AllTenants" && !allTenantsSupport ? (
{(currentTenant === "AllTenants" || !currentTenant) && !allTenantsSupport ? (
<Box sx={{ flexGrow: 1, py: 4 }}>
<Container maxWidth={false}>
<Grid container spacing={3}>
Expand Down
1 change: 1 addition & 0 deletions src/pages/cipp/preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ const Page = () => {
{ value: "otherMails", label: "otherMails" },
{ value: "showInAddressList", label: "showInAddressList" },
{ value: "state", label: "state" },
{ value: "city", label: "city" },
{ value: "sponsor", label: "sponsor" },
];

Expand Down
11 changes: 6 additions & 5 deletions src/pages/cipp/scheduler/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,20 @@ const Page = () => {
tenantInTitle={false}
title="Scheduled Tasks"
apiUrl={
showHiddenJobs ? "/api/ListScheduledItems?ListHidden=True" : "/api/ListScheduledItems"
showHiddenJobs ? "/api/ListScheduledItems?ShowHidden=true" : "/api/ListScheduledItems"
}
queryKey={showHiddenJobs ? `ListScheduledItems-hidden` : `ListScheduledItems`}
simpleColumns={[
"Name",
"Tenant",
"ExecutedTime",
"TaskState",
"Tenant",
"Name",
"ScheduledTime",
"Command",
"Parameters",
"PostExecution",
"Recurrence",
"ExecutedTime",
"ScheduledTime",
"Results",
]}
actions={actions}
offCanvas={offCanvas}
Expand Down
Loading
Loading