]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 19 Jan 2011 10:30:17 +0000 (10:30 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 19 Jan 2011 10:30:17 +0000 (10:30 +0000)
inc/commons/DAO/class.common.dao.client.php
inc/commons/DAO/class.common.dao.entreprise.php
inc/commons/DAO/class.common.dao.utilisateur.php
inc/commons/Metier/class.common.utilisateur.php
inc/commons/class.common.url.php
inc/ws/Controlleur/class.ws.url.php
inc/ws/DAO/class.ws.dao.book.php

index 63df074ade3ca0e0ddfb8e68f52d1e35e04e2915..a0f948ba321b73e6bb4918bab4ddf4f365545257 100644 (file)
@@ -35,9 +35,9 @@ class commonDAOClient extends commonDAOUtilisateur {
                return $this->singleton($r);\r
        }\r
 \r
-       public function getListe($orderby = null, $sens = null, $limit = null, $where = null)\r
+       public function getListe($orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
        {\r
-               $sql = $this->getQueryList('clients', $orderby, $sens, $limit, $where);\r
+               $sql = $this->getQueryList('clients', $orderby, $sens, $limit, $where,$limitedToUserRights);\r
                $r = $this->con->select($sql);\r
                return $this->factory($r);\r
        }\r
index 327953269536e7bbb23183f29fb73ae602223981..9fdc46db8015993fb866baa8529b18b8e2115dc4 100644 (file)
@@ -59,7 +59,7 @@ class commonDAOEntreprise extends commonDAO {
                return $res;\r
        }\r
 \r
-       public function getListe($orderby = null, $sens = null, $limit = null)\r
+       public function getListe($orderby = null, $sens = null, $limit = null, $limitedToUserRights = false)\r
        {\r
                global $core;\r
                if (!is_null($this->q)) {\r
@@ -73,6 +73,8 @@ class commonDAOEntreprise extends commonDAO {
                        $where = $this->makeWhereFromFiltres();\r
                }\r
 \r
+               $where .= $this->limitToUserRights($limitedToUserRights);\r
+\r
                $orderby = is_null($orderby)?'entreprise_id':$orderby;\r
                $sens = is_null($sens)?'DESC':$sens;\r
                $limit = is_null($limit)?'':$this->con->limit($limit[0], $limit[1]);\r
@@ -106,23 +108,36 @@ class commonDAOEntreprise extends commonDAO {
                return $liste;\r
        }\r
 \r
+       protected function limitToUserRights($user)\r
+       {\r
+               if ($user) {\r
+                       return ' AND entreprise_id IN (SELECT entreprise FROM utilisateurs WHERE utilisateur_id IN(' . $user->ws_rights . ')) ';\r
+               }\r
+               return '';\r
+       }\r
+\r
        public function sauve($data)\r
        {\r
                global $core;\r
 \r
                $c = $this->con->openCursor('entreprises');\r
                $c->nom = $data['nom'];\r
-               $c->date_creation = time();\r
+\r
                $c->adresse = $data['adresse'];\r
                $c->code_postal = $data['code_postal'];\r
                $c->ville = $data['ville'];\r
                $c->pays = $data['pays'];\r
                $c->tva_intra = $data['tva_intra'];\r
                $c->adresse_facturation = $data['adresse_facturation'];\r
-               $c->ws_admin = $data['ws_admin'];\r
-               $c->ws_grade = $data['ws_grade'];\r
+               if (isset($data['ws_admin'])) {\r
+                       $c->ws_admin = $data['ws_admin'];\r
+               }\r
+               if (isset($data['ws_grade'])) {\r
+                       $c->ws_grade = $data['ws_grade'];\r
+               }\r
 \r
                if ($data['entreprise_id'] == 'new' || $data['entreprise_id'] == '') {\r
+                       $c->date_creation = TIME;\r
                        $entreprise_id = $c->entreprise_id = $this->getNextId();\r
                        $c->insert();\r
                } else {\r
@@ -143,9 +158,9 @@ class commonDAOEntreprise extends commonDAO {
                return true;\r
        }\r
 \r
-       public function count()\r
+       public function count($limitedToUserRights = false)\r
        {\r
-               $r = $this->con->select('SELECT COUNT(*) AS nb FROM entreprises_vue WHERE ' . $this->makeWhereFromFiltres());\r
+               $r = $this->con->select('SELECT COUNT(*) AS nb FROM entreprises_vue WHERE ' . $this->makeWhereFromFiltres() . ' ' . $this->limitToUserRights($limitedToUserRights));\r
                return $r->nb;\r
        }\r
 \r
index d81874454880bb906df66f17289f2984cb3adb7b..d565ada135a05baedf4f9db2f1eb484ae0b9aebc 100644 (file)
@@ -51,6 +51,9 @@ class commonDAOUtilisateur extends commonDAO {
                if (isset($r->ws_grade)) {\r
                        $utilisateur->ws_grade = $r->ws_grade;\r
                }\r
+               if (isset($r->ws_rights)) {\r
+                       $utilisateur->ws_rights = $r->ws_rights;\r
+               }\r
 \r
                return $utilisateur;\r
        }\r
@@ -123,10 +126,10 @@ class commonDAOUtilisateur extends commonDAO {
                return $r->utilisateur_id + 1;\r
        }\r
 \r
-       protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null)\r
+       protected function getQueryList($table, $orderby = null, $sens = null, $limit = null, $where = null, $limitedToUserRights = false)\r
        {\r
                $wherec = $where;\r
-               $where = '';\r
+               $where = '(';\r
                if (!is_null($this->q)) {\r
                        $where = '';\r
 \r
@@ -138,19 +141,28 @@ class commonDAOUtilisateur extends commonDAO {
                } else {\r
                        $where = $this->makeWhereFromFiltres();\r
                }\r
-               $where .= ' ' . $wherec;\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
 \r
                $sql = 'SELECT * FROM ' . $table . ' WHERE (' . $where . ') ORDER BY ' . $orderby . ' ' . $sens . ' ' . $limit;\r
+               fb($sql);\r
                return $sql;\r
        }\r
 \r
-       public function getListe($orderby = null, $sens = null, $limit = null, $where = null)\r
+       protected function limitToUserRights($user)\r
        {\r
-               $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where);\r
-               fb($sql);\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
+               $sql = $this->getQueryList('utilisateurs_entreprise', $orderby, $sens, $limit, $where, $limitedToUserRights);\r
                $r = $this->con->select($sql);\r
                return $this->factory($r);\r
        }\r
index c29fd620adb72cda3135b230d3ac53778dbae8ad..ec731e90bedbe9319f8e7ad00f1f11f803e5ad1e 100644 (file)
@@ -26,6 +26,7 @@ class commonUtilisateur extends cubeMetier {
        protected $ws_admin;\r
        protected $ws_grade;\r
        protected $ws_settings;\r
+       protected $ws_rights;\r
 \r
        public function getEmail()\r
        {\r
index d972b4d834650bfc5323b244a03bfeb0cce62a9c..9d61c3654f448ecd8a8f410e718f007199f9dd51 100644 (file)
@@ -183,21 +183,21 @@ class commonUrl {
                } elseif ($args[1] == 'book') {\r
                        $dao = new wsDAOBook($core->con);\r
                        $dao->setSearch($q, true);\r
-                       $books = $dao->getListe('date', 'DESC', 15);\r
+                       $books = $dao->getListe('date', 'DESC', 15, $core->user);\r
                        foreach($books as $book) {\r
                                $suggestions[] = $book->book_id . ' - ' . $book->nom;\r
                        }\r
                } elseif ($args[1] == 'wsuser') {\r
                        $dao = new commonDAOClient($core->con);\r
                        $dao->setSearch($q, true);\r
-                       $clients = $dao->getListe();\r
+                       $clients = $dao->getListe('utilisateur_id','ASC',null,null,' AND ws_grade>0',$core->user);\r
                        foreach($clients as $client) {\r
                                $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
                        }\r
                } elseif ($args[1] == 'wsadmin') {\r
                        $dao = new commonDAOUtilisateur($core->con);\r
                        $dao->setSearch($q, true);\r
-                       $clients = $dao->getListe('utilisateur_id', 'ASC', null, null, 'AND ws_grade>=2');\r
+                       $clients = $dao->getListe('utilisateur_id', 'ASC', null, null, 'AND ws_grade>2',$core->user);\r
                        foreach($clients as $client) {\r
                                $suggestions[] = $client->utilisateur_id . ' - ' . $client->rs . ' (' . $client->prenom . ' ' . $client->nom . ')';\r
                        }\r
index c82a79a2346d5906bdce7f21060e6866285f2c16..d55efa65ccb68cb8e34c0eca4d158e1b55b6792a 100644 (file)
@@ -41,7 +41,7 @@ class wsUrl {
                        $dao->setSearch($settings['search']);\r
                }\r
                $dao->setFiltres($settings['filtres']);\r
-               $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);\r
+               $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
 \r
                $res = '<table class="liste">';\r
                $res .= '<tr><th>' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . '</th>';\r
@@ -103,7 +103,7 @@ class wsUrl {
                if (!isset($settings['search']) || is_null($settings['search'])) {\r
                        $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
                        $res .= '<tr' . $odd . '><td colspan="12">';\r
-                       $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');\r
+                       $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
                        $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('publications'), false);\r
                        $res .= '</td></tr>';\r
                }\r
@@ -344,10 +344,16 @@ html{height:100%}' . "\n";
                return $res;\r
        }\r
 \r
-       public static function changeBookProprietaire()\r
+       public static function changeBookProprietaire($book_id)\r
        {\r
+               global $core;\r
                commonDroits::min(3);\r
-               $res = '<tr><td>' . __('Rechercher un utilisateur') . ' : </td><td>' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . '</td></tr>';\r
+\r
+               $dao=new wsDAOBook($core->con);\r
+               $book=$dao->selectById($book_id);\r
+\r
+               $res = '<tr><td>' . __('Propriétaire actuel') . ' : </td><td>'.$book->proprietaire.'</td></tr>';\r
+               $res .= '<tr><td>' . __('Rechercher un utilisateur') . ' : </td><td>' . form::field('book_proprietaire', 64, 1024) . form::hidden('proprietaire', '') . '</td></tr>';\r
                return $res;\r
        }\r
 \r
@@ -440,7 +446,7 @@ html{height:100%}' . "\n";
                        $dao->setSearch($settings['search']);\r
                }\r
                $dao->setFiltres($settings['filtres']);\r
-               $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit']);\r
+               $liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
 \r
                $res = '<table class="liste">';\r
                $res .= '<tr><th>' . commonUrl::orderby('#', 'entreprise_id', $settings, 'sort' . $change) . '</th>';\r
@@ -473,7 +479,7 @@ html{height:100%}' . "\n";
                if (!isset($settings['search']) || is_null($settings['search'])) {\r
                        $odd = cubeMath::isOdd($i)?' class="odd"':'';\r
                        $res .= '<tr' . $odd . '><td colspan="10">';\r
-                       $res .= commonPage::pager($settings['page'], $dao->count() , $settings['par_page'], 'page' . $change . '/%d');\r
+                       $res .= commonPage::pager($settings['page'], $dao->count($core->user) , $settings['par_page'], 'page' . $change . '/%d');\r
                        $res .= commonUrl::formParPage('parPage' . $change, $settings['par_page'], __('clients'));\r
                        $res .= '</td></tr>';\r
                }\r
@@ -501,25 +507,28 @@ html{height:100%}' . "\n";
                $res .= '<tr><td>' . __('Pays') . '</td><td>' . form::combo('pays', cubeCountry::getList(), $client->pays) . '</td></tr>';\r
                $res .= '<tr><td>' . __('Adresse de facturation') . '</td><td>' . form::textarea('adresse_facturation', 40, 3, $client->adresse_facturation) . '</td></tr>';\r
                $res .= '<tr><td>' . __('Numéro de TVA intracommunautaire') . '</td><td>' . form::field('tva_intra', 15, 13, $client->tva_intra) . '</td></tr>';\r
-               $res .= '<tr class="light"><th colspan="2" class="light"><strong>' . __('Fluidbook Workshop') . '</strong></th></tr>';\r
-               $res .= '<tr class="odd"><td>' . __('Grade') . '</td><td>' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . '</td></tr>';\r
-               if ($entreprise_id == 'new' || !$client->ws_admin) {\r
-                       $class = 'empty-field';\r
-                       $default_id = '';\r
-                       $default = __('Entrez le nom du revendeur ou de l\'administrateur');\r
-               } else {\r
-                       $class = '';\r
-                       $default_id = $client->ws_admin;\r
-                       $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');\r
-                       $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';\r
-               }\r
+               // Bloc Fluidbook Workshop\r
+               if (wsDroits::admin(false)) {\r
+                       $res .= '<tr class="light"><th colspan="2" class="light"><strong>' . __('Fluidbook Workshop') . '</strong></th></tr>';\r
+                       $res .= '<tr class="odd"><td>' . __('Grade') . '</td><td>' . form::combo('ws_grade', array_flip($core->ws_grades), $client->ws_grade) . '</td></tr>';\r
+                       if ($entreprise_id == 'new' || !$client->ws_admin) {\r
+                               $class = 'empty-field';\r
+                               $default_id = '';\r
+                               $default = __('Entrez le nom du revendeur ou de l\'administrateur');\r
+                       } else {\r
+                               $class = '';\r
+                               $default_id = $client->ws_admin;\r
+                               $wsa = $daoUtilisateur->selectById($client->ws_admin, 'utilisateurs_entreprise');\r
+                               $default = $wsa->utilisateur_id . ' - ' . $wsa->rs . ' (' . $wsa->prenom . ' ' . $wsa->nom . ')';\r
+                       }\r
 \r
-               $d = $dao->getWSDatas($entreprise_id);\r
+                       $d = $dao->getWSDatas($entreprise_id);\r
 \r
-               $res .= '<tr class="odd"><td>' . __('Revendeur / Administrateur') . '</td><td>' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . '</td></tr>';\r
-               if (!is_null($d)) {\r
-                       $res .= '<tr class="odd"><td>' . __('Entité facturable') . '</td><td>' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ')</td></tr>';\r
-                       $res .= '<tr class="odd"><td>' . __('Administrateur responsable') . '</td><td>' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ')</td></tr>';\r
+                       $res .= '<tr class="odd"><td>' . __('Revendeur / Administrateur') . '</td><td>' . form::field('ws_admin_nom', 60, 128, $default, $class) . form::hidden('ws_admin', $default_id) . '</td></tr>';\r
+                       if (!is_null($d)) {\r
+                               $res .= '<tr class="odd"><td>' . __('Entité facturable') . '</td><td>' . $d->facturable->prenom . ' ' . $d->facturable->nom . ' (' . $d->facturable->rs . ')</td></tr>';\r
+                               $res .= '<tr class="odd"><td>' . __('Administrateur responsable') . '</td><td>' . $d->administrateur->prenom . ' ' . $d->administrateur->nom . ' (' . $d->administrateur->rs . ')</td></tr>';\r
+                       }\r
                }\r
                if ($entreprise_id == 'new') {\r
                        $daoContact = new commonDAOClient($core->con);\r
@@ -594,18 +603,6 @@ html{height:100%}' . "\n";
                }\r
                return $res;\r
        }\r
-\r
-       public static function formNotes($utilisateur_id)\r
-       {\r
-               global $core;\r
-               commonDroits::min(5);\r
-               $dao = new commonDAOUtilisateur($core->con);\r
-               $utilisateur = $dao->selectById($utilisateur_id);\r
-               $res = '<tr><td colspan="2">' . form::hidden('utilisateur_id', $utilisateur_id) . '</td></tr>';\r
-               $res .= '<tr><td colspan="2">' . form::textarea('notes', 100, 30, $utilisateur->notes) . '</td></tr>';\r
-               $res .= '<tr><td colspan="2"></td></tr>';\r
-               return $res;\r
-       }\r
 }\r
 \r
 ?>
\ No newline at end of file
index 124a834286487edd88c9d3fd7a5641ab95527cd1..db543f498b314d4aa8cdc84c91c78caf77b593ed 100644 (file)
@@ -154,9 +154,11 @@ class wsDAOBook extends commonDAO {
                return $this->con->execute('DELETE FROM books WHERE book_id=\'' . $this->con->escape($book_id) . '\'');\r
        }\r
 \r
-       public function count()\r
+       public function count($limitedToUserRights = false)\r
        {\r
-               $r = $this->con->select('SELECT COUNT(*) AS nb FROM books WHERE ' . $this->makeWhereFromFiltres());\r
+               $where = '(' . $this->makeWhereFromFiltres() . ')';\r
+               $where .= $this->limitToUserRights($limitedToUserRights);\r
+               $r = $this->con->select('SELECT COUNT(*) AS nb FROM books WHERE ' . $where);\r
                return $r->nb;\r
        }\r
 \r
@@ -252,10 +254,10 @@ class wsDAOBook extends commonDAO {
                $this->con->execute('UPDATE book_pages SET book_page=book_page' . $decalage . ' WHERE book_page>' . $this->con->escape($after_page) . ' AND book_id=\'' . $this->con->escape($book_id) . '\'');\r
        }\r
 \r
-       public function getListe($orderby = null, $sens = null, $limit = null)\r
+       public function getListe($orderby = null, $sens = null, $limit = null, $limitedToUserRights = false)\r
        {\r
                if (!is_null($this->q)) {\r
-                       $where = '';\r
+                       $where = '(';\r
                        if ($this->search_id) {\r
                                $where .= ' book_id=\'' . $this->con->escape($this->q) . '\' OR ';\r
                        }\r
@@ -263,9 +265,12 @@ class wsDAOBook extends commonDAO {
                        $daoClient = new commonDAOClient($this->con);\r
                        $where .= ' OR proprietaire_id IN(' . $daoClient->querySearchByName($this->q) . ')';\r
                        $limit = null;\r
+                       $where .= ')';\r
                } else {\r
-                       $where = $this->makeWhereFromFiltres();\r
+                       $where = '(' . $this->makeWhereFromFiltres() . ')';\r
                }\r
+               $where .= $this->limitToUserRights($limitedToUserRights);\r
+\r
                $orderby = is_null($orderby)?'book_id':$orderby;\r
                $sens = is_null($sens)?'DESC':$sens;\r
                $limit = is_null($limit)?'':$this->con->limit($limit);\r
@@ -275,6 +280,14 @@ class wsDAOBook extends commonDAO {
                return $this->factory($r);\r
        }\r
 \r
+       protected function limitToUserRights($utilisateur)\r
+       {\r
+               if ($utilisateur) {\r
+                       return ' AND proprietaire IN (' . $utilisateur->ws_rights . ')';\r
+               }\r
+               return '';\r
+       }\r
+\r
        protected function makeWhereFromFiltres()\r
        {\r
                if (!is_null($this->filtres)) {\r