diff --git a/apps/console/src/configs/routes.tsx b/apps/console/src/configs/routes.tsx index c68c268fa44..b3077c8bf08 100644 --- a/apps/console/src/configs/routes.tsx +++ b/apps/console/src/configs/routes.tsx @@ -281,6 +281,17 @@ export const getAppViewRoutes = (): RouteInterface[] => { path: AppConstants.getPaths().get("ALTERNATIVE_LOGIN_IDENTIFIER_EDIT"), protected: true, showOnSidePanel: false + }, + { + component: lazy(() => + import("@wso2is/admin.server.v1/pages/internal-notification-sending-page") + ), + exact: true, + id: "internalNotificationSending", + name: "Internal Notification Sending", + path: AppConstants.getPaths().get("INTERNAL_NOTIFICATION_SENDING"), + protected: true, + showOnSidePanel: false } ], component: lazy(() => @@ -1071,40 +1082,6 @@ export const getAppViewRoutes = (): RouteInterface[] => { protected: true, showOnSidePanel: false }, - { - category: "extensions:manage.sidePanel.categories.settings", - children: [ - { - component: lazy(() => - import("@wso2is/admin.server.v1/pages/internal-notification-sending-page") - ), - exact: true, - icon: { - icon: getSidePanelIcons().childIcon - }, - id: "internal-notification-sending", - name: "Internal Notification Sending", - path: AppConstants.getPaths().get("INTERNAL_NOTIFICATION_SENDING"), - protected: true, - showOnSidePanel: false - } - ], - component: lazy(() => - import( - "@wso2is/admin.server.v1/pages/server" - ) - ), - exact: true, - icon: { - icon: getSidePanelIcons().userStore - }, - id: "server", - name: "Server", - order: 25, - path: AppConstants.getPaths().get("SERVER"), - protected: true, - showOnSidePanel: true - }, { category: "extensions:manage.sidePanel.categories.userManagement", component: lazy(() => import("@wso2is/admin.workflow-approvals.v1/pages/approvals")), diff --git a/apps/console/src/public/deployment.config.json b/apps/console/src/public/deployment.config.json index 831f821ca3f..be610651d5c 100644 --- a/apps/console/src/public/deployment.config.json +++ b/apps/console/src/public/deployment.config.json @@ -722,6 +722,23 @@ "enabled": false, "scopes": {} }, + "internalNotificationSending": { + "disabledFeatures": [], + "enabled": true, + "scopes": { + "create": [], + "delete": [], + "feature": [ + "console:loginAndRegistration" + ], + "read": [ + "internal_governance_view" + ], + "update": [ + "internal_governance_update" + ] + } + }, "loginAndRegistration": { "disabledFeatures": [], "enabled": true, diff --git a/features/admin.core.v1/constants/app-constants.ts b/features/admin.core.v1/constants/app-constants.ts index da04261f20c..97aba0819e5 100644 --- a/features/admin.core.v1/constants/app-constants.ts +++ b/features/admin.core.v1/constants/app-constants.ts @@ -403,7 +403,7 @@ export class AppConstants { [ "SERVER", `${AppConstants.getAdminViewBasePath()}/server` ], [ "INTERNAL_NOTIFICATION_SENDING", - `${AppConstants.getAdminViewBasePath()}/server/internal-notification-sending` ], + `${AppConstants.getAdminViewBasePath()}/login-and-registration/internal-notification-sending` ], [ "OUTBOUND_PROVISIONING_SETTINGS", `${AppConstants.getAdminViewBasePath()}/outbound-provisioning-settings` ], [ "IMPERSONATION", `${AppConstants.getAdminViewBasePath()}/login-and-registration/impersonation` ], @@ -509,7 +509,6 @@ export class AppConstants { public static readonly SUPER_ADMIN_ONLY_ROUTES: string[] = [ "admin-session-advisory-banner-edit", "remote-logging", - "internal-notification-sending", "server" ]; diff --git a/features/admin.core.v1/models/config.ts b/features/admin.core.v1/models/config.ts index 2a0f12d51c4..33f8b258203 100644 --- a/features/admin.core.v1/models/config.ts +++ b/features/admin.core.v1/models/config.ts @@ -254,6 +254,10 @@ export interface FeatureConfigInterface { * Connection management feature. */ connections?: ConnectionConfigInterface; + /** + * Notification sending feature. + */ + internalNotificationSending?: FeatureAccessConfigInterface; } /** diff --git a/features/admin.server-configurations.v1/components/governance-connector-grid.tsx b/features/admin.server-configurations.v1/components/governance-connector-grid.tsx index 894e18ce966..d6ef209011d 100644 --- a/features/admin.server-configurations.v1/components/governance-connector-grid.tsx +++ b/features/admin.server-configurations.v1/components/governance-connector-grid.tsx @@ -204,6 +204,10 @@ const GovernanceConnectorCategoriesGrid: FunctionComponent ); + case ServerConfigurationsConstants.NOTIFICATION_SETTINGS_CONNECTOR_ID: + return ( + + ); default: return ; } diff --git a/features/admin.server-configurations.v1/constants/server-configurations-constants.ts b/features/admin.server-configurations.v1/constants/server-configurations-constants.ts index 49c9bb7b301..20177ee43eb 100644 --- a/features/admin.server-configurations.v1/constants/server-configurations-constants.ts +++ b/features/admin.server-configurations.v1/constants/server-configurations-constants.ts @@ -406,6 +406,8 @@ export class ServerConfigurationsConstants { public static readonly LOGIN_SECURITY_SETTINGS_CATEGORY_ID: string = "login-security"; public static readonly PROVISIONING_SETTINGS_CATEGORY_ID: string = "provider-settings"; public static readonly OUTBOUND_PROVISIONING_SETTINGS_CONNECTOR_ID: string = "outbound-provisioning-settings"; + public static readonly NOTIFICATION_SETTINGS_CATEGORY_ID: string = "notification-settings"; + public static readonly NOTIFICATION_SETTINGS_CONNECTOR_ID: string = "internal-notification-settings"; /** * Multi Attribute Login Constants. diff --git a/features/admin.server-configurations.v1/pages/connector-listing-page.tsx b/features/admin.server-configurations.v1/pages/connector-listing-page.tsx index 9a24fe25c5d..e6cbac053e8 100644 --- a/features/admin.server-configurations.v1/pages/connector-listing-page.tsx +++ b/features/admin.server-configurations.v1/pages/connector-listing-page.tsx @@ -82,6 +82,12 @@ export const ConnectorListingPage: FunctionComponent { const originalConnectors: Array = GovernanceConnectorUtils.getPredefinedConnectorCategories(); @@ -93,6 +99,9 @@ export const ConnectorListingPage: FunctionComponent = category.connectors. filter((connector: any) => !serverConfigurationConfig.connectorsToHide.includes(connector.id)); diff --git a/features/admin.server-configurations.v1/utils/governance-connector-utils.ts b/features/admin.server-configurations.v1/utils/governance-connector-utils.ts index 8f1de2df1a1..7dd630003b1 100644 --- a/features/admin.server-configurations.v1/utils/governance-connector-utils.ts +++ b/features/admin.server-configurations.v1/utils/governance-connector-utils.ts @@ -401,6 +401,22 @@ export class GovernanceConnectorUtils { displayOrder: 0, id: ServerConfigurationsConstants.PROVISIONING_SETTINGS_CATEGORY_ID, title: "Provisioning Settings" + }, + { + connectors: [ + { + description: I18n.instance.t( + "console:manage.features.serverConfigs.manageNotificationSendingInternally.description"), + header: I18n.instance.t( + "console:manage.features.serverConfigs.manageNotificationSendingInternally.title"), + id: ServerConfigurationsConstants.NOTIFICATION_SETTINGS_CONNECTOR_ID, + route: AppConstants.getPaths().get("INTERNAL_NOTIFICATION_SENDING"), + testId: "internal-notification-settings-card" + } + ], + displayOrder: 0, + id: ServerConfigurationsConstants.NOTIFICATION_SETTINGS_CATEGORY_ID, + title: "Notification Settings" } ]; } diff --git a/features/admin.server.v1/pages/internal-notification-sending-page.tsx b/features/admin.server.v1/pages/internal-notification-sending-page.tsx index 780255b0e77..6fe3a99812b 100644 --- a/features/admin.server.v1/pages/internal-notification-sending-page.tsx +++ b/features/admin.server.v1/pages/internal-notification-sending-page.tsx @@ -1,5 +1,5 @@ /** - * Copyright (c) 2023, WSO2 LLC. (https://www.wso2.com). + * Copyright (c) 2023-2024, WSO2 LLC. (https://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except @@ -348,7 +348,7 @@ export const InternalNotificationSendingPage: FC { - history.push(AppConstants.getPaths().get("SERVER")); + history.push(AppConstants.getPaths().get("LOGIN_AND_REGISTRATION")); }; /** @@ -368,7 +368,7 @@ export const InternalNotificationSendingPage: FC