Skip to content
Commits on Source (4)
variables: variables:
DOCKER_HUB_REPO: libresh/rocketchat DOCKER_HUB_REPO: libresh/rocketchat
VERSION: 6.3.6 VERSION: 6.4.5
test: test:
stage: test stage: test
......
...@@ -21,6 +21,9 @@ RUN git apply no-upgrade.patch ...@@ -21,6 +21,9 @@ RUN git apply no-upgrade.patch
COPY test-scalability.patch test-scalability.patch COPY test-scalability.patch test-scalability.patch
RUN git apply test-scalability.patch RUN git apply test-scalability.patch
COPY fix-oauth-login.patch fix-oauth-login.patch
RUN git apply fix-oauth-login.patch
RUN GENERATE_SOURCEMAP=false TOOL_NODE_FLAGS="--max_old_space_size=8192" yarn build:ci -- --directory /build RUN GENERATE_SOURCEMAP=false TOOL_NODE_FLAGS="--max_old_space_size=8192" yarn build:ci -- --directory /build
......
diff --git a/apps/meteor/app/custom-oauth/client/custom_oauth_client.js b/apps/meteor/app/custom-oauth/client/custom_oauth_client.js
index a112777584..c516f115ae 100644
--- a/apps/meteor/app/custom-oauth/client/custom_oauth_client.js
+++ b/apps/meteor/app/custom-oauth/client/custom_oauth_client.js
@@ -6,7 +6,6 @@ import { Meteor } from 'meteor/meteor';
import { OAuth } from 'meteor/oauth';
import { ServiceConfiguration } from 'meteor/service-configuration';
-import './swapSessionStorage';
import { isURL } from '../../../lib/utils/isURL';
// Request custom OAuth credentials for the user
diff --git a/apps/meteor/app/custom-oauth/client/swapSessionStorage.js b/apps/meteor/app/custom-oauth/client/swapSessionStorage.js
deleted file mode 100644
index 83d9331097..0000000000
--- a/apps/meteor/app/custom-oauth/client/swapSessionStorage.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Meteor } from 'meteor/meteor';
-import { OAuth } from 'meteor/oauth';
-import { Reload } from 'meteor/reload';
-
-// TODO: This is a nasty workaround and should be removed as soon as possible
-// Firefox is losing the sessionStorage data (v >= 79.0) after the redirect
-
-if (navigator.userAgent.indexOf('Firefox') !== -1) {
- const KEY_NAME = 'Swapped_Storage_Workaround';
-
- OAuth.saveDataForRedirect = (loginService, credentialToken) => {
- Meteor._localStorage.setItem(KEY_NAME, JSON.stringify({ loginService, credentialToken }));
- Reload._migrate(null, { immediateMigration: true });
- };
-
- OAuth.getDataAfterRedirect = () => {
- let migrationData = Meteor._localStorage.getItem(KEY_NAME);
- Meteor._localStorage.removeItem(KEY_NAME);
- try {
- migrationData = JSON.parse(migrationData);
- } catch (error) {
- migrationData = null;
- }
-
- if (!(migrationData && migrationData.credentialToken)) {
- return null;
- }
-
- const { credentialToken } = migrationData;
- const key = OAuth._storageTokenPrefix + credentialToken;
- let credentialSecret;
- try {
- credentialSecret = sessionStorage.getItem(key);
- sessionStorage.removeItem(key);
- } catch (e) {
- Meteor._debug('error retrieving credentialSecret', e);
- }
- return {
- loginService: migrationData.loginService,
- credentialToken,
- credentialSecret,
- };
- };
-}
diff --git a/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx b/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx diff --git a/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx b/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx
index 753baaf8e3..9750ba253c 100644 index 7ecc7b8ab9..f81bd765a6 100644
--- a/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx --- a/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx
+++ b/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx +++ b/apps/meteor/client/sidebar/footer/SidebarFooterDefault.tsx
@@ -5,8 +5,6 @@ import { useThemeMode } from '@rocket.chat/ui-theming/src/hooks/useThemeMode'; @@ -5,8 +5,6 @@ import { useThemeMode } from '@rocket.chat/ui-theming/src/hooks/useThemeMode';
...@@ -34,34 +34,92 @@ index d2e51f1913..3a9f924302 100644 ...@@ -34,34 +34,92 @@ index d2e51f1913..3a9f924302 100644
return <GenericMenu sections={sections} title={t('Administration')} is={Sidebar.TopBar.Action} {...props} />; return <GenericMenu sections={sections} title={t('Administration')} is={Sidebar.TopBar.Action} {...props} />;
}; };
diff --git a/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationMenu.tsx b/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationMenu.tsx diff --git a/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationItems.tsx b/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationItems.tsx
index f6179bb93d..5487afd639 100644 index 531545b20a..590a96f5e8 100644
--- a/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationMenu.tsx --- a/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationItems.tsx
+++ b/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationMenu.tsx +++ b/apps/meteor/client/sidebar/header/actions/hooks/useAdministrationItems.tsx
@@ -45,7 +45,6 @@ export const useAdministrationMenu = () => { @@ -9,13 +9,9 @@ import {
} from '@rocket.chat/ui-contexts';
import React from 'react';
-import type { UpgradeTabVariant } from '../../../../../lib/upgradeTab';
-import { getUpgradeTabLabel, isFullyFeature } from '../../../../../lib/upgradeTab';
-import Emoji from '../../../../components/Emoji';
import type { GenericMenuItemProps } from '../../../../components/GenericMenu/GenericMenuItem';
import { useRegistrationStatus } from '../../../../hooks/useRegistrationStatus';
import RegisterWorkspaceModal from '../../../../views/admin/cloud/modals/RegisterWorkspaceModal';
-import { useUpgradeTabParams } from '../../../../views/hooks/useUpgradeTabParams';
const ADMIN_PERMISSIONS = [
'view-statistics',
@@ -57,11 +53,6 @@ export const useAdministrationItems = (): GenericMenuItemProps[] => {
const shouldShowAdminMenu = useAtLeastOnePermission(ADMIN_PERMISSIONS);
- const { tabType, trialEndDate, isLoading } = useUpgradeTabParams();
- const shouldShowEmoji = isFullyFeature(tabType);
-
- const label = getUpgradeTabLabel(tabType);
-
const isAdmin = useRole('admin');
const setModal = useSetModal();
@@ -74,13 +65,10 @@ export const useAdministrationItems = (): GenericMenuItemProps[] => {
};
const adminRoute = useRoute('admin-index');
- const upgradeRoute = useRoute('upgrade');
const cloudRoute = useRoute('cloud');
const omnichannel = usePermission('view-livechat-manager');
- const showUpgradeItem = !isLoading && tabType;
-
const omnichannelItem: GenericMenuItemProps = {
id: 'omnichannel',
content: t('Omnichannel'),
@@ -88,18 +76,6 @@ export const useAdministrationItems = (): GenericMenuItemProps[] => {
onClick: () => router.navigate('/omnichannel/current'),
};
- const upgradeItem: GenericMenuItemProps = {
- id: 'showUpgradeItem',
- content: (
- <>
- {t(label)} {shouldShowEmoji && <Emoji emojiHandle=':zap:' />}
- </>
- ),
- icon: 'arrow-stack-up',
- onClick: () => {
- upgradeRoute.push({ type: tabType as UpgradeTabVariant }, trialEndDate ? { trialEndDate } : undefined);
- },
- };
const adminItem: GenericMenuItemProps = {
id: 'registration',
content: workspaceRegistered ? t('Registration') : t('Register'),
@@ -122,7 +98,6 @@ export const useAdministrationItems = (): GenericMenuItemProps[] => {
};
return [
- showUpgradeItem && upgradeItem,
shouldShowAdminMenu && workspaceItem,
isAdmin && adminItem,
omnichannel && omnichannelItem,
diff --git a/apps/meteor/client/sidebar/header/actions/hooks/useAppsItems.tsx b/apps/meteor/client/sidebar/header/actions/hooks/useAppsItems.tsx
index 3717f33fb1..64a284c269 100644
--- a/apps/meteor/client/sidebar/header/actions/hooks/useAppsItems.tsx
+++ b/apps/meteor/client/sidebar/header/actions/hooks/useAppsItems.tsx
@@ -18,9 +18,8 @@ export const useAppsItems = (): GenericMenuItemProps[] => {
const appBoxItems = useUserDropdownAppsActionButtons();
const hasAuditLicense = useHasLicenseModule('auditing') === true;
const hasManageAppsPermission = usePermission('manage-apps'); const hasManageAppsPermission = usePermission('manage-apps');
- const hasAccessMarketplacePermission = usePermission('access-marketplace'); - const hasAccessMarketplacePermission = usePermission('access-marketplace');
const hasAdminPermission = useAtLeastOnePermission(ADMIN_PERMISSIONS);
const hasAuditPermission = usePermission('can-audit') && hasAuditLicense;
const hasAuditLogPermission = usePermission('can-audit-log') && hasAuditLicense;
@@ -56,13 +55,13 @@ export const useAdministrationMenu = () => {
const showAdmin = hasAdminPermission || !!adminBoxItems.length;
const showAudit = hasAuditPermission || hasAuditLogPermission;
const showWorkspace = hasAdminPermission;
- const showApps = hasAccessMarketplacePermission || hasManageAppsPermission || !!appBoxItems.length;
+ const showApps = hasManageAppsPermission || !!appBoxItems.length;
const administrationItems = useAdministrationItems({ accountBoxItems: adminBoxItems, showWorkspace });
const appItems = useAppsItems({
appBoxItems,
appsManagementAllowed: hasManageAppsPermission,
- showMarketplace: hasAccessMarketplacePermission || hasManageAppsPermission,
+ showMarketplace: hasManageAppsPermission,
});
const auditItems = useAuditItems({ showAudit: hasAuditPermission, showAuditLog: hasAuditLogPermission });
- const showMarketplace = hasAccessMarketplacePermission || hasManageAppsPermission;
+ const showMarketplace = hasManageAppsPermission;
const marketplaceRoute = useRoute('marketplace');
const page = 'list';
diff --git a/apps/meteor/client/views/admin/AdministrationRouter.tsx b/apps/meteor/client/views/admin/AdministrationRouter.tsx diff --git a/apps/meteor/client/views/admin/AdministrationRouter.tsx b/apps/meteor/client/views/admin/AdministrationRouter.tsx
index 93ea650d0d..3ad2a4d920 100644 index 93ea650d0d..3ad2a4d920 100644
--- a/apps/meteor/client/views/admin/AdministrationRouter.tsx --- a/apps/meteor/client/views/admin/AdministrationRouter.tsx
...@@ -111,7 +169,7 @@ index 93ea650d0d..3ad2a4d920 100644 ...@@ -111,7 +169,7 @@ index 93ea650d0d..3ad2a4d920 100644
return ( return (
diff --git a/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx b/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx diff --git a/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx b/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx
index cc670f83f7..d4dbf976a5 100644 index 746301c73c..7fe8480322 100644
--- a/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx --- a/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx
+++ b/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx +++ b/apps/meteor/client/views/admin/sidebar/AdminSidebarPages.tsx
@@ -4,9 +4,7 @@ import React, { memo } from 'react'; @@ -4,9 +4,7 @@ import React, { memo } from 'react';
...@@ -131,7 +189,7 @@ index cc670f83f7..d4dbf976a5 100644 ...@@ -131,7 +189,7 @@ index cc670f83f7..d4dbf976a5 100644
- const { tabType, trialEndDate, isLoading } = useUpgradeTabParams(); - const { tabType, trialEndDate, isLoading } = useUpgradeTabParams();
- -
return ( return (
<Box display='flex' flexDirection='column' flexShrink={0} pb='x8'> <Box display='flex' flexDirection='column' flexShrink={0} pb={8}>
- {!isLoading && tabType && <UpgradeTab type={tabType} currentPath={currentPath} trialEndDate={trialEndDate} />} - {!isLoading && tabType && <UpgradeTab type={tabType} currentPath={currentPath} trialEndDate={trialEndDate} />}
<SidebarItemsAssembler items={items} currentPath={currentPath} /> <SidebarItemsAssembler items={items} currentPath={currentPath} />
</Box> </Box>
......
...@@ -13,7 +13,7 @@ index 8bccfed590..29a7129166 100644 ...@@ -13,7 +13,7 @@ index 8bccfed590..29a7129166 100644
try { try {
const hasLicense = await this.broker.call('license.hasLicense', ['scalability']); const hasLicense = await this.broker.call('license.hasLicense', ['scalability']);
diff --git a/apps/meteor/ee/server/local-services/instance/service.ts b/apps/meteor/ee/server/local-services/instance/service.ts diff --git a/apps/meteor/ee/server/local-services/instance/service.ts b/apps/meteor/ee/server/local-services/instance/service.ts
index b8074d414f..e594f3c6a5 100644 index 0fc4fd33a9..fe2bd25fd8 100644
--- a/apps/meteor/ee/server/local-services/instance/service.ts --- a/apps/meteor/ee/server/local-services/instance/service.ts
+++ b/apps/meteor/ee/server/local-services/instance/service.ts +++ b/apps/meteor/ee/server/local-services/instance/service.ts
@@ -51,11 +51,13 @@ export class InstanceService extends ServiceClassInternal implements IInstanceSe @@ -51,11 +51,13 @@ export class InstanceService extends ServiceClassInternal implements IInstanceSe
...@@ -45,10 +45,10 @@ index b8074d414f..e594f3c6a5 100644 ...@@ -45,10 +45,10 @@ index b8074d414f..e594f3c6a5 100644
} }
diff --git a/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts b/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts diff --git a/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts b/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts
index 627e79066e..106c6ef74f 100644 index 802a6e15d0..43856dd462 100644
--- a/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts --- a/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts
+++ b/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts +++ b/ee/packages/omnichannel-services/src/OmnichannelTranscript.ts
@@ -70,6 +70,11 @@ export class OmnichannelTranscript extends ServiceClass implements IOmnichannelT @@ -69,6 +69,11 @@ export class OmnichannelTranscript extends ServiceClass implements IOmnichannelT
// eslint-disable-next-line new-cap // eslint-disable-next-line new-cap
this.log = new loggerClass('OmnichannelTranscript'); this.log = new loggerClass('OmnichannelTranscript');
...@@ -60,7 +60,7 @@ index 627e79066e..106c6ef74f 100644 ...@@ -60,7 +60,7 @@ index 627e79066e..106c6ef74f 100644
this.onEvent('license.module', ({ module, valid }) => { this.onEvent('license.module', ({ module, valid }) => {
if (module === 'scalability') { if (module === 'scalability') {
this.shouldWork = valid; this.shouldWork = valid;
@@ -78,6 +83,9 @@ export class OmnichannelTranscript extends ServiceClass implements IOmnichannelT @@ -77,6 +82,9 @@ export class OmnichannelTranscript extends ServiceClass implements IOmnichannelT
} }
async started(): Promise<void> { async started(): Promise<void> {
...@@ -71,10 +71,10 @@ index 627e79066e..106c6ef74f 100644 ...@@ -71,10 +71,10 @@ index 627e79066e..106c6ef74f 100644
this.shouldWork = await licenseService.hasLicense('scalability'); this.shouldWork = await licenseService.hasLicense('scalability');
} catch (e: unknown) { } catch (e: unknown) {
diff --git a/ee/packages/omnichannel-services/src/QueueWorker.ts b/ee/packages/omnichannel-services/src/QueueWorker.ts diff --git a/ee/packages/omnichannel-services/src/QueueWorker.ts b/ee/packages/omnichannel-services/src/QueueWorker.ts
index 89c66fbc33..258b75eebf 100644 index 141cb937f4..87938790f6 100644
--- a/ee/packages/omnichannel-services/src/QueueWorker.ts --- a/ee/packages/omnichannel-services/src/QueueWorker.ts
+++ b/ee/packages/omnichannel-services/src/QueueWorker.ts +++ b/ee/packages/omnichannel-services/src/QueueWorker.ts
@@ -27,6 +27,9 @@ export class QueueWorker extends ServiceClass implements IQueueWorkerService { @@ -26,6 +26,9 @@ export class QueueWorker extends ServiceClass implements IQueueWorkerService {
this.logger = new loggerClass('QueueWorker'); this.logger = new loggerClass('QueueWorker');
this.queue = new MessageQueue(); this.queue = new MessageQueue();
...@@ -84,7 +84,7 @@ index 89c66fbc33..258b75eebf 100644 ...@@ -84,7 +84,7 @@ index 89c66fbc33..258b75eebf 100644
this.onEvent('license.module', ({ module, valid }) => { this.onEvent('license.module', ({ module, valid }) => {
if (module === 'scalability') { if (module === 'scalability') {
this.shouldWork = valid; this.shouldWork = valid;
@@ -35,6 +38,9 @@ export class QueueWorker extends ServiceClass implements IQueueWorkerService { @@ -34,6 +37,9 @@ export class QueueWorker extends ServiceClass implements IQueueWorkerService {
} }
async started(): Promise<void> { async started(): Promise<void> {
...@@ -95,7 +95,7 @@ index 89c66fbc33..258b75eebf 100644 ...@@ -95,7 +95,7 @@ index 89c66fbc33..258b75eebf 100644
this.shouldWork = await License.hasLicense('scalability'); this.shouldWork = await License.hasLicense('scalability');
} catch (e: unknown) { } catch (e: unknown) {
diff --git a/ee/packages/presence/src/Presence.ts b/ee/packages/presence/src/Presence.ts diff --git a/ee/packages/presence/src/Presence.ts b/ee/packages/presence/src/Presence.ts
index 9bb29b011c..0278e4b5a6 100755 index 238cd445de..d4307d3474 100755
--- a/ee/packages/presence/src/Presence.ts --- a/ee/packages/presence/src/Presence.ts
+++ b/ee/packages/presence/src/Presence.ts +++ b/ee/packages/presence/src/Presence.ts
@@ -39,6 +39,10 @@ export class Presence extends ServiceClass implements IPresence { @@ -39,6 +39,10 @@ export class Presence extends ServiceClass implements IPresence {
...@@ -106,17 +106,16 @@ index 9bb29b011c..0278e4b5a6 100755 ...@@ -106,17 +106,16 @@ index 9bb29b011c..0278e4b5a6 100755
+ this.hasLicense = true; + this.hasLicense = true;
+ return; + return;
+ } + }
this.onEvent('license.module', ({ module, valid }) => { this.onEvent('license.module', async ({ module, valid }) => {
if (module === 'scalability') { if (module === 'scalability') {
this.hasLicense = valid; this.hasLicense = valid;
@@ -58,7 +62,9 @@ export class Presence extends ServiceClass implements IPresence { @@ -65,6 +69,9 @@ export class Presence extends ServiceClass implements IPresence {
}, 10000);
try { try {
- this.hasLicense = await License.hasLicense('scalability');
+ if (process.env.TEST_SCALABILITY !== 'true') {
+ this.hasLicense = await License.hasLicense('scalability');
+ }
await Settings.updateValueById('Presence_broadcast_disabled', false); await Settings.updateValueById('Presence_broadcast_disabled', false);
+ if (process.env.TEST_SCALABILITY === 'true') {
+ return;
+ }
this.hasLicense = await License.hasLicense('scalability');
} catch (e: unknown) { } catch (e: unknown) {
// ignore