From 1420692e5342a5df9d0477b2af75a12cc9bf4aba Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 23 May 2009 15:35:02 +0000 Subject: [PATCH] Add: view last user and last entity in login page if cookie is enabled --- htdocs/lib/security.lib.php | 38 +++++++++++++++++++++---------------- htdocs/main.inc.php | 2 +- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/htdocs/lib/security.lib.php b/htdocs/lib/security.lib.php index c488a46a89a..fb41ad002de 100644 --- a/htdocs/lib/security.lib.php +++ b/htdocs/lib/security.lib.php @@ -128,11 +128,32 @@ function dol_loginfunction($langs,$conf,$mysoc) $demologin=$tab[0]; $demopassword=$tab[1]; } + + if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) + { + $lastuser = ''; + $lastentity = ''; + + if (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE)) + { + $entityCookieName = 'DOLENTITYID_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]); + if (isset($_COOKIE[$entityCookieName])) + { + include_once(DOL_DOCUMENT_ROOT . "/core/cookie.class.php"); + + $cryptkey = (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE_CRYPTKEY) ? $conf->global->MAIN_MULTICOMPANY_COOKIE_CRYPTKEY : '' ); + + $entityCookie = new DolCookie($cryptkey); + $cookieValue = $entityCookie->_getCookie($entityCookieName); + list($lastuser, $lastentity) = split('\|', $cookieValue); + } + } + } // Login field print '   '.$langs->trans("Login").'  '; print ''; // Show logo (search in order: small company logo, large company logo, theme logo, common logo) @@ -168,21 +189,6 @@ function dol_loginfunction($langs,$conf,$mysoc) if (! empty($conf->global->MAIN_MODULE_MULTICOMPANY)) { $html = new Form($db); - $lastentity = ''; - - if (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE)) - { - $entityCookieName = 'DOLENTITYID_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]); - if (isset($_COOKIE[$entityCookieName])) - { - include_once(DOL_DOCUMENT_ROOT . "/core/cookie.class.php"); - - $cryptkey = (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE_CRYPTKEY) ? $conf->global->MAIN_MULTICOMPANY_COOKIE_CRYPTKEY : '' ); - - $entityCookie = new DolCookie($cryptkey); - $lastentity = $entityCookie->_getCookie($entityCookieName); - } - } //TODO: creer class $entity = array('1'=>'company1','2'=>'company2'); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 2ed7cedca2c..535373c7571 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -445,7 +445,7 @@ if (! isset($_SESSION["dol_login"])) { include_once(DOL_DOCUMENT_ROOT."/core/cookie.class.php"); - $entity = $_POST["entity"]; + $entity = $_SESSION["dol_login"].'|'.$_POST["entity"]; $entityCookieName = 'DOLENTITYID_'.md5($_SERVER["SERVER_NAME"].$_SERVER["DOCUMENT_ROOT"]); // TTL : sera defini dans la page de config multicompany $ttl = (! empty($conf->global->MAIN_MULTICOMPANY_COOKIE_TTL) ? $conf->global->MAIN_MULTICOMPANY_COOKIE_TTL : time()+60*60*8 );