diff --git a/htdocs/user.class.php b/htdocs/user.class.php index 50f7c79f404..c9b9ffa33c7 100644 --- a/htdocs/user.class.php +++ b/htdocs/user.class.php @@ -60,7 +60,8 @@ class User var $datem; var $societe_id; var $webcal_login; - + var $datelastaccess; + var $error; var $userpref_limite_liste; var $all_permissions_are_loaded; /**< \private all_permissions_are_loaded */ @@ -95,79 +96,82 @@ class User function fetch($login='') { - $sql = "SELECT u.rowid, u.name, u.firstname, u.email, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note, u.fk_societe, u.fk_socpeople"; - $sql .= ", ".$this->db->pdate("u.datec")." as datec, ".$this->db->pdate("u.tms")." as datem"; - $sql .= " FROM ".MAIN_DB_PREFIX."user as u"; - if ($this->id) - { - $sql .= " WHERE u.rowid = $this->id"; - } - else - { - $sql .= " WHERE u.login = '$login'"; - } - - $result = $this->db->query($sql); - - if ($result) - { - if ($this->db->num_rows($result)) - { - $obj = $this->db->fetch_object($result); - $this->id = $obj->rowid; - $this->nom = stripslashes($obj->name); - $this->prenom = stripslashes($obj->firstname); - - $this->fullname = $this->prenom . ' ' . $this->nom; - $this->code = $obj->code; - $this->login = $obj->login; - $this->pass = $obj->pass; - $this->email = $obj->email; - $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->datec = $obj->datec; - $this->datem = $obj->datem; - - $this->webcal_login = $obj->webcal_login; - - $this->societe_id = $obj->fk_societe; - } - $this->db->free($result); - - } - else - { - dolibarr_print_error($this->db); - } - - if (isset($_SERVER['SCRIPT_URL'])) { - // \todo $_SERVER['SCRIPT_URL'] n'existe pas sous tout os/server web - $sql = "SELECT param, value FROM ".MAIN_DB_PREFIX."user_param"; - $sql .= " WHERE fk_user = ".$this->id; - $sql .= " AND page = '".$_SERVER['SCRIPT_URL']."'"; - - $result=$this->db->query($sql); - if ($result); - { - $num = $this->db->num_rows($result); - $i = 0; - $page_param_url = ''; - $this->page_param = array(); - while ($i < $num) - { - $obj = $this->db->fetch_object($result); - $this->page_param[$obj->param] = $obj->value; - $page_param_url .= $obj->param . "=".$obj->value."&"; - $i++; - } - $this->page_param_url = $page_param_url; - $this->db->free($result); - } - } - } + $sql = "SELECT u.rowid, u.name, u.firstname, u.email, u.code, u.admin, u.login, u.pass, u.webcal_login, u.note,"; + $sql.= " u.fk_societe, u.fk_socpeople,"; + $sql.= " ".$this->db->pdate("u.datec")." as datec, ".$this->db->pdate("u.tms")." as datem,"; + $sql.= " ".$this->db->pdate("u.datelastaccess")." as datel"; + $sql.= " FROM ".MAIN_DB_PREFIX."user as u"; + if ($this->id) + { + $sql .= " WHERE u.rowid = $this->id"; + } + else + { + $sql .= " WHERE u.login = '$login'"; + } + + $result = $this->db->query($sql); + + if ($result) + { + if ($this->db->num_rows($result)) + { + $obj = $this->db->fetch_object($result); + $this->id = $obj->rowid; + $this->nom = stripslashes($obj->name); + $this->prenom = stripslashes($obj->firstname); + + $this->fullname = $this->prenom . ' ' . $this->nom; + $this->code = $obj->code; + $this->login = $obj->login; + $this->pass = $obj->pass; + $this->email = $obj->email; + $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->datec = $obj->datec; + $this->datem = $obj->datem; + $this->datelastaccess = $obj->datel; + + $this->webcal_login = $obj->webcal_login; + + $this->societe_id = $obj->fk_societe; + } + $this->db->free($result); + + } + else + { + dolibarr_print_error($this->db); + } + + if (isset($_SERVER['SCRIPT_URL'])) { + // \todo $_SERVER['SCRIPT_URL'] n'existe pas sous tout os/server web + $sql = "SELECT param, value FROM ".MAIN_DB_PREFIX."user_param"; + $sql .= " WHERE fk_user = ".$this->id; + $sql .= " AND page = '".$_SERVER['SCRIPT_URL']."'"; + + $result=$this->db->query($sql); + if ($result); + { + $num = $this->db->num_rows($result); + $i = 0; + $page_param_url = ''; + $this->page_param = array(); + while ($i < $num) + { + $obj = $this->db->fetch_object($result); + $this->page_param[$obj->param] = $obj->value; + $page_param_url .= $obj->param . "=".$obj->value."&"; + $i++; + } + $this->page_param_url = $page_param_url; + $this->db->free($result); + } + } + } /** * \brief Ajoute un droit a l'utilisateur diff --git a/mysql/migration/1.1.0-2.0.0.sql b/mysql/migration/1.1.0-2.0.0.sql index 08abb5284fd..ae1c5fa93b3 100644 --- a/mysql/migration/1.1.0-2.0.0.sql +++ b/mysql/migration/1.1.0-2.0.0.sql @@ -219,6 +219,7 @@ alter table llx_boxes add box_order smallint default 0 NOT NULL; alter table llx_user drop column module_comm; alter table llx_user drop column module_compta; +alter table llx_user add datelastaccess datetime; alter table llx_user_rights add rowid integer AUTO_INCREMENT PRIMARY KEY; diff --git a/mysql/tables/llx_user.sql b/mysql/tables/llx_user.sql index 9aca4420cd0..19b48f01216 100644 --- a/mysql/tables/llx_user.sql +++ b/mysql/tables/llx_user.sql @@ -22,22 +22,23 @@ create table llx_user ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - datec datetime, - tms timestamp, - login varchar(8), - pass varchar(32), - name varchar(50), - firstname varchar(50), - code varchar(4), - email varchar(255), - admin smallint DEFAULT 0, - webcal_login varchar(25), - module_comm smallint DEFAULT 1, - module_compta smallint DEFAULT 1, - fk_societe integer DEFAULT 0, - fk_socpeople integer DEFAULT 0, - note text, - + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime, + tms timestamp, + login varchar(8), + pass varchar(32), + name varchar(50), + firstname varchar(50), + code varchar(4), + email varchar(255), + admin smallint DEFAULT 0, + webcal_login varchar(25), + module_comm smallint DEFAULT 1, + module_compta smallint DEFAULT 1, + fk_societe integer DEFAULT 0, + fk_socpeople integer DEFAULT 0, + note text, + datelastaccess datetime, + UNIQUE INDEX(login) )type=innodb;