From: vincent@cubedesigners.com Date: Mon, 17 Jan 2011 10:21:47 +0000 (+0000) Subject: (no commit message) X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=69c7f1122285753e50babaed5eb005214e2fc818;p=cubeextranet.git --- diff --git a/inc/commons/DAO/_common.php b/inc/commons/DAO/_common.php index 4427283b8..443da0785 100644 --- a/inc/commons/DAO/_common.php +++ b/inc/commons/DAO/_common.php @@ -1,4 +1,4 @@ \ No newline at end of file diff --git a/inc/commons/DAO/class.common.dao.utilisateur.php b/inc/commons/DAO/class.common.dao.utilisateur.php new file mode 100644 index 000000000..e80103347 --- /dev/null +++ b/inc/commons/DAO/class.common.dao.utilisateur.php @@ -0,0 +1,265 @@ +grade == 0) { + $utilisateur = new extranetClient(); + if (isset($r->ca)) { + $utilisateur->ca = $r->ca; + } + if (isset($r->rs)) { + $utilisateur->rs = $r->rs; + } + } else { + $utilisateur = new extranetEquipier(); + $utilisateur->agence = $r->agence; + } + } + $utilisateur->utilisateur_id = $r->utilisateur_id; + $utilisateur->nom = $r->nom; + $utilisateur->prenom = $r->prenom; + $utilisateur->email = $r->email; + $utilisateur->password = $r->password; + $utilisateur->adresse = $r->adresse; + $utilisateur->code_postal = $r->code_postal; + $utilisateur->ville = $r->ville; + $utilisateur->pays = $r->pays; + $utilisateur->telephone = $r->telephone; + $utilisateur->mobile = $r->mobile; + $utilisateur->fax = $r->fax; + $utilisateur->date_creation = $r->date_creation; + $utilisateur->grade = $r->grade; + $utilisateur->lang = $r->lang; + $utilisateur->login = $r->login; + $utilisateur->settings = unserialize($r->settings); + $utilisateur->connected = false; + $utilisateur->notes = $r->notes; + $utilisateur->entreprise = $r->entreprise; + $utilisateur->collegues = array(); + if (isset($r->rs)) { + $utilisateur->rs = $r->rs; + } + if ($r->ws_settings != '') { + $utilisateur->ws_settings = unserialize($r->ws_settings); + } else { + $utilisateur->ws_settings = array('resolution' => 150, 'method' => 0, 'quality' => 85, 'objects' => 1800); + } + if (isset($r->ws_grade)) { + $utilisateur->ws_grade = $r->ws_grade; + } + + return $utilisateur; + } + + public function cree($utilisateur = null) + { + if (is_null($utilisateur)) { + $utilisateur = new extranetUtilisateur(); + } + $utilisateur->utilisateur_id = 'new'; + $utilisateur->nom = ''; + $utilisateur->prenom = ''; + $utilisateur->email = ''; + $utilisateur->password = crypt::createPassword(); + $utilisateur->adresse = ''; + $utilisateur->code_postal = ''; + $utilisateur->ville = ''; + $utilisateur->telephone = '+33'; + $utilisateur->mobile = '+33'; + $utilisateur->fax = '+33'; + $utilisateur->date_creation = time(); + $utilisateur->pays = 'FR'; + $utilisateur->lang = 'fr'; + $utilisateur->settings = array(); + $utilisateur->notes = ''; + $utilisateur->entreprise = 0; + $utilisateur->ws_settings = array('resolution' => 150, 'method' => 0, 'quality' => 85, 'objects' => 1800); + return $utilisateur; + } + + public function creeFromEntreprise($entreprise_id) + { + $utilisateur = $this->cree(null); + $utilisateur->entreprise = $entreprise_id; + $daoEntreprise = new extranetDAOEntreprise($this->con); + $entreprise = $daoEntreprise->selectById($entreprise_id); + $utilisateur->adresse = $entreprise->adresse; + $utilisateur->code_postal = $entreprise->code_postal; + $utilisateur->ville = $entreprise->ville; + $utilisateur->pays = $entreprise->pays; + return $utilisateur; + } + + public function selectById($utilisateur_id, $table = 'utilisateurs') + { + $r = $this->con->select('SELECT * FROM `' . $table . '` WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\' LIMIT 1'); + return $this->singleton($r); + } + + public function selectByLoginPassword($login, $password) + { + $sql = 'SELECT * FROM utilisateurs_entreprise WHERE (email=\'' . $this->con->escape($login) . '\' OR login=\'' . $this->con->escape($login) . '\') AND (password=\'' . $this->con->escape($password) . '\' OR ws_password=\'' . $this->con->escape($password) . '\') LIMIT 1'; + $r = $this->con->select($sql); + if ($r->count() == 0) { + return false; + } + $utilisateur = $this->singleton($r); + return $utilisateur; + } + + public function selectByEmail($email) + { + $r = $this->con->select('SELECT * FROM utilisateurs WHERE email=\'' . $this->con->escape($email) . '\''); + return $this->singleton($r); + } + + protected function getNextId() + { + $r = $this->con->select('SELECT MAX(utilisateur_id) AS utilisateur_id FROM utilisateurs'); + return $r->utilisateur_id + 1; + } + + protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null) + { + $wherec = $where; + $where = ''; + if (!is_null($this->q)) { + $where = ''; + + if ($this->search_id) { + $where .= 'utilisateur_id=\'' . $this->con->escape($this->q) . '\' OR '; + } + $where .= $this->whereSearchByName($this->q); + $limit = null; + } else { + $where = $this->makeWhereFromFiltres(); + } + $where .= ' ' . $wherec; + $orderby = is_null($orderby)?'utilisateur_id':$orderby; + $sens = is_null($sens)?'DESC':$sens; + $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]); + + $sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit; + return $sql; + } + + public function getListe($orderby = null, $sens = null, $limit = null, $where = null) + { + $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where); + fb($sql); + $r = $this->con->select($sql); + return $this->factory($r); + } + + public function whereSearchByName($q, $search_entreprise = true) + { + $where = 'nom LIKE \'' . $this->con->escape($q) . '%\' OR '; + $where .= 'prenom LIKE \'' . $this->con->escape($q) . '%\' OR '; + $where .= 'CONCAT(prenom,\' \',nom) LIKE \'' . $this->con->escape($q) . '%\' OR '; + $where .= 'CONCAT(nom,\' \',prenom) LIKE \'' . $this->con->escape($q) . '%\' OR '; + if ($search_entreprise) { + $where .= 'entreprise IN(SELECT entreprise_id FROM entreprises WHERE nom LIKE \'%' . $this->con->escape($q) . '%\') OR '; + } + $where .= 'email LIKE \'%' . $this->con->escape($q) . '%\''; + return $where; + } + + public function sauve($data) + { + $c = $this->con->openCursor('utilisateurs'); + $c->grade = $data['grade']; + $c->nom = $data['nom']; + $c->prenom = $data['prenom']; + $c->email = $data['email']; + $c->password = $data['password']; + $c->adresse = $data['adresse']; + $c->code_postal = $data['code_postal']; + $c->ville = $data['ville']; + $c->pays = $data['pays']; + $c->telephone = $data['telephone']; + $c->mobile = $data['mobile']; + $c->fax = $data['fax']; + $c->lang = $data['lang']; + $c->entreprise = $data['entreprise']; + if ($data['grade'] == 0) { + } else { + $c->agence = $data['agence']; + } + // Nouveau client + if ($data['utilisateur_id'] == 'new') { + $c->utilisateur_id = $this->getNextId(); + $c->date_creation = time(); + $c->insert(); + $core->refreshWSUsersTree(); + return $this->selectById($c->utilisateur_id); + } else { + // Mise à jour d'un client + $c->update('WHERE utilisateur_id=\'' . $this->con->escape($data['utilisateur_id']) . '\''); + $core->refreshWSUsersTree(); + return $this->selectById($data['utilisateur_id']); + } + } + + public function sauveNotes($utilisateur_id, $notes) + { + $c = $this->con->openCursor('utilisateurs'); + $c->notes = $notes; + return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); + } + + public function sauveWSSettings($utilisateur_id, $datas) + { + $c = $this->con->openCursor('utilisateurs'); + $c->ws_settings = serialize($datas); + return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); + } + + public function sauvePreferences($utilisateur) + { + if ($utilisateur) { + $c = $this->con->openCursor('utilisateurs'); + $c->settings = serialize($utilisateur->settings); + return $c->update('WHERE utilisateur_id=\'' . $utilisateur->utilisateur_id . '\''); + } + return false; + } + + public function changeParametres($utilisateur_id, $langue, $login) + { + $c = $this->con->openCursor('utilisateurs'); + $c->lang = $langue; + $c->login = $login; + return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); + } + + public function changeMotdepasse($utilisateur_id, $nouveau) + { + $c = $this->con->openCursor('utilisateurs'); + $c->password = $nouveau; + return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); + } + + public function supprime($utilisateur_id) + { + $ok = $this->con->execute('DELETE FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); + $core->refreshWSUsersTree(); + return $ok; + } + + public function count() + { + $r = $this->con->select('SELECT COUNT(*) AS nb FROM utilisateurs WHERE ' . $this->makeWhereFromFiltres()); + return $r->nb; + } + + protected function makeWhereFromFiltres() + { + return '1=1'; + } +} + +?> \ No newline at end of file diff --git a/inc/extranet/DAO/class.extranet.dao.utilisateur.php b/inc/extranet/DAO/class.extranet.dao.utilisateur.php deleted file mode 100644 index a728463f5..000000000 --- a/inc/extranet/DAO/class.extranet.dao.utilisateur.php +++ /dev/null @@ -1,265 +0,0 @@ -grade == 0) { - $utilisateur = new extranetClient(); - if (isset($r->ca)) { - $utilisateur->ca = $r->ca; - } - if (isset($r->rs)) { - $utilisateur->rs = $r->rs; - } - } else { - $utilisateur = new extranetEquipier(); - $utilisateur->agence = $r->agence; - } - } - $utilisateur->utilisateur_id = $r->utilisateur_id; - $utilisateur->nom = $r->nom; - $utilisateur->prenom = $r->prenom; - $utilisateur->email = $r->email; - $utilisateur->password = $r->password; - $utilisateur->adresse = $r->adresse; - $utilisateur->code_postal = $r->code_postal; - $utilisateur->ville = $r->ville; - $utilisateur->pays = $r->pays; - $utilisateur->telephone = $r->telephone; - $utilisateur->mobile = $r->mobile; - $utilisateur->fax = $r->fax; - $utilisateur->date_creation = $r->date_creation; - $utilisateur->grade = $r->grade; - $utilisateur->lang = $r->lang; - $utilisateur->login = $r->login; - $utilisateur->settings = unserialize($r->settings); - $utilisateur->connected = false; - $utilisateur->notes = $r->notes; - $utilisateur->entreprise = $r->entreprise; - $utilisateur->collegues = array(); - if (isset($r->rs)) { - $utilisateur->rs = $r->rs; - } - if ($r->ws_settings != '') { - $utilisateur->ws_settings = unserialize($r->ws_settings); - } else { - $utilisateur->ws_settings = array('resolution' => 150, 'method' => 0, 'quality' => 85, 'objects' => 1800); - } - if (isset($r->ws_grade)) { - $utilisateur->ws_grade = $r->ws_grade; - } - - return $utilisateur; - } - - public function cree($utilisateur = null) - { - if (is_null($utilisateur)) { - $utilisateur = new extranetUtilisateur(); - } - $utilisateur->utilisateur_id = 'new'; - $utilisateur->nom = ''; - $utilisateur->prenom = ''; - $utilisateur->email = ''; - $utilisateur->password = crypt::createPassword(); - $utilisateur->adresse = ''; - $utilisateur->code_postal = ''; - $utilisateur->ville = ''; - $utilisateur->telephone = '+33'; - $utilisateur->mobile = '+33'; - $utilisateur->fax = '+33'; - $utilisateur->date_creation = time(); - $utilisateur->pays = 'FR'; - $utilisateur->lang = 'fr'; - $utilisateur->settings = array(); - $utilisateur->notes = ''; - $utilisateur->entreprise = 0; - $utilisateur->ws_settings = array('resolution' => 150, 'method' => 0, 'quality' => 85, 'objects' => 1800); - return $utilisateur; - } - - public function creeFromEntreprise($entreprise_id) - { - $utilisateur = $this->cree(null); - $utilisateur->entreprise = $entreprise_id; - $daoEntreprise = new extranetDAOEntreprise($this->con); - $entreprise = $daoEntreprise->selectById($entreprise_id); - $utilisateur->adresse = $entreprise->adresse; - $utilisateur->code_postal = $entreprise->code_postal; - $utilisateur->ville = $entreprise->ville; - $utilisateur->pays = $entreprise->pays; - return $utilisateur; - } - - public function selectById($utilisateur_id, $table = 'utilisateurs') - { - $r = $this->con->select('SELECT * FROM `' . $table . '` WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\' LIMIT 1'); - return $this->singleton($r); - } - - public function selectByLoginPassword($login, $password) - { - $sql = 'SELECT * FROM utilisateurs_entreprise WHERE (email=\'' . $this->con->escape($login) . '\' OR login=\'' . $this->con->escape($login) . '\') AND (password=\'' . $this->con->escape($password) . '\' OR ws_password=\'' . $this->con->escape($password) . '\') LIMIT 1'; - $r = $this->con->select($sql); - if ($r->count() == 0) { - return false; - } - $utilisateur = $this->singleton($r); - return $utilisateur; - } - - public function selectByEmail($email) - { - $r = $this->con->select('SELECT * FROM utilisateurs WHERE email=\'' . $this->con->escape($email) . '\''); - return $this->singleton($r); - } - - protected function getNextId() - { - $r = $this->con->select('SELECT MAX(utilisateur_id) AS utilisateur_id FROM utilisateurs'); - return $r->utilisateur_id + 1; - } - - protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null) - { - $wherec = $where; - $where = ''; - if (!is_null($this->q)) { - $where = ''; - - if ($this->search_id) { - $where .= 'utilisateur_id=\'' . $this->con->escape($this->q) . '\' OR '; - } - $where .= $this->whereSearchByName($this->q); - $limit = null; - } else { - $where = $this->makeWhereFromFiltres(); - } - $where .= ' ' . $wherec; - $orderby = is_null($orderby)?'utilisateur_id':$orderby; - $sens = is_null($sens)?'DESC':$sens; - $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]); - - $sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit; - return $sql; - } - - public function getListe($orderby = null, $sens = null, $limit = null, $where = null) - { - $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where); - fb($sql); - $r = $this->con->select($sql); - return $this->factory($r); - } - - public function whereSearchByName($q, $search_entreprise = true) - { - $where = 'nom LIKE \'' . $this->con->escape($q) . '%\' OR '; - $where .= 'prenom LIKE \'' . $this->con->escape($q) . '%\' OR '; - $where .= 'CONCAT(prenom,\' \',nom) LIKE \'' . $this->con->escape($q) . '%\' OR '; - $where .= 'CONCAT(nom,\' \',prenom) LIKE \'' . $this->con->escape($q) . '%\' OR '; - if ($search_entreprise) { - $where .= 'entreprise IN(SELECT entreprise_id FROM entreprises WHERE nom LIKE \'%' . $this->con->escape($q) . '%\') OR '; - } - $where .= 'email LIKE \'%' . $this->con->escape($q) . '%\''; - return $where; - } - - public function sauve($data) - { - $c = $this->con->openCursor('utilisateurs'); - $c->grade = $data['grade']; - $c->nom = $data['nom']; - $c->prenom = $data['prenom']; - $c->email = $data['email']; - $c->password = $data['password']; - $c->adresse = $data['adresse']; - $c->code_postal = $data['code_postal']; - $c->ville = $data['ville']; - $c->pays = $data['pays']; - $c->telephone = $data['telephone']; - $c->mobile = $data['mobile']; - $c->fax = $data['fax']; - $c->lang = $data['lang']; - $c->entreprise = $data['entreprise']; - if ($data['grade'] == 0) { - } else { - $c->agence = $data['agence']; - } - // Nouveau client - if ($data['utilisateur_id'] == 'new') { - $c->utilisateur_id = $this->getNextId(); - $c->date_creation = time(); - $c->insert(); - $core->refreshWSUsersTree(); - return $this->selectById($c->utilisateur_id); - } else { - // Mise à jour d'un client - $c->update('WHERE utilisateur_id=\'' . $this->con->escape($data['utilisateur_id']) . '\''); - $core->refreshWSUsersTree(); - return $this->selectById($data['utilisateur_id']); - } - } - - public function sauveNotes($utilisateur_id, $notes) - { - $c = $this->con->openCursor('utilisateurs'); - $c->notes = $notes; - return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); - } - - public function sauveWSSettings($utilisateur_id, $datas) - { - $c = $this->con->openCursor('utilisateurs'); - $c->ws_settings = serialize($datas); - return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); - } - - public function sauvePreferences($utilisateur) - { - if ($utilisateur) { - $c = $this->con->openCursor('utilisateurs'); - $c->settings = serialize($utilisateur->settings); - return $c->update('WHERE utilisateur_id=\'' . $utilisateur->utilisateur_id . '\''); - } - return false; - } - - public function changeParametres($utilisateur_id, $langue, $login) - { - $c = $this->con->openCursor('utilisateurs'); - $c->lang = $langue; - $c->login = $login; - return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); - } - - public function changeMotdepasse($utilisateur_id, $nouveau) - { - $c = $this->con->openCursor('utilisateurs'); - $c->password = $nouveau; - return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); - } - - public function supprime($utilisateur_id) - { - $ok = $this->con->execute('DELETE FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\''); - $core->refreshWSUsersTree(); - return $ok; - } - - public function count() - { - $r = $this->con->select('SELECT COUNT(*) AS nb FROM utilisateurs WHERE ' . $this->makeWhereFromFiltres()); - return $r->nb; - } - - protected function makeWhereFromFiltres() - { - return '1=1'; - } -} - -?> \ No newline at end of file diff --git a/inc/extranet/_common.php b/inc/extranet/_common.php index 8edc39f20..5eb1cbfeb 100644 --- a/inc/extranet/_common.php +++ b/inc/extranet/_common.php @@ -1,9 +1,10 @@ url->register('cleanDownload', 'cleanDownload', '^cleanDownload$', array('extranetUrl', 'cleanDownload')); diff --git a/inc/ws/_common.php b/inc/ws/_common.php index 442d76bc5..f87e3052a 100644 --- a/inc/ws/_common.php +++ b/inc/ws/_common.php @@ -1,10 +1,10 @@ url->register('flash', 'flash', '^flash(.*)$', array('wsFlash', 'in')); $core->url->register('services', 'services', '^services(.*)$', array('wsServices', 'in'));