From 8db3b8b0b9aa5fd19ac26025d2a585be4d6f4fbc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 12 Aug 2006 19:07:14 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20Info=20"derniere=20connexion"=20n'=E9tai?= =?UTF-8?q?t=20pas=20correcte=20mais=20affich=E9=20en=20fait=20"connect=E9?= =?UTF-8?q?=20depuis".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/conf/conf.class.php | 2 +- htdocs/contrat/fiche.php | 2 +- htdocs/includes/modules/modUser.class.php | 6 ++-- htdocs/index.php | 4 +-- htdocs/langs/en_US/main.lang | 4 ++- htdocs/langs/fr_FR/main.lang | 4 ++- htdocs/lib/functions.inc.php | 2 +- htdocs/main.inc.php | 4 ++- htdocs/user.class.php | 38 ++++++++++++++++------- htdocs/user/fiche.php | 14 +++++++-- mysql/data/data.sql | 4 +-- mysql/migration/2.0.0-2.1.0.sql | 6 +++- mysql/tables/llx_user.sql | 5 ++- 13 files changed, 65 insertions(+), 30 deletions(-) diff --git a/htdocs/conf/conf.class.php b/htdocs/conf/conf.class.php index 91653e75915..df667c22c34 100644 --- a/htdocs/conf/conf.class.php +++ b/htdocs/conf/conf.class.php @@ -174,7 +174,7 @@ class Conf $this->commercial->enabled=defined("MAIN_MODULE_COMMERCIAL")?MAIN_MODULE_COMMERCIAL:0; $this->commercial->dir_output=DOL_DATA_ROOT."/rapport"; // Module taxes et charges sociales - $this->tax->enabled=1; + $this->tax->enabled=defined("MAIN_MODULE_TAX")?MAIN_MODULE_TAX:0; $this->tax->dir_output=DOL_DATA_ROOT."/taxes"; $this->tax->dir_images=DOL_DATA_ROOT."/taxes/images"; // Module comptaexpert diff --git a/htdocs/contrat/fiche.php b/htdocs/contrat/fiche.php index 3d20279b753..25f33580df1 100644 --- a/htdocs/contrat/fiche.php +++ b/htdocs/contrat/fiche.php @@ -892,7 +892,7 @@ else $html->select_produits('','p_idprod','',$conf->produit->limit_size,$contrat->societe->price_level); else $html->select_produits('','p_idprod','',$conf->produit->limit_size); - print '
'; + if (! $conf->use_ajax) print '
'; print ''; print ''; diff --git a/htdocs/includes/modules/modUser.class.php b/htdocs/includes/modules/modUser.class.php index fe0be7105c0..c8f7173c2f0 100644 --- a/htdocs/includes/modules/modUser.class.php +++ b/htdocs/includes/modules/modUser.class.php @@ -147,9 +147,9 @@ class modUser extends DolibarrModules $r++; $this->export_code[$r]=$this->id.'_'.$r; $this->export_label[$r]='Liste des utilisateurs Dolibarr et attributs'; - $this->export_fields_array[$r]=array('u.rowid'=>"Id",'u.name'=>"Lastname",'u.firstname'=>"Firstname",'u.code'=>"Code",'u.login'=>"Login",'u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",'u.admin'=>"Admin",'u.fk_socpeople'=>"IdContact",'u.note'=>"Note",'u.datelastaccess'=>'DateLastAccess'); - $this->export_entities_array[$r]=array('u.rowid'=>"user",'u.name'=>"user",'u.firstname'=>"user",'u.code'=>"user",'u.login'=>"user",'u.datec'=>"user",'u.tms'=>"user",'u.admin'=>"user",'u.fk_socpeople'=>"user",'u.note'=>"user",'u.datelastaccess'=>'user'); - $this->export_alias_array[$r]=array('u.rowid'=>"rowid",'u.name'=>"name",'u.firstname'=>"firstname",'u.code'=>"code",'u.login'=>"login",'u.datec'=>"datecreation",'u.tms'=>"datelastmodification",'u.admin'=>"admin",'u.fk_socpeople'=>"idcontact",'u.note'=>"note",'u.datelastaccess'=>'datelastaccess'); + $this->export_fields_array[$r]=array('u.rowid'=>"Id",'u.name'=>"Lastname",'u.firstname'=>"Firstname",'u.code'=>"Code",'u.login'=>"Login",'u.datec'=>"DateCreation",'u.tms'=>"DateLastModification",'u.admin'=>"Admin",'u.fk_socpeople'=>"IdContact",'u.note'=>"Note",'u.datelastlogin'=>'DateLastLogin','u.datepreviouslogin'=>'DatePreviousLogin'); + $this->export_entities_array[$r]=array('u.rowid'=>"user",'u.name'=>"user",'u.firstname'=>"user",'u.code'=>"user",'u.login'=>"user",'u.datec'=>"user",'u.tms'=>"user",'u.admin'=>"user",'u.fk_socpeople'=>"user",'u.note'=>"user",'u.datelastlogin'=>'user','u.datepreviouslogin'=>'user'); + $this->export_alias_array[$r]=array('u.rowid'=>"rowid",'u.name'=>"name",'u.firstname'=>"firstname",'u.code'=>"code",'u.login'=>"login",'u.datec'=>"datecreation",'u.tms'=>"datelastmodification",'u.admin'=>"admin",'u.fk_socpeople'=>"idcontact",'u.note'=>"note",'u.datelastlogin'=>'datelastlogin','u.datepreviouslogin'=>'datepreviouslogin'); $this->export_sql[$r]="select "; $i=0; foreach ($this->export_alias_array[$r] as $key => $value) diff --git a/htdocs/index.php b/htdocs/index.php index 99a99140875..3495732173c 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -85,8 +85,8 @@ print ''; $userstring=$user->fullname; print ''.$langs->trans("User").''.$userstring.''; print ''; -print ''.$langs->trans("LastAccess").''; -if ($user->datelastaccess) print dolibarr_print_date($user->datelastaccess,"%d %B %Y %H:%M:%S"); +print ''.$langs->trans("PreviousConnexion").''; +if ($user->datepreviouslogin) print dolibarr_print_date($user->datepreviouslogin,"%d %B %Y %H:%M:%S"); else print $langs->trans("Unknown"); print ''; print "\n"; diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index e3e393348dd..b1a6cae514a 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -26,7 +26,9 @@ ErrorWrongValueForParameterX=Wrong value for parameter %s ErrorNoRequestInError=No request in error SeeAbove=See above HomeArea=Home area -LastAccess=Last access +LastConnexion=Last connexion +PreviousConnexion=Previous connexion +ConnectedSince=Connected since RequestedUrl=Requested Url DatabaseTypeManager=Database type manager RequestLastAccess=Request for last database access diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index 46b55b2ae90..79073fc1736 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -26,7 +26,9 @@ ErrorWrongValueForParameterX=Valeur incorrecte pour le param ErrorNoRequestInError=Aucune requete en erreur SeeAbove=Voir ci-dessus HomeArea=Espace accueil -LastAccess=Dernière connexion +LastConnexion=Dernière connexion +PreviousConnexion=Connexion précédente +ConnectedSince=Connecté depuis RequestedUrl=Url sollicitée DatabaseTypeManager=Type gestionnaire de base de donnée RequestLastAccess=Requete dernier acces en base diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index 0b7cf6bfba5..261e1d09f25 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -412,7 +412,7 @@ function dolibarr_time_plus_duree($time,$duration_value,$duration_unit) /** \brief Formattage de la date en fonction de la langue $conf->langage \param time Date 'timestamp' ou format 'YYYY-MM-DD' ou 'YYYY-MM-DD HH:MM:SS' - \param format Format d'affichage de la date ("%d %b %Y", "%d/%m/%Y", ...) + \param format Format d'affichage de la date ("%d %b %Y", "%d/%m/%Y %h:%M:%s", ...) \return string Date formatée ou '' si time null */ function dolibarr_print_date($time,$format='') diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index c9d78abe710..7ea13bedc4a 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -466,8 +466,10 @@ function top_menu($head, $title="", $target="") print 'atarget?(' target="'.$menutop->atarget.'"'):''; print '>'; + $title=$langs->trans("Logout"); + $title.=' ('.$langs->trans("ConnectedSince").': '.dolibarr_print_date($user->datelastlogin,"%d/%m/%Y %H:%M:%S").')'; print ''; print ''; } diff --git a/htdocs/user.class.php b/htdocs/user.class.php index fe56f2de19a..f8ea10d1448 100644 --- a/htdocs/user.class.php +++ b/htdocs/user.class.php @@ -62,12 +62,15 @@ class User var $admin; var $login; var $pass; - var $lang; var $datec; var $datem; var $societe_id; var $webcal_login; - var $datelastaccess; + + var $datelastlogin; + var $datepreviouslogin; + var $statut; + var $lang; var $error; var $userpref_limite_liste; @@ -102,10 +105,14 @@ class User function fetch($login='') { // Recupere utilisateur - $sql = "SELECT u.rowid, u.name, u.firstname, u.email, u.office_phone, u.office_fax, u.user_mobile, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note,"; + $sql = "SELECT u.rowid, u.name, u.firstname, u.email, u.office_phone, u.office_fax, u.user_mobile,"; + $sql.= " u.code, u.admin, u.login, u.pass, u.webcal_login, u.note,"; $sql.= " u.fk_societe, u.fk_socpeople, u.ldap_sid,"; - $sql.= " ".$this->db->pdate("u.datec")." as datec, ".$this->db->pdate("u.tms")." as datem,"; - $sql.= " ".$this->db->pdate("u.datelastaccess")." as datel"; + $sql.= " u.statut, u.lang,"; + $sql.= " ".$this->db->pdate("u.datec")." as datec,"; + $sql.= " ".$this->db->pdate("u.tms")." as datem,"; + $sql.= " ".$this->db->pdate("u.datelastlogin")." as datel,"; + $sql.= " ".$this->db->pdate("u.datepreviouslogin")." as datep"; $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; if ($login) { @@ -138,14 +145,18 @@ class User $this->admin = $obj->admin; $this->contact_id = $obj->fk_socpeople; $this->note = stripslashes($obj->note); - $this->lang = 'fr_FR'; // \todo Gérer la langue par défaut d'un utilisateur Dolibarr - + $this->statut = $obj->statut; + $this->lang = $obj->lang; + $this->datec = $obj->datec; $this->datem = $obj->datem; - $this->datelastaccess = $obj->datel; + $this->datelastlogin = $obj->datel; + $this->datepreviouslogin = $obj->datep; $this->webcal_login = $obj->webcal_login; $this->societe_id = $obj->fk_societe; + + if (! $this->lang) $this->lang='fr_FR'; } $this->db->free($result); @@ -811,6 +822,7 @@ class User /** * \brief Mise à jour en base de la date de deniere connexion d'un utilisateur + * Fonction appelée lors d'une nouvelle connexion * \return <0 si echec, >=0 si ok */ function update_last_login_date() @@ -819,19 +831,21 @@ class User $now=time(); - $sql = "UPDATE ".MAIN_DB_PREFIX."user"; - $sql.= " SET datelastaccess = ".$this->db->idate($now).","; + $sql = "UPDATE ".MAIN_DB_PREFIX."user SET"; + $sql.= " datepreviouslogin = datelastlogin,"; + $sql.= " datelastlogin = ".$this->db->idate($now).","; $sql.= " tms = tms"; // La date de derniere modif doit changer sauf pour la mise a jour de date de derniere connexion $sql.= " WHERE rowid = ".$this->id; $resql = $this->db->query($sql); if ($resql) { - $this->datelastaccess=$now; + $this->datepreviouslogin=$this->datelastlogin; + $this->datelastlogin=$now; return 1; } else { - $this->error=$this->db->error(); + $this->error=$this->db->error().' sql='.$sql; return -1; } } diff --git a/htdocs/user/fiche.php b/htdocs/user/fiche.php index bd84b22fdc6..fc2f7c0695d 100644 --- a/htdocs/user/fiche.php +++ b/htdocs/user/fiche.php @@ -591,7 +591,7 @@ else { $fuser = new User($db, $_GET["id"]); $fuser->fetch(); - + // Connexion ldap if ($conf->ldap->enabled && $fuser->ldap_sid) { @@ -818,11 +818,19 @@ else print "\n"; print ''.$langs->trans("DateCreation").''; - print ''.dolibarr_print_date($fuser->datec).''; + print ''.dolibarr_print_date($fuser->datec,"%d/%m/%Y %H:%M:%S").''; print "\n"; print ''.$langs->trans("DateModification").''; - print ''.dolibarr_print_date($fuser->datem).''; + print ''.dolibarr_print_date($fuser->datem,"%d/%m/%Y %H:%M:%S").''; + print "\n"; + + print ''.$langs->trans("LastConnexion").''; + print ''.dolibarr_print_date($fuser->datelastlogin,"%d/%m/%Y %H:%M:%S").''; + print "\n"; + + print ''.$langs->trans("PreviousConnexion").''; + print ''.dolibarr_print_date($fuser->datepreviouslogin,"%d/%m/%Y %H:%M:%S").''; print "\n"; print "".''.$langs->trans("Note").''; diff --git a/mysql/data/data.sql b/mysql/data/data.sql index 4f21ae98bd9..bfcdc2f8d45 100644 --- a/mysql/data/data.sql +++ b/mysql/data/data.sql @@ -405,14 +405,14 @@ insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'62','Group insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'63','Société coopérative agricole'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'64','Société non commerciale d\'assurances'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'65','Société civile'); -insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'69','Autres personnes de droit privé inscrites au registre du commerce et sociétés'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'69','Autres personnes de droit privé inscrites au RCS'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'71','Administration de l\'état'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'72','Collectivité territoriale'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'73','Établissement public administratif'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'74','Autre personne morale de droit public administratif'); -insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'81','Organisme gérant un régime de protection social à adhésion obligatoire'); +insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'81','Organisme gérant régime de protection social à adhésion obligatoire'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'82','Organisme mutualiste'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'83','Comité d\'entreprise'); insert into llx_c_forme_juridique (fk_pays, code, libelle) values (1,'84','Organisme professionnel'); diff --git a/mysql/migration/2.0.0-2.1.0.sql b/mysql/migration/2.0.0-2.1.0.sql index 3157077fe33..7d3d61891f8 100644 --- a/mysql/migration/2.0.0-2.1.0.sql +++ b/mysql/migration/2.0.0-2.1.0.sql @@ -330,7 +330,11 @@ alter table llx_propal add column ref_client varchar(30) after ref; alter table llx_societe_adresse_livraison drop column fk_departement; -alter table llx_user add column ldap_sid varchar(255)DEFAULT NULL; +alter table llx_user change datelastaccess datelastlogin datetime; +alter table llx_user add column datepreviouslogin datetime after datelastlogin; +alter table llx_user add column ldap_sid varchar(255) DEFAULT NULL; +alter table llx_user add column statut tinyint DEFAULT 1; +alter table llx_user add column lang varchar(6); alter table llx_commande_fournisseur drop column fk_soc_contact; diff --git a/mysql/tables/llx_user.sql b/mysql/tables/llx_user.sql index 468b6adb341..ed5bd9c553c 100644 --- a/mysql/tables/llx_user.sql +++ b/mysql/tables/llx_user.sql @@ -41,9 +41,12 @@ create table llx_user fk_societe integer DEFAULT 0, fk_socpeople integer DEFAULT 0, note text, - datelastaccess datetime, + datelastlogin datetime, + datepreviouslogin datetime, egroupware_id integer, ldap_sid varchar(255) DEFAULT NULL, + statut tinyint DEFAULT 1, + lang varchar(6), UNIQUE INDEX(login) )type=innodb;