Skip to content

Commit

Permalink
get cloud generated public key for marketplace licenses (#14851)
Browse files Browse the repository at this point in the history
  • Loading branch information
geekgonecrazy authored and rodrigok committed Jul 1, 2019
1 parent 8c3e8bb commit 0bb9a52
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 2 deletions.
1 change: 1 addition & 0 deletions app/cloud/server/functions/connectWorkspace.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ export function connectWorkspace(token) {
Settings.updateValueById('Cloud_Workspace_Client_Id', data.client_id);
Settings.updateValueById('Cloud_Workspace_Client_Secret', data.client_secret);
Settings.updateValueById('Cloud_Workspace_Client_Secret_Expires_At', data.client_secret_expires_at);
Settings.updateValueById('Cloud_Workspace_PublicKey', data.publicKey);
Settings.updateValueById('Cloud_Workspace_Registration_Client_Uri', data.registration_client_uri);

// Now that we have the client id and secret, let's get the access token
Expand Down
18 changes: 18 additions & 0 deletions app/cloud/server/functions/getWorkspaceKey.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { settings } from '../../../settings';

export function getWorkspaceKey() {
const { connectToCloud, workspaceRegistered } = retrieveRegistrationStatus();

if (!connectToCloud || !workspaceRegistered) {
return false;
}

const publicKey = settings.get('Cloud_Workspace_PublicKey');

if (!publicKey) {
return false;
}

return publicKey;
}
10 changes: 9 additions & 1 deletion app/cloud/server/functions/syncWorkspace.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { retrieveRegistrationStatus } from './retrieveRegistrationStatus';
import { getWorkspaceAccessToken } from './getWorkspaceAccessToken';
import { getWorkspaceLicense } from './getWorkspaceLicense';
import { statistics } from '../../../statistics';
import { Settings } from '../../../models';
import { settings } from '../../../settings';

export function syncWorkspace(reconnectCheck = false) {
Expand All @@ -31,6 +32,7 @@ export function syncWorkspace(reconnectCheck = false) {

const workspaceUrl = settings.get('Cloud_Workspace_Registration_Client_Uri');

let result;
try {
const headers = {};
const token = getWorkspaceAccessToken(true);
Expand All @@ -41,7 +43,7 @@ export function syncWorkspace(reconnectCheck = false) {
return false;
}

HTTP.post(`${ workspaceUrl }/client`, {
result = HTTP.post(`${ workspaceUrl }/client`, {
data: info,
headers,
});
Expand All @@ -57,5 +59,11 @@ export function syncWorkspace(reconnectCheck = false) {
return false;
}

const { data } = result;

if (data.publicKey) {
Settings.updateValueById('Cloud_Workspace_PublicKey', data.publicKey);
}

return true;
}
1 change: 1 addition & 0 deletions app/cloud/server/functions/unregisterWorkspace.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export function unregisterWorkspace() {
Settings.updateValueById('Cloud_Workspace_Client_Id', null);
Settings.updateValueById('Cloud_Workspace_Client_Secret', null);
Settings.updateValueById('Cloud_Workspace_Client_Secret_Expires_At', null);
Settings.updateValueById('Cloud_Workspace_PublicKey', null);
Settings.updateValueById('Cloud_Workspace_Registration_Client_Uri', null);

return true;
Expand Down
3 changes: 2 additions & 1 deletion app/cloud/server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import './methods';
import { getWorkspaceAccessToken } from './functions/getWorkspaceAccessToken';
import { getWorkspaceLicense } from './functions/getWorkspaceLicense';
import { getUserCloudAccessToken } from './functions/getUserCloudAccessToken';
import { getWorkspaceKey } from './functions/getWorkspaceKey';
import { Permissions } from '../../models';

if (Permissions) {
Expand All @@ -11,4 +12,4 @@ if (Permissions) {
// Ensure the client/workspace access token is valid
getWorkspaceAccessToken();

export { getWorkspaceAccessToken, getWorkspaceLicense, getUserCloudAccessToken };
export { getWorkspaceAccessToken, getWorkspaceLicense, getWorkspaceKey, getUserCloudAccessToken };
11 changes: 11 additions & 0 deletions app/lib/server/startup/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -2664,6 +2664,17 @@ settings.addGroup('Setup_Wizard', function() {
secret: true,
});

this.add('Cloud_Workspace_PublicKey', '', {
type: 'string',
hidden: true,
readonly: true,
enableQuery: {
_id: 'Register_Server',
value: true,
},
secret: true,
});

this.add('Cloud_Workspace_License', '', {
type: 'string',
hidden: true,
Expand Down

0 comments on commit 0bb9a52

Please sign in to comment.