Skip to content

Commit 5467479

Browse files
sudhirvermadgolovin
authored andcommitted
'[ ] Remember me' checkbox should save its state #903
1 parent cb779d8 commit 5467479

4 files changed

Lines changed: 24 additions & 2 deletions

File tree

browser/pages/account/account.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<a class="forgot-password" id="usernameLink" href="" ng-click="acctCtrl.forgotPassword()">Forgot password?</a>
2424
</div>
2525
<div class="login-form-input-container form-group remember-me-group">
26-
<input class="remember-me" type="checkbox" ng-model = "acctCtrl.rememberMe"><span class="remember-me-label">Remember Me</span>
26+
<input class="remember-me" id="rememberMe" type="checkbox" ng-model = "acctCtrl.rememberMe" ng-click="acctCtrl.save($event)"><span class="remember-me-label">Remember Me</span>
2727
</div>
2828
</form>
2929
<div class="form-group has-error login-form-error-container">

browser/pages/account/controller.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import path from 'path';
44
import fs from 'fs-extra';
55
import mkdirp from 'mkdirp';
6+
import rimraf from 'rimraf';
67
import Util from '../../model/helpers/util';
78
import Logger from '../../services/logger';
89
import Platform from '../../services/platform';
@@ -22,7 +23,7 @@ class AccountController {
2223
this.authFailed = false;
2324
this.tandcNotSigned = false;
2425
this.isLoginBtnClicked = false;
25-
this.rememberMe = false;
26+
this.rememberMe = this.installerDataSvc.rememberMe;
2627
this.httpError = undefined;
2728
this.password = '';
2829
this.username = '';
@@ -62,6 +63,18 @@ class AccountController {
6263
this.tandcNotSigned = false;
6364
}
6465

66+
save(event) {
67+
let checkbox = document.getElementById('rememberMe');
68+
localStorage.setItem('rememberMe', checkbox.checked);
69+
if (event.target.checked === false) {
70+
let dataFilePath = path.join(Platform.localAppData(), 'settings.json');
71+
if(fs.existsSync(dataFilePath)) {
72+
TokenStore.deleteItem('login', this.installerDataSvc.username);
73+
rimraf.sync(dataFilePath);
74+
}
75+
}
76+
}
77+
6578
isInvalid(field) {
6679
return field.$invalid && (field.$dirty || field.$touched);
6780
}

browser/services/credentialManager.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ class TokenStore {
1212
return keytar.getPassword(key, login);
1313
}
1414

15+
static deleteItem(key, login) {
16+
return keytar.deletePassword(key, login);
17+
}
18+
1519
static getUserName() {
1620
let dataFilePath = path.join(Platform.localAppData(), 'settings.json');
1721
let username = '';
@@ -23,6 +27,10 @@ class TokenStore {
2327
}
2428
return username;
2529
}
30+
31+
static getStatus(){
32+
return JSON.parse(localStorage.getItem('rememberMe'));
33+
}
2634
}
2735

2836
export default TokenStore;

browser/services/data.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class InstallerDataService {
3030
this.packageConf = packageConf;
3131

3232
this.username = TokenStore.getUserName();
33+
this.rememberMe = TokenStore.getStatus();
3334
this.password = '';
3435
if (this.username) {
3536
let password = TokenStore.getItem('login', this.username);

0 commit comments

Comments
 (0)