feature: Logout wallet after 15 minutes of inactivity

This commit is contained in:
Gustavo Maximiliano Cortez 2014-07-30 20:12:22 -03:00
parent 010c13fa4f
commit f704826a5c
5 changed files with 24 additions and 3 deletions

View File

@ -21,6 +21,7 @@
"bitcore": "0.1.34",
"angular-moment": "~0.7.1",
"socket.io-client": ">=1.0.0",
"mousetrap": "1.4.6"
"mousetrap": "1.4.6",
"ng-idle": "*"
}
}

View File

@ -62,6 +62,7 @@
<script src="lib/angular-moment/angular-moment.js"></script>
<script src="lib/qrcode-generator/js/qrcode.js"></script>
<script src="lib/angular-qrcode/qrcode.js"></script>
<script src="lib/ng-idle/angular-idle.min.js"></script>
<script src="lib/angular-foundation/mm-foundation.min.js"></script>
<script src="lib/angular-foundation/mm-foundation-tpls.min.js"></script>
<script src="lib/peer.js"></script> <!-- TODO Change this on PeerJS version 0.3.9 -->

View File

@ -27,6 +27,7 @@ var copayApp = window.copayApp = angular.module('copayApp', [
'angularMoment',
'mm.foundation',
'monospaced.qrcode',
'ngIdle',
'copayApp.filters',
'copayApp.services',
'copayApp.controllers',
@ -40,6 +41,7 @@ copayApp.config(function($sceDelegateProvider) {
]);
});
angular.module('copayApp.filters', []);
angular.module('copayApp.services', []);
angular.module('copayApp.controllers', []);

View File

@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('SidebarController',
function($scope, $rootScope, $sce, $location, $http, notification, controllerUtils) {
function($scope, $rootScope, $sce, $location, $http, $idle, notification, controllerUtils) {
$scope.version = copay.version;
$scope.networkName = config.networkName;
@ -82,4 +82,18 @@ angular.module('copayApp.controllers').controller('SidebarController',
// Init socket handlers (with no wallet yet)
controllerUtils.setSocketHandlers();
if ($rootScope.wallet) {
$idle.watch();
$scope.$on('$idleStart', function(a) {
notification.warning('Timing', 'You were enought time in inactivity. This session will be closed in 10 seconds if continues without activity');
});
$scope.$on('$idleTimeout', function() {
$idle.unwatch();
$scope.signout();
notification.warning('Session closed', 'Session closed for a long time of inactivity');
});
}
});

View File

@ -65,10 +65,13 @@ angular
//Setting HTML5 Location Mode
angular
.module('copayApp')
.config(function($locationProvider) {
.config(function($locationProvider, $idleProvider) {
$locationProvider
.html5Mode(false)
.hashPrefix('!');
// IDLE timeout
$idleProvider.idleDuration(15 * 60); // in seconds
$idleProvider.warningDuration(10); // in seconds
})
.run(function($rootScope, $location) {
$rootScope.$on('$routeChangeStart', function(event, next, current) {