diff --git a/src/_nav.jsx b/src/_nav.jsx
index 874b6e28eb42..6be438de14d4 100644
--- a/src/_nav.jsx
+++ b/src/_nav.jsx
@@ -608,6 +608,11 @@ const _nav = [
name: 'Mailboxes',
to: '/email/administration/mailboxes',
},
+ {
+ component: CNavItem,
+ name: 'Deleted Mailboxes',
+ to: '/email/administration/deleted-mailboxes',
+ },
{
component: CNavItem,
name: 'Mailbox Rules',
diff --git a/src/importsMap.jsx b/src/importsMap.jsx
index 6cd0031a1c6c..7906ca7921a7 100644
--- a/src/importsMap.jsx
+++ b/src/importsMap.jsx
@@ -116,7 +116,8 @@ import React from 'react'
"/email/administration/edit-calendar-permissions": React.lazy(() => import('./views/email-exchange/administration/EditCalendarPermissions')),
"/email/administration/view-mobile-devices": React.lazy(() => import('./views/email-exchange/administration/ViewMobileDevices')),
"/email/administration/edit-contact": React.lazy(() => import('./views/email-exchange/administration/EditContact')),
- "/email/administration/mailboxes": React.lazy(() => import('./views/email-exchange/administration/MailboxesList')),
+ "/email/administration/mailboxes": React.lazy(() => import('./views/email-exchange/administration/MailboxesList')),
+ "/email/administration/deleted-mailboxes": React.lazy(() => import('./views/email-exchange/administration/DeletedMailboxes')),
"/email/administration/mailbox-rules": React.lazy(() => import('./views/email-exchange/administration/MailboxRuleList')),
"/email/administration/Quarantine": React.lazy(() => import('./views/email-exchange/administration/QuarantineList')),
"/email/administration/tenant-allow-block-lists": React.lazy(() => import('./views/email-exchange/administration/ListTenantAllowBlockList')),
diff --git a/src/routes.json b/src/routes.json
index 2975b4c168ac..635d5f85c060 100644
--- a/src/routes.json
+++ b/src/routes.json
@@ -786,6 +786,12 @@
"component": "views/email-exchange/administration/MailboxesList",
"allowedRoles": ["admin", "editor", "readonly"]
},
+ {
+ "name": "Deleted Mailboxes",
+ "path": "/email/administration/deleted-mailboxes",
+ "component": "views/email-exchange/administration/DeletedMailboxes",
+ "allowedRoles": ["admin", "editor", "readonly"]
+ },
{
"name": "List Mailbox Rules",
"path": "/email/administration/mailbox-rules",
diff --git a/src/views/email-exchange/administration/DeletedMailboxes.jsx b/src/views/email-exchange/administration/DeletedMailboxes.jsx
new file mode 100644
index 000000000000..0c115973a2b0
--- /dev/null
+++ b/src/views/email-exchange/administration/DeletedMailboxes.jsx
@@ -0,0 +1,159 @@
+import React, { useState } from 'react'
+import { CButton } from '@coreui/react'
+import { useSelector } from 'react-redux'
+import { faEllipsisV } from '@fortawesome/free-solid-svg-icons'
+import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
+import { cellBooleanFormatter } from 'src/components/tables'
+import { CippPageList } from 'src/components/layout'
+import { TitleButton } from 'src/components/buttons'
+import { CippActionsOffcanvas } from 'src/components/utilities'
+
+const Offcanvas = (row, rowIndex, formatExtraData) => {
+ const tenant = useSelector((state) => state.app.currentTenant)
+ const [ocVisible, setOCVisible] = useState(false)
+
+ const now = new Date() // Get the current date and time
+ const requestName = `${row.UPN}-${String(now.getDate()).padStart(2, '0')}-${String(
+ now.getMonth() + 1,
+ ).padStart(2, '0')}-${now.getFullYear()}-${String(now.getHours()).padStart(2, '0')}${String(
+ now.getMinutes(),
+ ).padStart(2, '0')}`
+
+ return (
+ <>
+ setOCVisible(true)}>
+
+
+ setOCVisible(false)}
+ />
+ >
+ )
+}
+
+const columns = [
+ {
+ name: 'Display Name',
+ selector: (row) => row['displayName'],
+ sortable: true,
+ exportSelector: 'displayName',
+ },
+ {
+ name: 'User Principal Name',
+ selector: (row) => row['UPN'],
+ sortable: true,
+ exportSelector: 'UPN',
+ minWidth: '350px',
+ },
+ {
+ name: 'Primary SMTP Address',
+ selector: (row) => row['primarySmtpAddress'],
+ sortable: true,
+ exportSelector: 'primarySmtpAddress',
+ minWidth: '350px',
+ },
+ {
+ name: 'Date Deleted',
+ selector: (row) => row['WhenSoftDeleted'],
+ sortable: true,
+ exportSelector: 'WhenSoftDeleted',
+ },
+ {
+ name: 'Recipient Type',
+ selector: (row) => row['recipientType'],
+ omit: true,
+ exportSelector: 'recipientType',
+ },
+ {
+ name: 'Recipient Type Details',
+ selector: (row) => row['recipientTypeDetails'],
+ omit: true,
+ exportSelector: 'recipientTypeDetails',
+ },
+ {
+ name: 'Additional Email Addresses',
+ selector: (row) => row['AdditionalEmailAddresses'],
+ omit: true,
+ exportSelector: 'AdditionalEmailAddresses',
+ },
+ {
+ name: 'Exchange Guid',
+ selector: (row) => row['ExchangeGuid'],
+ sortable: true,
+ exportSelector: 'ExchangeGuid',
+ minWidth: '350px',
+ },
+ {
+ name: 'Archive Guid',
+ selector: (row) => row['ArchiveGuid'],
+ sortable: true,
+ exportSelector: 'ArchiveGuid',
+ },
+ {
+ name: 'id',
+ selector: (row) => row['Id'],
+ omit: true,
+ exportSelector: 'Id',
+ },
+ {
+ name: 'Actions',
+ cell: Offcanvas,
+ },
+]
+
+const DeletedMailboxes = () => {
+ const tenant = useSelector((state) => state.app.currentTenant)
+ const titleButton = (
+
+ )
+ return (
+
+ )
+}
+
+export default DeletedMailboxes
diff --git a/src/views/identity/administration/Users.jsx b/src/views/identity/administration/Users.jsx
index 0b0ea525497e..c387cd4697c5 100644
--- a/src/views/identity/administration/Users.jsx
+++ b/src/views/identity/administration/Users.jsx
@@ -247,11 +247,13 @@ const Offcanvas = (row, rowIndex, formatExtraData) => {
modal: true,
modalType: 'POST',
modalBody: {
- user: row.userPrincipalName,
+ username: row.userPrincipalName,
+ userid: row.userPrincipalName,
TenantFilter: tenant.defaultDomainName,
+ DisableForwarding: true,
message: row.message,
},
- modalUrl: `/api/ExecDisableEmailForward`,
+ modalUrl: `/api/ExecEmailForward`,
modalMessage: 'Are you sure you want to disable forwarding of this users emails?',
},
{
@@ -688,10 +690,12 @@ const Users = (row) => {
modal: true,
modalType: 'POST',
modalBody: {
- user: '!userPrincipalName',
+ username: '!userPrincipalName',
+ userid: '!userPrincipalName',
TenantFilter: tenant.defaultDomainName,
+ DisableForwarding: true,
},
- modalUrl: `/api/ExecDisableEmailForward`,
+ modalUrl: `/api/ExecEmailForward`,
modalMessage: 'Are you sure you want to disable forwarding of these users emails?',
},
{