]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 21 Sep 2011 13:24:11 +0000 (13:24 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 21 Sep 2011 13:24:11 +0000 (13:24 +0000)
inc/commons/DAO/class.common.dao.utilisateur.php
inc/commons/Metier/class.common.utilisateur.php
inc/commons/class.common.core.php
inc/ws/Controlleur/class.ws.ajax.php
inc/ws/Controlleur/class.ws.users.tree.php

index 76d0b2b40b922966cfa34f3ba6589a455ed5bbf1..7dc2cdff4672ebf797aee4971d8a9d34ae2b40f3 100644 (file)
@@ -1,7 +1,8 @@
 <?php\r
+\r
 class commonDAOUtilisateur extends commonDAO {\r
-       protected function singleton($r, $utilisateur = null)\r
-       {\r
+\r
+       protected function singleton($r, $utilisateur = null) {\r
                if (!$r) {\r
                        return null;\r
                }\r
@@ -43,6 +44,9 @@ class commonDAOUtilisateur extends commonDAO {
                if (isset($r->rs)) {\r
                        $utilisateur->rs = $r->rs;\r
                }\r
+               if (isset($r->ws_domains)) {\r
+                       $utilisateur->ws_domains = explode(',', $r->ws_domains);\r
+               }\r
                if ($r->ws_settings != '') {\r
                        $utilisateur->ws_settings = unserialize($r->ws_settings);\r
                } else {\r
@@ -57,14 +61,13 @@ class commonDAOUtilisateur extends commonDAO {
                if (isset($r->ws_signatures)) {\r
                        $utilisateur->ws_signatures = $r->ws_signatures;\r
                }\r
-               if(isset($r->ws_admin)){\r
-                       $utilisateur->ws_admin=$r->ws_admin;\r
+               if (isset($r->ws_admin)) {\r
+                       $utilisateur->ws_admin = $r->ws_admin;\r
                }\r
                return $utilisateur;\r
        }\r
 \r
-       public function cree($utilisateur = null)\r
-       {\r
+       public function cree($utilisateur = null) {\r
                if (is_null($utilisateur)) {\r
                        $utilisateur = new commonUtilisateur();\r
                }\r
@@ -89,8 +92,7 @@ class commonDAOUtilisateur extends commonDAO {
                return $utilisateur;\r
        }\r
 \r
-       public function creeFromEntreprise($entreprise_id)\r
-       {\r
+       public function creeFromEntreprise($entreprise_id) {\r
                $utilisateur = $this->cree(null);\r
                $utilisateur->entreprise = $entreprise_id;\r
                $daoEntreprise = new commonDAOEntreprise($this->con);\r
@@ -102,14 +104,12 @@ class commonDAOUtilisateur extends commonDAO {
                return $utilisateur;\r
        }\r
 \r
-       public function selectById($utilisateur_id, $table = 'utilisateurs')\r
-       {\r
+       public function selectById($utilisateur_id, $table = 'utilisateurs') {\r
                $r = $this->con->select('SELECT * FROM `' . $table . '` WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\' LIMIT 1');\r
                return $this->singleton($r);\r
        }\r
 \r
-       public function selectByLoginPassword($login, $password)\r
-       {\r
+       public function selectByLoginPassword($login, $password) {\r
                $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
                $r = $this->con->select($sql);\r
                if ($r->count() == 0) {\r
@@ -119,8 +119,7 @@ class commonDAOUtilisateur extends commonDAO {
                return $utilisateur;\r
        }\r
 \r
-       public function selectByEmail($email)\r
-       {\r
+       public function selectByEmail($email) {\r
                $r = $this->con->select('SELECT * FROM utilisateurs WHERE email=\'' . $this->con->escape($email) . '\'');\r
                if ($r->count()) {\r
                        return $this->singleton($r);\r
@@ -128,32 +127,28 @@ class commonDAOUtilisateur extends commonDAO {
                return null;\r
        }\r
 \r
-       public function selectWSRevendeursFacturables()\r
-       {\r
+       public function selectWSRevendeursFacturables() {\r
                $r = $this->con->select('SELECT * FROM utilisateurs_entreprise WHERE ws_grade BETWEEN 3 AND 4 AND utilisateur_id IN(SELECT facturable_id FROM ws_users_tree) ORDER BY rs');\r
                return $this->factory($r);\r
        }\r
 \r
-       public function selectWSAdministrateursId()\r
-       {\r
+       public function selectWSAdministrateursId() {\r
                $r = $this->con->select('SELECT * FROM utilisateurs_entreprise WHERE ws_grade=5');\r
                $liste = $this->factory($r);\r
 \r
                $res = array();\r
-               foreach($liste as $u) {\r
+               foreach ($liste as $u) {\r
                        $res[] = $u->utilisateur_id;\r
                }\r
                return $res;\r
        }\r
 \r
-       protected function getNextId()\r
-       {\r
+       protected function getNextId() {\r
                $r = $this->con->select('SELECT MAX(utilisateur_id) AS utilisateur_id FROM utilisateurs');\r
                return $r->utilisateur_id + 1;\r
        }\r
 \r
-       protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
-       {\r
+       protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false) {\r
                $wherec = $where;\r
                $where = '(';\r
                if (!is_null($this->q)) {\r
@@ -167,31 +162,28 @@ class commonDAOUtilisateur extends commonDAO {
                }\r
                $where .= ' ' . $wherec . ' )';\r
                $where .= $this->limitToUserRights($limitedToUserRights);\r
-               $orderby = is_null($orderby)?'utilisateur_id':$orderby;\r
-               $sens = is_null($sens)?'DESC':$sens;\r
-               $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
+               $orderby = is_null($orderby) ? 'utilisateur_id' : $orderby;\r
+               $sens = is_null($sens) ? 'DESC' : $sens;\r
+               $limit = is_null($limit) ? '' : $this->con->limit($limit[0], $limit[1]);\r
 \r
                $sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
                return $sql;\r
        }\r
 \r
-       protected function limitToUserRights($user)\r
-       {\r
+       protected function limitToUserRights($user) {\r
                if ($user) {\r
                        return ' AND utilisateur_id IN (' . $user->ws_rights . ')';\r
                }\r
                return '';\r
        }\r
 \r
-       public function getListe($orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
-       {\r
+       public function getListe($orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false) {\r
                $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where, $limitedToUserRights);\r
                $r = $this->con->select($sql);\r
                return $this->factory($r);\r
        }\r
 \r
-       public function whereSearchByName($q, $search_entreprise = true)\r
-       {\r
+       public function whereSearchByName($q, $search_entreprise = true) {\r
                $where = 'nom LIKE \'' . $this->con->escape($q) . '%\' OR ';\r
                $where .= 'prenom LIKE \'' . $this->con->escape($q) . '%\' OR ';\r
                $where .= 'CONCAT(prenom,\' \',nom) LIKE \'' . $this->con->escape($q) . '%\' OR ';\r
@@ -203,8 +195,7 @@ class commonDAOUtilisateur extends commonDAO {
                return $where;\r
        }\r
 \r
-       public function sauve($data)\r
-       {\r
+       public function sauve($data) {\r
                $c = $this->con->openCursor('utilisateurs');\r
                $c->grade = $data['grade'];\r
                $c->nom = $data['nom'];\r
@@ -240,22 +231,19 @@ class commonDAOUtilisateur extends commonDAO {
                }\r
        }\r
 \r
-       public function sauveNotes($utilisateur_id, $notes)\r
-       {\r
+       public function sauveNotes($utilisateur_id, $notes) {\r
                $c = $this->con->openCursor('utilisateurs');\r
                $c->notes = $notes;\r
                return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
        }\r
 \r
-       public function sauveWSSettings($utilisateur_id, $datas)\r
-       {\r
+       public function sauveWSSettings($utilisateur_id, $datas) {\r
                $c = $this->con->openCursor('utilisateurs');\r
                $c->ws_settings = serialize($datas);\r
                return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
        }\r
 \r
-       public function sauvePreferences($utilisateur)\r
-       {\r
+       public function sauvePreferences($utilisateur) {\r
                if ($utilisateur) {\r
                        $c = $this->con->openCursor('utilisateurs');\r
                        $c->settings = serialize($utilisateur->settings);\r
@@ -264,38 +252,34 @@ class commonDAOUtilisateur extends commonDAO {
                return false;\r
        }\r
 \r
-       public function changeParametres($utilisateur_id, $langue, $login)\r
-       {\r
+       public function changeParametres($utilisateur_id, $langue, $login) {\r
                $c = $this->con->openCursor('utilisateurs');\r
                $c->lang = $langue;\r
                $c->login = $login;\r
                return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
        }\r
 \r
-       public function changeMotdepasse($utilisateur_id, $nouveau)\r
-       {\r
+       public function changeMotdepasse($utilisateur_id, $nouveau) {\r
                $c = $this->con->openCursor('utilisateurs');\r
                $c->password = $nouveau;\r
                return $c->update('WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
        }\r
 \r
-       public function supprime($utilisateur_id)\r
-       {\r
+       public function supprime($utilisateur_id) {\r
                $ok = $this->con->execute('DELETE FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\'');\r
                $core->refreshWSUsersTree();\r
                return $ok;\r
        }\r
 \r
-       public function count()\r
-       {\r
+       public function count() {\r
                $r = $this->con->select('SELECT COUNT(*) AS nb FROM utilisateurs WHERE ' . $this->makeWhereFromFiltres());\r
                return $r->nb;\r
        }\r
 \r
-       protected function makeWhereFromFiltres()\r
-       {\r
+       protected function makeWhereFromFiltres() {\r
                return '1=1';\r
        }\r
+\r
 }\r
 \r
 ?>
\ No newline at end of file
index b8df4e7ff320342d9c27b1159538e5dfbe97c4a6..da6f1fd60499886610e797dd52f7d49c5fb48b6c 100644 (file)
@@ -28,6 +28,7 @@ class commonUtilisateur extends cubeMetier {
        protected $ws_settings;\r
        protected $ws_rights;\r
        protected $ws_signatures;\r
+       protected $ws_domains;\r
 \r
        public function getEmail()\r
        {\r
index a313f92e50c55f00e23fa3c1a3cef5084784467d..1c0ebe9c88ec70e07959e96b02d53478c00c102e 100644 (file)
@@ -142,6 +142,7 @@ class commonCore extends cubeCore {
                $db->utilisateurs->ws_password('varchar', 40, false);\r
                $db->utilisateurs->ws_settings('text', 0, false);\r
                $db->utilisateurs->ws_rights('text', 0, false);\r
+               $db->utilisateurs->ws_domains('text', 0, false);\r
                // Clés\r
                $db->utilisateurs->primary('pk_utilisateurs', 'utilisateur_id');\r
                $db->utilisateurs->unique('unique_utilisateurs_email', 'email');\r
index 3ea7488302ad85548f11aaad9c29e4027700319e..9858110c4f34433ce7fae92b8324fdaa85788fc2 100644 (file)
@@ -575,7 +575,7 @@ class wsAjax extends cubeAjax {
                $daoUtilisateur = new commonDAOUtilisateur($core->con);\r
 \r
                $demande = $dao->selectById($args[1]);\r
-               \r
+\r
                if ($demande->administrateur != 0 && $demande->administrateur != $core->user->utilisateur_id) {\r
                        $res = __("Cette demande est actuellement en cours d'édition par un autre administrateur");\r
                } elseif ($demande->status > 1) {\r
@@ -592,15 +592,30 @@ class wsAjax extends cubeAjax {
                                $revendeur = $daoUtilisateur->selectById($demandeur->ws_admin, 'utilisateurs_entreprise');\r
                                $actions[__('Je confie la demande à') . ' ' . $revendeur->rs . ' (' . $revendeur->prenom . ' ' . $revendeur->nom . ')'] = $demandeur->ws_admin;\r
                        } else {\r
+                               $d = explode('@', $demandeur->email);\r
+                               $domain = mb_strtolower($d[1]);\r
+\r
                                $liste = $daoUtilisateur->selectWSRevendeursFacturables();\r
                                $revendeurs = array();\r
+                               $revendeurs_prio = array();\r
                                foreach ($liste as $revendeur) {\r
-                                       $revendeurs[$revendeur->rs . '(' . $revendeur->prenom . ' ' . $revendeur->nom . ')'] = $revendeur->utilisateur_id;\r
+                                       $k = $revendeur->rs . '(' . $revendeur->prenom . ' ' . $revendeur->nom . ')';\r
+                                       $v = $revendeur->utilisateur_id;\r
+                                       if (in_array($domain, $revendeur->ws_domains)) {\r
+                                               $revendeurs_prio[$k] = $v;\r
+                                       } else {\r
+                                               $revendeurs[$k] = $v;\r
+                                       }\r
                                }\r
 \r
                                $actions = array(__('Je vais me charger de cette demande') => $core->user->utilisateur_id);\r
                                $actions[' '] = array();\r
-                               $actions[__('Je confie la demande à') . ' : '] = $revendeurs;\r
+                               if (count($revendeurs_prio)) {\r
+                                       $actions[__('Je confie la demande à (liste suggérée) ') . ' : '] = $revendeurs_prio;\r
+                               }\r
+                               if (count($revendeurs)) {\r
+                                       $actions[__('Je confie la demande à  ') . ' : '] = $revendeurs;\r
+                               }\r
                        }\r
                        $res = form::combo('revendeur', $actions);\r
                }\r
index c7530f582372e5d48e194618c91514afe63bb4da..af642cc310e5f7378cfb88ed54a4474e6522cdc9 100644 (file)
@@ -23,6 +23,7 @@ class wsUsersTree {
                $this->admins = array();\r
                $this->grades = array();\r
                $this->entreprises = array();\r
+               $this->domains = array();\r
 \r
                $this->rights = array();\r
 \r
@@ -38,6 +39,8 @@ class wsUsersTree {
                                $this->admins[$r->utilisateur_id] = array();\r
                        }\r
                        $this->admins[$r->ws_admin][] = $r->utilisateur_id;\r
+                       $d = explode('@', $r->email);\r
+                       $this->domains[$r->utilisateur_id] = mb_strtolower($d[1]);\r
                }\r
 \r
                $this->facturables = $this->getFacturables();\r
@@ -100,14 +103,23 @@ class wsUsersTree {
                        }\r
                }\r
 \r
+               $adom = array();\r
+\r
                foreach ($this->admins as $admin => $list) {\r
                        $this->admins[$admin] = array_unique($list);\r
                        sort($this->admins[$admin]);\r
+\r
+                       $adom[$admin] = array();\r
+                       foreach ($list as $id) {\r
+                               $adom[$admin][] = $this->domains[$id];\r
+                       }\r
+                       $adom[$admin] = array_unique($adom[$admin]);\r
                }\r
 \r
                $c = $this->con->openCursor('utilisateurs');\r
                foreach ($this->admins as $admin => $list) {\r
                        $c->ws_rights = implode(',', $list);\r
+                       $c->ws_domains = implode(',', $adom[$admin]);\r
                        $c->update('WHERE utilisateur_id=\'' . $this->con->escape($admin) . '\'');\r
                }\r
        }\r