Skip to content

Commit 00ddcb7

Browse files
author
Erika Perugachi
authored
Merge pull request #1199 from Hirobreak/link-cancel
Link Cancel and 2FA Recovery Code
2 parents 3293a75 + 5fd7673 commit 00ddcb7

File tree

16 files changed

+405
-248
lines changed

16 files changed

+405
-248
lines changed

electron_app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
"electron-builder": "^20.37.0"
136136
},
137137
"dependencies": {
138-
"@criptext/api": "0.15.20",
138+
"@criptext/api": "0.15.21",
139139
"@criptext/data-transfer-client": "^0.1.1",
140140
"@criptext/electron-better-ipc": "^0.1.2-rc5",
141141
"@criptext/electron-push-receiver": "^2.1.2-rc1",

electron_app/src/clientManager.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,11 @@ const linkAuth = async ({ newDeviceData, jwt }) => {
304304
return await client.linkAuth(newDeviceData);
305305
};
306306

307+
const linkCancel = async ({ newDeviceData, jwt }) => {
308+
await checkClient({ optionalSessionToken: jwt });
309+
return await client.linkCancel(newDeviceData);
310+
};
311+
307312
const linkBegin = async ({ username, domain }) => {
308313
const data = {
309314
targetUsername: username,
@@ -421,6 +426,12 @@ const resetPassword = async params => {
421426
: await checkExpiredSession(res, resetPassword, params);
422427
};
423428

429+
const sendRecoveryCode = async ({ newDeviceData, jwt }) => {
430+
await checkClient({ optionalSessionToken: jwt });
431+
const res = await client.generateCodeTwoFactorAuth(newDeviceData);
432+
return res;
433+
};
434+
424435
const setReadTracking = async enabled => {
425436
const res = await client.setReadTracking(enabled);
426437
return res.status === 200
@@ -458,6 +469,11 @@ const syncBegin = async () => {
458469
: await checkExpiredSession(res, syncBegin, null);
459470
};
460471

472+
const syncCancel = async () => {
473+
const res = await client.syncCancel();
474+
return res.status === 200 ? res : await checkExpiredSession(res, syncCancel);
475+
};
476+
461477
const syncDeny = async randomId => {
462478
const res = await client.syncDeny(randomId);
463479
return res.status === 200
@@ -536,6 +552,12 @@ const unsendEmail = async params => {
536552
: await checkExpiredSession(res, unsendEmail, params);
537553
};
538554

555+
const validateRecoveryCode = async ({ newDeviceData, jwt }) => {
556+
await checkClient({ optionalSessionToken: jwt });
557+
const res = await client.validateCodeTwoFactorAuth(newDeviceData);
558+
return res;
559+
};
560+
539561
module.exports = {
540562
acknowledgeEvents,
541563
canLogin,
@@ -557,6 +579,7 @@ module.exports = {
557579
linkAccept,
558580
linkAuth,
559581
linkBegin,
582+
linkCancel,
560583
linkDeny,
561584
linkStatus,
562585
login,
@@ -572,17 +595,20 @@ module.exports = {
572595
removeDevice,
573596
resendConfirmationEmail,
574597
resetPassword,
598+
sendRecoveryCode,
575599
setReadTracking,
576600
setReplyTo,
577601
setTwoFactorAuth,
578602
syncAccept,
579603
syncBegin,
604+
syncCancel,
580605
syncDeny,
581606
syncStatus,
582607
unlockDevice,
583608
updateDeviceType,
584609
updateName,
585610
updatePushToken,
586611
uploadAvatar,
587-
unsendEmail
612+
unsendEmail,
613+
validateRecoveryCode
588614
};

electron_app/src/ipc/client.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,10 @@ ipc.answerRenderer('client-link-auth', newDeviceData =>
7575
clientManager.linkAuth(newDeviceData)
7676
);
7777

78+
ipc.answerRenderer('client-link-cancel', newDeviceData =>
79+
clientManager.linkCancel(newDeviceData)
80+
);
81+
7882
ipc.answerRenderer('client-link-begin', ({ username, domain }) =>
7983
clientManager.linkBegin({ username, domain })
8084
);
@@ -121,6 +125,10 @@ ipc.answerRenderer('client-reset-password', params =>
121125
clientManager.resetPassword(params)
122126
);
123127

128+
ipc.answerRenderer('client-send-recovery-code', params =>
129+
clientManager.sendRecoveryCode(params)
130+
);
131+
124132
ipc.answerRenderer('client-set-read-tracking', enabled =>
125133
clientManager.setReadTracking(enabled)
126134
);
@@ -139,6 +147,8 @@ ipc.answerRenderer('client-sync-accept', randomId =>
139147

140148
ipc.answerRenderer('client-sync-begin', () => clientManager.syncBegin());
141149

150+
ipc.answerRenderer('client-sync-cancel', () => clientManager.syncCancel());
151+
142152
ipc.answerRenderer('client-sync-deny', randomId =>
143153
clientManager.syncDeny(randomId)
144154
);
@@ -166,3 +176,7 @@ ipc.answerRenderer('client-update-push-token', pushToken =>
166176
);
167177

168178
ipc.answerRenderer('client-upload-avatar', clientManager.uploadAvatar);
179+
180+
ipc.answerRenderer('client-validate-recovery-code', params =>
181+
clientManager.validateRecoveryCode(params)
182+
);

0 commit comments

Comments
 (0)