From 278dc324821c3a5edb0342700fa2bebeb12ea235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 10 Oct 2013 12:20:10 +0200 Subject: [PATCH] [*] BO: Add an option to autologout to the backoffice after 15 minutes --- .../themes/default/template/controllers/login/content.tpl | 8 ++------ classes/controller/AdminController.php | 8 ++++++++ controllers/admin/AdminLoginController.php | 4 ++++ js/login.js | 3 ++- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/admin-dev/themes/default/template/controllers/login/content.tpl b/admin-dev/themes/default/template/controllers/login/content.tpl index 598f03da3..bb1e65300 100755 --- a/admin-dev/themes/default/template/controllers/login/content.tpl +++ b/admin-dev/themes/default/template/controllers/login/content.tpl @@ -85,12 +85,8 @@
-
diff --git a/classes/controller/AdminController.php b/classes/controller/AdminController.php index 9363646c8..7d231519e 100644 --- a/classes/controller/AdminController.php +++ b/classes/controller/AdminController.php @@ -1998,6 +1998,14 @@ class AdminControllerCore extends Controller if (isset($_GET['logout'])) $this->context->employee->logout(); + + if (isset(Context::getContext()->cookie->last_activity)) + { + if ($this->context->cookie->last_activity + 900 < time()) + $this->context->employee->logout(); + else + $this->context->cookie->last_activity = time(); + } if ($this->controller_name != 'AdminLogin' && (!isset($this->context->employee) || !$this->context->employee->isLoggedBack())) { diff --git a/controllers/admin/AdminLoginController.php b/controllers/admin/AdminLoginController.php index 303c23944..5a14a80e6 100755 --- a/controllers/admin/AdminLoginController.php +++ b/controllers/admin/AdminLoginController.php @@ -180,6 +180,10 @@ class AdminLoginControllerCore extends AdminController $cookie->profile = $this->context->employee->id_profile; $cookie->passwd = $this->context->employee->passwd; $cookie->remote_addr = $this->context->employee->remote_addr; + + if (!Tools::getValue('stay_logged_in')) + $cookie->last_activity = time(); + $cookie->write(); // If there is a valid controller name submitted, redirect to it diff --git a/js/login.js b/js/login.js index 12fc3ffb1..2c0764ec1 100644 --- a/js/login.js +++ b/js/login.js @@ -94,7 +94,8 @@ function doAjaxLogin(redirect) { submitLogin: "1", passwd: $('#passwd').val(), email: $('#email').val(), - redirect: redirect + redirect: redirect, + stay_logged_in: $('#stay_logged_in:checked').val() }, success: function(jsonData) { if (jsonData.hasErrors)