The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/cloud/server/functions/getWorkspaceAccessToken.js

28 lines
973 B

import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { getWorkspaceAccessTokenWithScope } from './getWorkspaceAccessTokenWithScope';
import { Settings } from '../../../models';
import { settings } from '../../../settings';
export function getWorkspaceAccessToken(forceNew = false, scope = '', save = true) {
const { connectToCloud, workspaceRegistered } = retrieveRegistrationStatus();
if (!connectToCloud || !workspaceRegistered) {
return '';
}
const expires = Settings.findOneById('Cloud_Workspace_Access_Token_Expires_At');
const now = new Date();
if (now < expires.value && !forceNew) {
return settings.get('Cloud_Workspace_Access_Token');
}
const accessToken = getWorkspaceAccessTokenWithScope(scope);
if (save) {
Settings.updateValueById('Cloud_Workspace_Access_Token', accessToken.token);
Settings.updateValueById('Cloud_Workspace_Access_Token_Expires_At', accessToken.expiresAt);
}
return accessToken.token;
}