cordova-plugin-unvired-universal-sdk 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugin.xml +1 -13
- package/www/kernel.js +38344 -1243
- package/aar/README.md +0 -3
- package/aar/Unvired_Kernel_Android.aar +0 -0
- package/aar/Unvired_Kernel_HTML5_Android.aar +0 -0
- package/src/android/build.gradle +0 -35
- package/src/android/xml/provider_paths.xml +0 -21
- package/src/browser/UnviredPluginProxy.js +0 -2430
- package/src/browser/bootstrap.min.js +0 -17
- package/src/browser/codemirror.js +0 -9755
- package/src/browser/jquery-3.2.1.js +0 -10253
- package/src/browser/sql-wasm.wasm +0 -0
- package/src/browser/sql.js +0 -203
- package/src/browser/src_index_worker_js.unvired-db-worker.js +0 -231
- package/src/browser/unvired-db-worker.js +0 -166
- package/src/browser/vendors-node_modules_comlink_dist_esm_comlink_mjs.unvired-db-worker.js +0 -22
- package/src/ios/AttachmentPlugin.h +0 -21
- package/src/ios/AttachmentPlugin.m +0 -180
- package/src/ios/DataStructureHelper.h +0 -28
- package/src/ios/DataStructureHelper.m +0 -188
- package/src/ios/IOSAuthPlugin.h +0 -14
- package/src/ios/IOSAuthPlugin.m +0 -13
- package/src/ios/IOSDatabasePlugin.h +0 -28
- package/src/ios/IOSDatabasePlugin.m +0 -253
- package/src/ios/IOSFWSettingsPlugin.h +0 -65
- package/src/ios/IOSFWSettingsPlugin.m +0 -363
- package/src/ios/IOSLoggerPlugin.h +0 -34
- package/src/ios/IOSLoggerPlugin.m +0 -198
- package/src/ios/IOSLoginPlugin.h +0 -29
- package/src/ios/IOSLoginPlugin.m +0 -480
- package/src/ios/IOSProxyPlugin.h +0 -21
- package/src/ios/IOSProxyPlugin.m +0 -172
- package/src/ios/IOSSyncEnginePlugin.h +0 -54
- package/src/ios/IOSSyncEnginePlugin.m +0 -847
- package/src/ios/PluginConstants.h +0 -195
- package/src/ios/PluginHelper.h +0 -29
- package/src/ios/PluginHelper.m +0 -74
- package/src/ios/SyncHTML5Response.h +0 -50
- package/src/ios/SyncHTML5Response.m +0 -68
- package/www/applicationMeta/applicationMetadataParser.ts +0 -285
- package/www/applicationMeta/fieldConstants.ts +0 -92
- package/www/attachment/attachmentHelper.ts +0 -326
- package/www/attachment/attachmentQHelper.ts +0 -158
- package/www/attachment/attachmentService.ts +0 -259
- package/www/authenticationService.ts +0 -751
- package/www/database/appDatabaseManager.ts +0 -54
- package/www/database/databaseManager.ts +0 -616
- package/www/helper/dbCreateTablesManager.ts +0 -354
- package/www/helper/frameworkHelper.ts +0 -127
- package/www/helper/frameworkSettingsManager.ts +0 -287
- package/www/helper/getMessageTimerManager.ts +0 -81
- package/www/helper/httpConnection.ts +0 -1051
- package/www/helper/logger.ts +0 -312
- package/www/helper/notificationListnerHelper.ts +0 -56
- package/www/helper/passcodeGenerator.ts +0 -61
- package/www/helper/reconciler.ts +0 -1062
- package/www/helper/serverResponseHandler.ts +0 -677
- package/www/helper/serviceConstants.ts +0 -254
- package/www/helper/settingsHelper.ts +0 -386
- package/www/helper/status.ts +0 -83
- package/www/helper/syncInputDataManager.ts +0 -205
- package/www/helper/unviredAccount.ts +0 -104
- package/www/helper/unviredAccountManager.ts +0 -120
- package/www/helper/urlService.ts +0 -43
- package/www/helper/userSettingsManager.ts +0 -172
- package/www/helper/utils.ts +0 -110
- package/www/inbox/downloadMessageService.ts +0 -270
- package/www/inbox/inboxHelper.ts +0 -132
- package/www/inbox/inboxService.ts +0 -223
- package/www/outbox/outboxAttachmentManager.ts +0 -152
- package/www/outbox/outboxHelper.ts +0 -67
- package/www/outbox/outboxService.ts +0 -519
- package/www/subtract.ts +0 -5
- package/www/sum.ts +0 -4
- package/www/syncEngine.ts +0 -687
|
@@ -1,751 +0,0 @@
|
|
|
1
|
-
import {LoginParameters, LoginType, LoginListenerType, SyncStatus, ObjectStatus} from './helper/utils'
|
|
2
|
-
import FrameworkHelper from "./helper/frameworkHelper";
|
|
3
|
-
import HttpConnection from './helper/httpConnection'
|
|
4
|
-
import ApplicationMetaParser from './applicationMeta/applicationMetadataParser';
|
|
5
|
-
import * as ServiceConstants from './helper/serviceConstants';
|
|
6
|
-
import { UserSettingsFields, UserSettingsManager, stringToUserSettingsFields } from './helper/userSettingsManager';
|
|
7
|
-
import { Logger } from './helper/logger';
|
|
8
|
-
import { UnviredAccountManager } from './helper/unviredAccountManager';
|
|
9
|
-
import DbCreateTablesManager from './helper/dbCreateTablesManager';
|
|
10
|
-
import { UnviredAccount } from './helper/unviredAccount';
|
|
11
|
-
import { FrameworkSettingsFields, FrameworkSettingsManager, stringToFrameworkSettingsFields } from './helper/frameworkSettingsManager';
|
|
12
|
-
import { Status } from './helper/status';
|
|
13
|
-
import SettingsHelper from './helper/settingsHelper';
|
|
14
|
-
import { NotificationListenerHelper, NotificationListnerType } from './helper/notificationListnerHelper';
|
|
15
|
-
import GetMessageTimerManager from './helper/getMessageTimerManager';
|
|
16
|
-
import { DatabaseManager } from './database/databaseManager';
|
|
17
|
-
import OutboxService from './outbox/outboxService';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const fileName = "AuthenticationService"
|
|
21
|
-
export class UnviredResult {
|
|
22
|
-
data: any;
|
|
23
|
-
message: string;
|
|
24
|
-
type: number;
|
|
25
|
-
error: string;
|
|
26
|
-
errorDetail: string;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export enum ResultType {
|
|
30
|
-
success = 0,
|
|
31
|
-
error,
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export class SyncResult extends UnviredResult {
|
|
35
|
-
code: number;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export class AuthenticationService {
|
|
39
|
-
jwtToken = ""
|
|
40
|
-
public loginParameters: any = {};
|
|
41
|
-
private messageInterval: number = 0;
|
|
42
|
-
|
|
43
|
-
private static readonly _instance: AuthenticationService = new AuthenticationService();
|
|
44
|
-
private constructor() {}
|
|
45
|
-
public static get instance(): AuthenticationService {
|
|
46
|
-
return this._instance;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public async login(loginParameters: LoginParameters): Promise<any> {
|
|
50
|
-
this.loginParameters = loginParameters
|
|
51
|
-
Logger.logInfo(fileName, 'login', 'CORDOVA_DOCUMENT_DICRECTORY: ' + window.cordova.file.documentsDirectory);
|
|
52
|
-
return new Promise(async (resolve, reject) => {
|
|
53
|
-
let cbResult = new UnviredResult()
|
|
54
|
-
try {
|
|
55
|
-
|
|
56
|
-
Logger.logInfo(fileName, "login", "Started Logging in...");
|
|
57
|
-
|
|
58
|
-
if (this.loginParameters.metadataPath != null && this.loginParameters.metadataPath.length > 0) {
|
|
59
|
-
const metadataJSON = await HttpConnection.getJSONFromFile(this.loginParameters.metadataPath);
|
|
60
|
-
this.loginParameters.metadataJSON = metadataJSON;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (this.loginParameters.metadataJSON == null || this.loginParameters.metadataJSON.length == 0) {
|
|
64
|
-
Logger.logError(fileName, "login", "Metadata is not set.");
|
|
65
|
-
cbResult.message = "Metadata json is not set.";
|
|
66
|
-
cbResult.type = LoginListenerType.auth_activation_required;
|
|
67
|
-
resolve(cbResult);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
try {
|
|
72
|
-
const metadataJSON = JSON.parse(this.loginParameters.metadataJSON)
|
|
73
|
-
if (metadataJSON == null || metadataJSON == undefined || metadataJSON.length === 0) {
|
|
74
|
-
Logger.logError(fileName, "login", "Invalid metadata");
|
|
75
|
-
cbResult.message = "Invalid metadata json is set.";
|
|
76
|
-
cbResult.type = LoginListenerType.auth_activation_required;
|
|
77
|
-
resolve(cbResult);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
} catch (e) {
|
|
81
|
-
Logger.logError(fileName, "login", "Invalid metadata");
|
|
82
|
-
cbResult.message = "Invalid metadata json is set.";
|
|
83
|
-
cbResult.type = LoginListenerType.auth_activation_required;
|
|
84
|
-
resolve(cbResult);
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (this.loginParameters.appName == null || this.loginParameters.appName.length == 0) {
|
|
89
|
-
ApplicationMetaParser.instance.parseAppInfo(this.loginParameters.metadataJSON);
|
|
90
|
-
if (ApplicationMetaParser.instance.applicationName.length === 0) {
|
|
91
|
-
Logger.logError(fileName, "login", "Invalid metadata");
|
|
92
|
-
cbResult.message = "Application name not initialized";
|
|
93
|
-
cbResult.type = LoginListenerType.auth_activation_required;
|
|
94
|
-
resolve(cbResult);
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
this.loginParameters.appName = ApplicationMetaParser.instance.applicationName
|
|
98
|
-
Logger.logInfo(fileName, "login", `APPLICATION NAME: ${this.loginParameters.appName} DEVICE TYPE:${FrameworkHelper.getPlatform()}`);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Check if DB available
|
|
102
|
-
let allAccounts = UnviredAccountManager.getInstance().getAllAccounts();
|
|
103
|
-
let isDBAvailable = allAccounts.length > 0
|
|
104
|
-
|
|
105
|
-
Logger.logInfo(fileName, "login", `Database Status: ${isDBAvailable ? "Available" : "Not Available"}`);
|
|
106
|
-
|
|
107
|
-
// If Database is not available, then give a callback to open the Login Screen.
|
|
108
|
-
if (!isDBAvailable) {
|
|
109
|
-
Logger.logError(fileName, "login", `No Accounts Are Available.`);
|
|
110
|
-
cbResult.type = LoginListenerType.auth_activation_required;
|
|
111
|
-
resolve(cbResult);
|
|
112
|
-
return
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
Logger.logInfo(fileName, "login", `All Accounts: ${JSON.stringify(allAccounts)}`);
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// DB is available, there is data.
|
|
120
|
-
// If an Account is Logged out, then give a callback to open the Account Selection Screen.
|
|
121
|
-
// Or if there is more than one account, then present Account Selection Screen
|
|
122
|
-
// Local Storeage stores the last logged out account. Fetch it from there.
|
|
123
|
-
|
|
124
|
-
let lastLoggedOutAccount = UnviredAccountManager.getInstance().getlastLoggedOutAccount()
|
|
125
|
-
let lastActiveAccount = UnviredAccountManager.getInstance().getLastLoggedInAccount()
|
|
126
|
-
if (lastLoggedOutAccount != null && allAccounts.length > 1) { // There was an account which was logged out. So New Account has to get selected.
|
|
127
|
-
cbResult.type = LoginListenerType.app_requires_current_account;
|
|
128
|
-
resolve(cbResult);
|
|
129
|
-
return
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
if (lastActiveAccount == null) {
|
|
133
|
-
lastActiveAccount = allAccounts[0]
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const localPasswordFlag = await FrameworkSettingsManager.getInstance().getFieldValue(FrameworkSettingsFields.localPassword)
|
|
138
|
-
let isLocalPasswordRequired = localPasswordFlag == "YES"
|
|
139
|
-
|
|
140
|
-
if (isLocalPasswordRequired) {
|
|
141
|
-
cbResult.type = LoginListenerType.app_requires_login;
|
|
142
|
-
resolve(cbResult);
|
|
143
|
-
return
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(null)
|
|
147
|
-
UnviredAccountManager.getInstance().setLastLoggedInAccount(lastActiveAccount.getAccountId())
|
|
148
|
-
this.loginParameters.username = this.loginParameters.username ?? lastActiveAccount.getUsername();
|
|
149
|
-
this.loginParameters.company = this.loginParameters.company ?? lastActiveAccount.getCompany();
|
|
150
|
-
this.loginParameters.url = this.loginParameters.url ?? lastActiveAccount.getServerURL();
|
|
151
|
-
this.loginParameters.feUserId = this.loginParameters.feUserId ?? lastActiveAccount.getFeUserId();
|
|
152
|
-
this.loginParameters.loginType = this.loginParameters.loginType ?? lastActiveAccount.getLoginType();
|
|
153
|
-
this.loginParameters.port = this.loginParameters.port ?? lastActiveAccount.getPort();
|
|
154
|
-
this.loginParameters.domain = this.loginParameters.domain ?? lastActiveAccount.getDomain();
|
|
155
|
-
FrameworkSettingsManager.getInstance().setFieldValue(FrameworkSettingsFields.url, this.loginParameters.url);
|
|
156
|
-
FrameworkSettingsManager.getInstance().setFieldValue(FrameworkSettingsFields.feUser, this.loginParameters.feUserId);
|
|
157
|
-
cbResult.type = LoginListenerType.login_success;
|
|
158
|
-
OutboxService.getInstance().start();
|
|
159
|
-
GetMessageTimerManager.getInstance().startTimer();
|
|
160
|
-
resolve(cbResult);
|
|
161
|
-
return
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
catch (e) {
|
|
165
|
-
let unviredResult = new UnviredResult()
|
|
166
|
-
unviredResult.type = 1
|
|
167
|
-
unviredResult.error = e
|
|
168
|
-
resolve(unviredResult)
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
public loginWithDemoData(loginParameters: any): Promise<any> {
|
|
174
|
-
return new Promise(async (resolve, reject) => {
|
|
175
|
-
const unviredResult = new UnviredResult();
|
|
176
|
-
const frameworkSettings: any = FrameworkSettingsManager.getDemoModeFwSettings(loginParameters);
|
|
177
|
-
const userSettings = UserSettingsManager.getDemoModeUserSettings(loginParameters);
|
|
178
|
-
// Create FW Tables
|
|
179
|
-
const result = await DatabaseManager.getInstance().createTables();
|
|
180
|
-
if (!result) {
|
|
181
|
-
Logger.logError(fileName, "authenticateAndActivate", "Error creating database tables");
|
|
182
|
-
unviredResult.type = LoginListenerType.login_demo;
|
|
183
|
-
unviredResult.error = "Error creating database tables";
|
|
184
|
-
resolve(unviredResult);
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
Logger.logInfo(fileName, "authenticateAndActivate", "Database tables created successfully");
|
|
188
|
-
|
|
189
|
-
// Save the settings in the DB
|
|
190
|
-
try {
|
|
191
|
-
frameworkSettings[FrameworkSettingsFields[FrameworkSettingsFields.url]] = loginParameters.url;
|
|
192
|
-
frameworkSettings[FrameworkSettingsFields[FrameworkSettingsFields.feUser]] = loginParameters.feUserId;
|
|
193
|
-
await this.saveSettings(frameworkSettings, userSettings);
|
|
194
|
-
}
|
|
195
|
-
catch (e) {
|
|
196
|
-
Logger.logError(fileName, "authenticateAndActivate", `Error while saving settings. Error: ${e}`);
|
|
197
|
-
unviredResult.type = LoginListenerType.login_demo;
|
|
198
|
-
unviredResult.error = `Error while saving settings. Error: ${e}`;
|
|
199
|
-
resolve(unviredResult);
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
Logger.logInfo(fileName, "authenticateAndActivate", "Settings saved successfully");
|
|
203
|
-
resolve(unviredResult);
|
|
204
|
-
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
public logout(): Promise<any> {
|
|
209
|
-
return new Promise((resolve, reject) => {
|
|
210
|
-
let result: any = {}
|
|
211
|
-
const unviredAccount = UnviredAccountManager.getInstance().getAccount(this.loginParameters.username, this.loginParameters.company)
|
|
212
|
-
if (unviredAccount == null) {
|
|
213
|
-
Logger.logError(fileName, "logout", "Account not found to logout.");
|
|
214
|
-
result.message = "Account not found to logout."
|
|
215
|
-
result.type = 1;
|
|
216
|
-
reject(result);
|
|
217
|
-
return
|
|
218
|
-
}
|
|
219
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(unviredAccount.getAccountId())
|
|
220
|
-
result.message = "Logged out successfully."
|
|
221
|
-
result.type = 0;
|
|
222
|
-
resolve(result);
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
public clearData(): Promise<any> {
|
|
227
|
-
return new Promise(async (resolve, reject) => {
|
|
228
|
-
let result: any = {}
|
|
229
|
-
try {
|
|
230
|
-
const unviredAccount = UnviredAccountManager.getInstance().getAccount(this.loginParameters.username, this.loginParameters.company)
|
|
231
|
-
if (unviredAccount == null) {
|
|
232
|
-
Logger.logError(fileName, "clearData", "Account not found to clear data.");
|
|
233
|
-
result.message = "Account not found to clear data."
|
|
234
|
-
result.error = "Account not found to clear data."
|
|
235
|
-
result.type = 1;
|
|
236
|
-
reject(result);
|
|
237
|
-
return
|
|
238
|
-
}
|
|
239
|
-
UnviredAccountManager.getInstance().deleteAccount(unviredAccount.getAccountId())
|
|
240
|
-
await FrameworkHelper.deleteUserFolder(unviredAccount.getAccountId())
|
|
241
|
-
result.data = "Deleted all the data for this application from the device. Please exit the application by pressing the 'Home' button in your device."//"Data cleared successfully."
|
|
242
|
-
result.type = 0;
|
|
243
|
-
NotificationListenerHelper.postDataSenderNotification(null, NotificationListnerType.app_reset);
|
|
244
|
-
resolve(result);
|
|
245
|
-
}
|
|
246
|
-
catch (e) {
|
|
247
|
-
Logger.logError(fileName, "clearData", `Error while clearing data. Error: ${JSON.stringify(e)}`);
|
|
248
|
-
result.message = e.toString()
|
|
249
|
-
result.error = e.toString()
|
|
250
|
-
result.type = 1;
|
|
251
|
-
reject(result);
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
public authenticateAndActivate(loginParameters: any): Promise<any> {
|
|
257
|
-
this.loginParameters = loginParameters
|
|
258
|
-
return new Promise(async (resolve, reject) => {
|
|
259
|
-
if (this.loginParameters.metadataPath != null && this.loginParameters.metadataPath.length > 0) {
|
|
260
|
-
const metadataJSON = await HttpConnection.getJSONFromFile(this.loginParameters.metadataPath);
|
|
261
|
-
this.loginParameters.metadataJSON = metadataJSON;
|
|
262
|
-
}
|
|
263
|
-
// Check #1: Check if the Account Already Exists.
|
|
264
|
-
const accountObject = await UnviredAccountManager.getInstance().getAccount(loginParameters.username, loginParameters.company)
|
|
265
|
-
let isAccountExist = accountObject != null
|
|
266
|
-
if (isAccountExist) {
|
|
267
|
-
Logger.logError(fileName, "login", "Account already in use on this device. Go back and choose this account.");
|
|
268
|
-
let cbResult: any = {}
|
|
269
|
-
cbResult.message = "Account already in use on this device. Go back and choose this account."
|
|
270
|
-
cbResult.type = LoginListenerType.auth_activation_error;
|
|
271
|
-
resolve(cbResult);
|
|
272
|
-
return
|
|
273
|
-
}
|
|
274
|
-
const unviredResult = new UnviredResult();
|
|
275
|
-
var frameworkSettings: any = {}
|
|
276
|
-
var userSettings: any = {}
|
|
277
|
-
if (loginParameters.loginType !== LoginType.saml2) {
|
|
278
|
-
const result = await HttpConnection.authenticateUser(this.loginParameters);
|
|
279
|
-
const responseJson = await result.json();
|
|
280
|
-
unviredResult.type = result.ok ? LoginListenerType.auth_activation_success : LoginListenerType.auth_activation_error;
|
|
281
|
-
if (result.ok) {
|
|
282
|
-
unviredResult.data = responseJson;
|
|
283
|
-
} else {
|
|
284
|
-
unviredResult.error = responseJson.error;
|
|
285
|
-
}
|
|
286
|
-
if (result.status === Status.created) {
|
|
287
|
-
frameworkSettings = responseJson;
|
|
288
|
-
if (responseJson[ServiceConstants.KeySessionId] != null) {
|
|
289
|
-
HttpConnection.sessionId = responseJson[ServiceConstants.KeySessionId];
|
|
290
|
-
}
|
|
291
|
-
if (loginParameters.loginType === LoginType.sap || loginParameters.loginType === LoginType.ads) {
|
|
292
|
-
this.loginParameters.unviredUserName = responseJson[ServiceConstants.KeyUnviredId];
|
|
293
|
-
}
|
|
294
|
-
const userData: any[] = responseJson[ServiceConstants.KeyUsers];
|
|
295
|
-
|
|
296
|
-
const frontendIds: string[] = userData
|
|
297
|
-
.filter(
|
|
298
|
-
(element) =>
|
|
299
|
-
(FrameworkHelper.getFrontendType() === "WINDOWS" ?
|
|
300
|
-
(element[ServiceConstants.KeyFrontendType] === "WINDOWS" || element[ServiceConstants.KeyFrontendType] === "WINDOWS8") :
|
|
301
|
-
element[ServiceConstants.KeyFrontendType] === FrameworkHelper.getFrontendType()) &&
|
|
302
|
-
element[ServiceConstants.KeyApplications] != null &&
|
|
303
|
-
(element[ServiceConstants.KeyApplications] as any[])
|
|
304
|
-
.filter((e) => e[ServiceConstants.KeyName] === loginParameters.appName)
|
|
305
|
-
.length > 0
|
|
306
|
-
)
|
|
307
|
-
.map((e) => e[ServiceConstants.KeyName] as string);
|
|
308
|
-
|
|
309
|
-
if (frontendIds.length === 0) {
|
|
310
|
-
Logger.logError(fileName, "authenticateAndActivate", "Application is not deployed for this user.");
|
|
311
|
-
this.loginParameters.password = "";
|
|
312
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
313
|
-
unviredResult.error = "Application is not deployed for this user. Please contact your Administrator.";
|
|
314
|
-
resolve(unviredResult);
|
|
315
|
-
return;
|
|
316
|
-
} else if (frontendIds.length > 1) {
|
|
317
|
-
// TODO: Check: How to send multiple frontend ids to the app.
|
|
318
|
-
// if (this.loginParameters.frontendId.isEmpty) {
|
|
319
|
-
// _selectedAccount!.setErrorMessage(
|
|
320
|
-
// "Multiple Frontends are available for this user. Please select one frontend to proceed.");
|
|
321
|
-
// _selectedAccount!.setAvailableFrontendIds(frontendIds);
|
|
322
|
-
// _selectedAccount!.setPassword("");
|
|
323
|
-
// _selectedAccount = await _getSelectedFEFromApplication([_selectedAccount!]);
|
|
324
|
-
// } else if (!frontendIds.includes(_selectedAccount!.getFrontendId())) {
|
|
325
|
-
// _selectedAccount!.setErrorMessage("Invalid frontend id.");
|
|
326
|
-
// _selectedAccount!.setAvailableFrontendIds(frontendIds);
|
|
327
|
-
// _selectedAccount!.setPassword("");
|
|
328
|
-
// return await _callShowLoginAndValidateInput([_selectedAccount!]);
|
|
329
|
-
// }
|
|
330
|
-
} else {
|
|
331
|
-
this.loginParameters.feUserId = frontendIds[0];
|
|
332
|
-
}
|
|
333
|
-
if (FrameworkHelper.getPlatform() !== "browser") {
|
|
334
|
-
// Call activate rest api
|
|
335
|
-
const activationResponse = await HttpConnection.activateUser(this.loginParameters);
|
|
336
|
-
|
|
337
|
-
// Handle Activation Response
|
|
338
|
-
const activationResponseObject = await activationResponse.json();
|
|
339
|
-
if (activationResponse.status === Status.created) {
|
|
340
|
-
frameworkSettings = activationResponseObject;
|
|
341
|
-
this.loginParameters.activationId = frameworkSettings[ServiceConstants.KeySettings]["activationId"];
|
|
342
|
-
if (loginParameters.loginType === LoginType.sap || loginParameters.loginType === LoginType.ads || loginParameters.loginType === LoginType.passwordless) {
|
|
343
|
-
this.loginParameters.unviredUserPwd = activationResponseObject[ServiceConstants.KeySettings][ServiceConstants.KeyUnviredMd5Pwd]
|
|
344
|
-
}
|
|
345
|
-
const unviredId = UserSettingsFields[UserSettingsFields.unviredId];
|
|
346
|
-
userSettings[unviredId] = loginParameters.username;
|
|
347
|
-
const unviredPwd = UserSettingsFields[UserSettingsFields.unviredPassword];
|
|
348
|
-
|
|
349
|
-
let pwdToSave = loginParameters.password;
|
|
350
|
-
if (loginParameters.loginType !== LoginType.ads && loginParameters.loginType !== LoginType.sap) {
|
|
351
|
-
pwdToSave = FrameworkHelper.getMD5String(loginParameters.password);
|
|
352
|
-
}
|
|
353
|
-
userSettings[unviredPwd] = pwdToSave;
|
|
354
|
-
} else {
|
|
355
|
-
let errorMsg = "Login Failed. Error: ";
|
|
356
|
-
if (activationResponseObject[ServiceConstants.KeyError] != null && activationResponseObject[ServiceConstants.KeyError].length > 0) {
|
|
357
|
-
errorMsg += activationResponseObject[ServiceConstants.KeyError];
|
|
358
|
-
}
|
|
359
|
-
Logger.logError(fileName, "authenticateAndActivate", errorMsg);
|
|
360
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
361
|
-
unviredResult.error = errorMsg;
|
|
362
|
-
resolve(unviredResult);
|
|
363
|
-
return;
|
|
364
|
-
}
|
|
365
|
-
} else {
|
|
366
|
-
const unviredId = UserSettingsFields[UserSettingsFields.unviredId];
|
|
367
|
-
userSettings[unviredId] = loginParameters.username;
|
|
368
|
-
const unviredUserId = UserSettingsFields[UserSettingsFields.unviredUserId];
|
|
369
|
-
userSettings[unviredUserId] = frameworkSettings[unviredId];
|
|
370
|
-
const unviredPwd = UserSettingsFields[UserSettingsFields.unviredPassword];
|
|
371
|
-
let pwdToSave = loginParameters.password;
|
|
372
|
-
if (loginParameters.loginType !== LoginType.ads && loginParameters.loginType !== LoginType.sap) {
|
|
373
|
-
pwdToSave = FrameworkHelper.getMD5String(loginParameters.password);
|
|
374
|
-
}
|
|
375
|
-
userSettings[unviredPwd] = pwdToSave;
|
|
376
|
-
// added this to save the settings in the DB
|
|
377
|
-
frameworkSettings = {"settings": frameworkSettings}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
// Get jwt token from rest api
|
|
381
|
-
const jwtResponse = await HttpConnection.getJwtToken(this.loginParameters);
|
|
382
|
-
// Handle jwt Response
|
|
383
|
-
const jwtResponseObject = await jwtResponse.json();
|
|
384
|
-
if (jwtResponse.status !== Status.created) {
|
|
385
|
-
let errorMsg = "Login Failed. Error: ";
|
|
386
|
-
if (
|
|
387
|
-
jwtResponseObject[ServiceConstants.KeyError] != null &&
|
|
388
|
-
jwtResponseObject[ServiceConstants.KeyError].length > 0
|
|
389
|
-
) {
|
|
390
|
-
errorMsg += jwtResponseObject[ServiceConstants.KeyError];
|
|
391
|
-
}
|
|
392
|
-
Logger.logError(fileName, "authenticateAndActivate", errorMsg);
|
|
393
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
394
|
-
unviredResult.error = errorMsg;
|
|
395
|
-
resolve(unviredResult);
|
|
396
|
-
return;
|
|
397
|
-
}
|
|
398
|
-
const jwtToken = UserSettingsFields[UserSettingsFields.jwtToken];
|
|
399
|
-
userSettings[jwtToken] = jwtResponseObject[ServiceConstants.KeyJwtToken];
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
resolve(unviredResult);
|
|
403
|
-
return;
|
|
404
|
-
}
|
|
405
|
-
} else {
|
|
406
|
-
// The Browser check is commented out for SAML2 login type.Because it should always call the activate rest api.
|
|
407
|
-
// if (FrameworkHelper.getPlatform() !== "browser") {
|
|
408
|
-
// Call activate rest api
|
|
409
|
-
const activationResponse = await HttpConnection.activateUser(loginParameters);
|
|
410
|
-
|
|
411
|
-
// Handle Activation Response
|
|
412
|
-
const activationResponseObject = await activationResponse.json();
|
|
413
|
-
if (activationResponse.status === Status.created) {
|
|
414
|
-
frameworkSettings = activationResponseObject;
|
|
415
|
-
loginParameters.frontendId = frameworkSettings[ServiceConstants.KeySettings]["frontendId"];
|
|
416
|
-
loginParameters.feUserId = frameworkSettings[ServiceConstants.KeySettings]["feUser"];
|
|
417
|
-
loginParameters.activationId = frameworkSettings[ServiceConstants.KeySettings]["activationId"];
|
|
418
|
-
const unviredId = UserSettingsFields[UserSettingsFields.unviredId];
|
|
419
|
-
userSettings[unviredId] = loginParameters.username;
|
|
420
|
-
const unviredPwd = UserSettingsFields[UserSettingsFields.unviredPassword];
|
|
421
|
-
userSettings[unviredPwd] = FrameworkHelper.getMD5String(loginParameters.password);
|
|
422
|
-
} else {
|
|
423
|
-
let errorMsg = "Login Failed. Error: ";
|
|
424
|
-
if (
|
|
425
|
-
activationResponseObject[ServiceConstants.KeyError] != null &&
|
|
426
|
-
activationResponseObject[ServiceConstants.KeyError].length > 0
|
|
427
|
-
) {
|
|
428
|
-
errorMsg += activationResponseObject[ServiceConstants.KeyError];
|
|
429
|
-
}
|
|
430
|
-
Logger.logError(fileName, "authenticateAndActivate", errorMsg);
|
|
431
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
432
|
-
unviredResult.error = errorMsg;
|
|
433
|
-
resolve(unviredResult);
|
|
434
|
-
return;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
// } else {
|
|
438
|
-
// const unviredId = UserSettingsFields[UserSettingsFields.unviredId];
|
|
439
|
-
// userSettings[unviredId] = loginParameters.username;
|
|
440
|
-
// const unviredUserId = UserSettingsFields[UserSettingsFields.unviredUserId];
|
|
441
|
-
// userSettings[unviredUserId] = frameworkSettings[unviredId];
|
|
442
|
-
// const unviredPwd = UserSettingsFields[UserSettingsFields.unviredPassword];
|
|
443
|
-
// userSettings[unviredPwd] = FrameworkHelper.getMD5String(loginParameters.password);
|
|
444
|
-
// // added this to save the settings in the DB
|
|
445
|
-
// frameworkSettings = {"settings": frameworkSettings}
|
|
446
|
-
// }
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
// NOTE: This is not required as the jwt token is already available in the loginParameters.
|
|
450
|
-
// // Get jwt token from rest api
|
|
451
|
-
// const jwtResponse = await HttpConnection.getJwtToken(loginParameters);
|
|
452
|
-
// // Handle jwt Response
|
|
453
|
-
// const jwtResponseObject = await jwtResponse.json();
|
|
454
|
-
// if (jwtResponse.status !== Status.unauthorized) {
|
|
455
|
-
// let errorMsg = "Login Failed. Error: ";
|
|
456
|
-
// if (jwtResponseObject[ServiceConstants.KeyError] != null && jwtResponseObject[ServiceConstants.KeyError].length > 0) {
|
|
457
|
-
// errorMsg += jwtResponseObject[ServiceConstants.KeyError];
|
|
458
|
-
// }
|
|
459
|
-
// Logger.logError(fileName, "authenticateAndActivate", errorMsg);
|
|
460
|
-
// unviredResult.type = LoginListenerType.auth_activation_error;
|
|
461
|
-
// unviredResult.error = errorMsg;
|
|
462
|
-
// resolve(unviredResult);
|
|
463
|
-
// return;
|
|
464
|
-
// }
|
|
465
|
-
|
|
466
|
-
unviredResult.type = LoginListenerType.auth_activation_success;
|
|
467
|
-
|
|
468
|
-
const jwtToken = UserSettingsFields[UserSettingsFields.jwtToken];
|
|
469
|
-
userSettings[jwtToken] = loginParameters["jwtToken"];
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
const metadataParser = ApplicationMetaParser.instance;
|
|
473
|
-
await metadataParser.init(loginParameters.metadataJSON);
|
|
474
|
-
|
|
475
|
-
// Save the Unvired Account in the local storage.
|
|
476
|
-
const unviredAccount = new UnviredAccount(this.loginParameters.username, this.loginParameters.company, this.loginParameters.url, this.loginParameters.feUserId, this.loginParameters.loginType)
|
|
477
|
-
unviredAccount.setPort(this.loginParameters.port ?? "")
|
|
478
|
-
unviredAccount.setDomain(this.loginParameters.domain ?? "")
|
|
479
|
-
UnviredAccountManager.getInstance().saveAccount(unviredAccount)
|
|
480
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(null)
|
|
481
|
-
UnviredAccountManager.getInstance().setLastLoggedInAccount(unviredAccount.getAccountId())
|
|
482
|
-
|
|
483
|
-
// Create FW Tables
|
|
484
|
-
const result = await DatabaseManager.getInstance().createTables();
|
|
485
|
-
if (!result) {
|
|
486
|
-
UnviredAccountManager.getInstance().deleteAccount(unviredAccount.getAccountId())
|
|
487
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(null)
|
|
488
|
-
UnviredAccountManager.getInstance().setLastLoggedInAccount(null)
|
|
489
|
-
Logger.logError(fileName, "authenticateAndActivate", "Error creating database tables");
|
|
490
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
491
|
-
unviredResult.error = "Error creating database tables";
|
|
492
|
-
resolve(unviredResult);
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
Logger.logInfo(fileName, "authenticateAndActivate", "Database tables created successfully");
|
|
496
|
-
|
|
497
|
-
// Save the settings in the DB
|
|
498
|
-
try {
|
|
499
|
-
frameworkSettings[FrameworkSettingsFields[FrameworkSettingsFields.url]] = loginParameters.url;
|
|
500
|
-
frameworkSettings[FrameworkSettingsFields[FrameworkSettingsFields.feUser]] = loginParameters.feUserId;
|
|
501
|
-
await this.saveSettings(frameworkSettings, userSettings);
|
|
502
|
-
}
|
|
503
|
-
catch (e) {
|
|
504
|
-
UnviredAccountManager.getInstance().deleteAccount(unviredAccount.getAccountId())
|
|
505
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(null)
|
|
506
|
-
UnviredAccountManager.getInstance().setLastLoggedInAccount(null)
|
|
507
|
-
Logger.logError(fileName, "authenticateAndActivate", `Error while saving settings. Error: ${e}`);
|
|
508
|
-
unviredResult.type = LoginListenerType.auth_activation_error;
|
|
509
|
-
unviredResult.error = `Error while saving settings. Error: ${e}`;
|
|
510
|
-
resolve(unviredResult);
|
|
511
|
-
return;
|
|
512
|
-
}
|
|
513
|
-
Logger.logInfo(fileName, "authenticateAndActivate", "Settings saved successfully");
|
|
514
|
-
if (unviredResult.type === LoginListenerType.auth_activation_success) {
|
|
515
|
-
OutboxService.getInstance().start();
|
|
516
|
-
GetMessageTimerManager.getInstance().startTimer();
|
|
517
|
-
}
|
|
518
|
-
resolve(unviredResult);
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
public async authenticateLocal(loginParameters: any): Promise<any> {
|
|
523
|
-
return new Promise(async (resolve, reject) => {
|
|
524
|
-
const unviredResult = new UnviredResult();
|
|
525
|
-
const unviredAccount = UnviredAccountManager.getInstance().getAccount(loginParameters.username, loginParameters.company)
|
|
526
|
-
if (unviredAccount == null) {
|
|
527
|
-
Logger.logError(fileName, "authenticateLocal", "Account not found.");
|
|
528
|
-
unviredResult.type = LoginListenerType.login_error;
|
|
529
|
-
unviredResult.error = "Account information not found.";
|
|
530
|
-
resolve(unviredResult);
|
|
531
|
-
return;
|
|
532
|
-
}
|
|
533
|
-
if (navigator.onLine) {
|
|
534
|
-
// Get jwt token from rest api
|
|
535
|
-
try {
|
|
536
|
-
const jwtResponse = await HttpConnection.getJwtToken(loginParameters);
|
|
537
|
-
// Handle jwt Response
|
|
538
|
-
const jwtResponseObject = JSON.parse(jwtResponse.body);
|
|
539
|
-
if (jwtResponse.status !== Status.created) {
|
|
540
|
-
let errorMsg = "Login Failed. Error: ";
|
|
541
|
-
if (
|
|
542
|
-
jwtResponseObject[ServiceConstants.KeyError] != null &&
|
|
543
|
-
jwtResponseObject[ServiceConstants.KeyError].length > 0
|
|
544
|
-
) {
|
|
545
|
-
errorMsg += jwtResponseObject[ServiceConstants.KeyError];
|
|
546
|
-
}
|
|
547
|
-
Logger.logError(fileName, "authenticateLocal", errorMsg);
|
|
548
|
-
unviredResult.type = LoginListenerType.login_error;
|
|
549
|
-
unviredResult.error = errorMsg;
|
|
550
|
-
resolve(unviredResult);
|
|
551
|
-
return;
|
|
552
|
-
}
|
|
553
|
-
const jwtToken = jwtResponseObject[ServiceConstants.KeyJwtToken];
|
|
554
|
-
await UserSettingsManager.getInstance().setFieldValue(UserSettingsFields.jwtToken, jwtToken);
|
|
555
|
-
}
|
|
556
|
-
catch (e) {
|
|
557
|
-
Logger.logError(fileName, "authenticateLocal", `Error while getting jwt token. Error: ${JSON.stringify(e)}`);
|
|
558
|
-
unviredResult.type = LoginListenerType.login_error;
|
|
559
|
-
unviredResult.error = `Login failed. Error: ${JSON.stringify(e)}`;
|
|
560
|
-
resolve(unviredResult);
|
|
561
|
-
return;
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
else {
|
|
565
|
-
const storedPassword = await UserSettingsManager.getInstance().getFieldValue(UserSettingsFields.unviredPassword)
|
|
566
|
-
const md5Password = FrameworkHelper.getMD5String(loginParameters.password)
|
|
567
|
-
if (storedPassword !== md5Password) {
|
|
568
|
-
Logger.logError(fileName, "authenticateLocal", "Invalid password.");
|
|
569
|
-
unviredResult.type = LoginListenerType.login_error;
|
|
570
|
-
unviredResult.error = "Invalid password."
|
|
571
|
-
resolve(unviredResult)
|
|
572
|
-
return
|
|
573
|
-
}
|
|
574
|
-
UnviredAccountManager.getInstance().setLastLoggedOutAccount(null)
|
|
575
|
-
UnviredAccountManager.getInstance().setLastLoggedInAccount(unviredAccount.getAccountId())
|
|
576
|
-
}
|
|
577
|
-
unviredResult.type = LoginListenerType.login_success;
|
|
578
|
-
OutboxService.getInstance().start();
|
|
579
|
-
GetMessageTimerManager.getInstance().startTimer();
|
|
580
|
-
resolve(unviredResult);
|
|
581
|
-
});
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
public getAllAccounts(): Promise<any> {
|
|
585
|
-
return new Promise((resolve, reject) => {
|
|
586
|
-
try {
|
|
587
|
-
const allAccounts = UnviredAccountManager.getInstance().getAllAccounts();
|
|
588
|
-
resolve(allAccounts);
|
|
589
|
-
}
|
|
590
|
-
catch (e) {
|
|
591
|
-
Logger.logError(fileName, "getAllAccounts", `Error while getting all accounts. Error: ${JSON.stringify(e)}`);
|
|
592
|
-
reject(e);
|
|
593
|
-
}
|
|
594
|
-
});
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
public switchAccount(account: any): Promise<any> {
|
|
598
|
-
return new Promise((resolve, reject) => {
|
|
599
|
-
// TODO:
|
|
600
|
-
let isSuccessful = true
|
|
601
|
-
if (isSuccessful) {
|
|
602
|
-
const result = { /* data to be returned on success */ };
|
|
603
|
-
resolve(result);
|
|
604
|
-
} else {
|
|
605
|
-
const error = { /* error message */ };
|
|
606
|
-
reject(error);
|
|
607
|
-
}
|
|
608
|
-
});
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
public deleteAccount(account: any): Promise<any> {
|
|
612
|
-
return new Promise(async (resolve, reject) => {
|
|
613
|
-
try {
|
|
614
|
-
UnviredAccountManager.getInstance().deleteAccount(account.getAccountId());
|
|
615
|
-
await FrameworkHelper.deleteUserFolder(account.getAccountId())
|
|
616
|
-
resolve(true);
|
|
617
|
-
}
|
|
618
|
-
catch (e) {
|
|
619
|
-
Logger.logError(fileName, "deleteAccount", `Error while deleting account. Error: ${JSON.stringify(e)}`);
|
|
620
|
-
reject(e);
|
|
621
|
-
}
|
|
622
|
-
});
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
public setClientCredentials(credentials: any[]): Promise<any> {
|
|
626
|
-
return new Promise((resolve, reject) => {
|
|
627
|
-
// TODO:
|
|
628
|
-
let isSuccessful = true
|
|
629
|
-
if (isSuccessful) {
|
|
630
|
-
const result = { /* data to be returned on success */ };
|
|
631
|
-
resolve(result);
|
|
632
|
-
} else {
|
|
633
|
-
const error = { /* error message */ };
|
|
634
|
-
reject(error);
|
|
635
|
-
}
|
|
636
|
-
});
|
|
637
|
-
}
|
|
638
|
-
|
|
639
|
-
public isClientCredentialsSet(): Promise<any> {
|
|
640
|
-
return new Promise((resolve, reject) => {
|
|
641
|
-
// TODO:
|
|
642
|
-
let isSuccessful = true
|
|
643
|
-
if (isSuccessful) {
|
|
644
|
-
const result = { /* data to be returned on success */ };
|
|
645
|
-
resolve(result);
|
|
646
|
-
} else {
|
|
647
|
-
const error = { /* error message */ };
|
|
648
|
-
reject(error);
|
|
649
|
-
}
|
|
650
|
-
});
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
public setMessageInterval(interval: number): void {
|
|
654
|
-
this.messageInterval = interval;
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
public getMessageInterval(): number {
|
|
658
|
-
return this.messageInterval;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
private async saveSettings(frameworkSettings: any, userSettings: any): Promise<any> {
|
|
662
|
-
if (Object.keys(frameworkSettings).length > 0) {
|
|
663
|
-
// Parse and insert framework data into database
|
|
664
|
-
const fwSettingsManager = FrameworkSettingsManager.getInstance()
|
|
665
|
-
const fwSettings: any = frameworkSettings[ServiceConstants.KeySettings];
|
|
666
|
-
if (fwSettings != null) {
|
|
667
|
-
const fwSettingsKeys: string[] = Object.keys(fwSettings);
|
|
668
|
-
for (const key of fwSettingsKeys) {
|
|
669
|
-
const value = fwSettings[key];
|
|
670
|
-
if (key == FrameworkSettingsFields[FrameworkSettingsFields.localPassword] && value === "YES") {
|
|
671
|
-
// TODO: Set Local Password required field to true in Unvired Account
|
|
672
|
-
}
|
|
673
|
-
if (key === FrameworkSettingsFields[FrameworkSettingsFields.logLevel]) {
|
|
674
|
-
await SettingsHelper.setLogLevel(value);
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
if (key === ServiceConstants.KeySystems) {
|
|
678
|
-
const systemInfo: { [key: string]: any } = value;
|
|
679
|
-
const systemInfoArray: any[] = systemInfo[ServiceConstants.KeySystems];
|
|
680
|
-
for (const systemInfoObj of systemInfoArray) {
|
|
681
|
-
const timestamp: number = Date.now();
|
|
682
|
-
const systemCredentials: any = {
|
|
683
|
-
"lid": FrameworkHelper.getUUID(),
|
|
684
|
-
"timestamp": timestamp,
|
|
685
|
-
"objectStatus": ObjectStatus.global,
|
|
686
|
-
"syncStatus": SyncStatus.none,
|
|
687
|
-
"name": systemInfoObj[ServiceConstants.KeySystemsName],
|
|
688
|
-
"portName": systemInfoObj[ServiceConstants.KeySystemsPortName],
|
|
689
|
-
"portType": systemInfoObj[ServiceConstants.KeySystemsPortType],
|
|
690
|
-
"portDesc": systemInfoObj[ServiceConstants.KeySystemsPortDesc],
|
|
691
|
-
"systemDesc": systemInfoObj[ServiceConstants.KeySystemsDesc],
|
|
692
|
-
"userId":"",
|
|
693
|
-
"password": ""
|
|
694
|
-
};
|
|
695
|
-
await fwSettingsManager.addSystemCredential(systemCredentials);
|
|
696
|
-
}
|
|
697
|
-
}
|
|
698
|
-
else if (key === ServiceConstants.KeyLocation) {
|
|
699
|
-
const locationInfo: { [key: string]: any } = value;
|
|
700
|
-
const locationInfoKeys: string[] = Object.keys(locationInfo);
|
|
701
|
-
for (const key2 of locationInfoKeys) {
|
|
702
|
-
const value2 = locationInfo[key2];
|
|
703
|
-
switch (key2) {
|
|
704
|
-
case ServiceConstants.KeyLocationTracking:
|
|
705
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationTracking, value2);
|
|
706
|
-
break;
|
|
707
|
-
case ServiceConstants.KeyLocationInterval:
|
|
708
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationTrackingInterval, value2);
|
|
709
|
-
break;
|
|
710
|
-
case ServiceConstants.KeyLocationUploadInterval:
|
|
711
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationUploadInterval, value2);
|
|
712
|
-
break;
|
|
713
|
-
case ServiceConstants.KeyLocationDays:
|
|
714
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationTrackingDays, value2);
|
|
715
|
-
break;
|
|
716
|
-
case ServiceConstants.KeyLocationStart:
|
|
717
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationTrackingStart, value2);
|
|
718
|
-
break;
|
|
719
|
-
case ServiceConstants.KeyLocationEnd:
|
|
720
|
-
await fwSettingsManager.setFieldValue(FrameworkSettingsFields.locationTrackingEnd, value2);
|
|
721
|
-
break;
|
|
722
|
-
}
|
|
723
|
-
}
|
|
724
|
-
}
|
|
725
|
-
else if (key === FrameworkSettingsFields[FrameworkSettingsFields.unviredUser]) {
|
|
726
|
-
const unviredUserId = UserSettingsFields[UserSettingsFields.unviredUserId];
|
|
727
|
-
userSettings[unviredUserId] = value;
|
|
728
|
-
}
|
|
729
|
-
else {
|
|
730
|
-
if (typeof value !== 'object') {
|
|
731
|
-
await fwSettingsManager.setFieldValue(stringToFrameworkSettingsFields(key), value);
|
|
732
|
-
}
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
|
|
738
|
-
if (Object.keys(userSettings).length > 0) {
|
|
739
|
-
// Parse and insert user data into database
|
|
740
|
-
const userSettingsManager = UserSettingsManager.getInstance()
|
|
741
|
-
const userSettingsKeys: string[] = Object.keys(userSettings);
|
|
742
|
-
for (const key of userSettingsKeys) {
|
|
743
|
-
const value = userSettings[key];
|
|
744
|
-
await userSettingsManager.setFieldValue(stringToUserSettingsFields(key), value);
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
}
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
export default AuthenticationService.instance
|