]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 21 Oct 2009 12:41:59 +0000 (12:41 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Wed, 21 Oct 2009 12:41:59 +0000 (12:41 +0000)
inc/extranet/Controlleur/class.extranet.core.php
inc/extranet/Controlleur/class.extranet.droits.php
inc/extranet/Controlleur/class.extranet.url.php
inc/extranet/DAO/class.extranet.dao.client.php
inc/extranet/DAO/class.extranet.dao.devis.php
inc/extranet/DAO/class.extranet.dao.facture.php
inc/extranet/DAO/class.extranet.dao.utilisateur.php
inc/extranet/Metier/class.extranet.utilisateur.php

index 5cb147f22aa06427a43da66a14140ba371116674..2d4ca71390735d8ce2a2b1d3c8ebd71290536a66 100644 (file)
@@ -69,6 +69,10 @@ class extranetCore extends cubeCore {
                // Utilisateur connecté à l'interface\r
                $dao = new extranetDAOUtilisateur($this->con);\r
                $this->user = $dao->selectByLoginPassword($_SESSION['user_email'], $_SESSION['user_password']);\r
+               if ($this->user->grade == 0) {\r
+                       $daoClient = new extranetDAOClient($this->con);\r
+                       $this->user->collegues = $daoClient->getColleguesList($this->user->utilisateur_id);\r
+               }\r
        }\r
 \r
        /**\r
index 59505d36ccf74da55c48f244ca5ffe94788e046c..d1cb554bab20ec4d24652dfe0d5f64cf7c76bbb6 100644 (file)
@@ -11,7 +11,7 @@ class extranetDroits {
                }\r
        }\r
 \r
-       protected static function verifDroits($proprietaire, $client, $action = 'r', $error = true)\r
+       protected static function verifDroits($proprietaire, $client, $action = 'r', $error = true, $collegues = false)\r
        {\r
                global $core;\r
 \r
@@ -25,7 +25,7 @@ class extranetDroits {
                                        return true;\r
                                }\r
                        }\r
-               } elseif ($core->user->grade == 0 && $action == 'r' && $client == $core->user->utilisateur_id) {\r
+               } elseif ($core->user->grade == 0 && $action == 'r' && ($client == $core->user->utilisateur_id || ($collegues && in_array($client, $core->user->collegues)))) {\r
                        return true;\r
                } elseif ($core->user->grade == 3 && $action == 'r') {\r
                        return true;\r
@@ -38,12 +38,12 @@ class extranetDroits {
 \r
        public static function devis($devis, $action , $error = true)\r
        {\r
-               return self::verifDroits($devis->createur_id, $devis->client_id, $action, $error);\r
+               return self::verifDroits($devis->createur_id, $devis->client_id, $action, $error, true);\r
        }\r
 \r
        public static function facture($facture, $action, $error = true)\r
        {\r
-               return self::verifDroits($facture->createur_id, $facture->client_id, $action, $error);\r
+               return self::verifDroits($facture->createur_id, $facture->client_id, $action, $error, true);\r
        }\r
 \r
        public static function projet($projet, $error)\r
@@ -54,7 +54,7 @@ class extranetDroits {
        public static function recherche($page)\r
        {\r
                global $core;\r
-               $droits = array('projets' => 1, 'factures' => 1, 'devis' => 1, 'clients' => 1, 'timereport' => 1, 'fichiers' => 0,'books'=>0);\r
+               $droits = array('projets' => 1, 'factures' => 1, 'devis' => 1, 'clients' => 1, 'timereport' => 1, 'fichiers' => 0, 'books' => 0);\r
                return (isset($droits[$page]) && $droits[$page] <= $core->user->grade);\r
        }\r
 \r
index 1ebe508d5aec894b57dbbebad4a8bd5baa72a008..840dfa5379e338695dcf85f119fc4f80c1f3c205 100644 (file)
@@ -1003,7 +1003,7 @@ class extranetUrl {
 \r
                $dao = new extranetDAODevis($core->con);\r
                $settings = $core->user->getSettings('devis');\r
-               $liste = $dao->getListeForClient($core->user->utilisateur_id, $settings['orderby'], $settings['sens']);\r
+               $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens']);\r
                $res = '<table class="liste">';\r
                $res .= '<th>' . self::orderby(__('Nom'), 'nom', $settings, 'sortDevis') . '</th>';\r
                $res .= '<th>' . self::orderby(__('Date'), 'date_creation', $settings, 'sortDevis') . '</th>';\r
@@ -1391,7 +1391,7 @@ class extranetUrl {
                cubePage::truePopup();\r
                $settings = $core->user->getSettings('factures');\r
                $dao = new extranetDAOFacture($core->con);\r
-               $liste = $dao->getListeForClient($core->user->utilisateur_id, $settings['orderby'], $settings['sens']);\r
+               $liste = $dao->getListeForEntreprise($core->user->entreprise, $settings['orderby'], $settings['sens'], true);\r
 \r
                $res = '<table class="liste">';\r
                $res .= '<tr><th>' . self::orderby('#', 'facture_id', $settings, 'sortFacture') . '</th>';\r
index eb8ea1a97dd730234d37f8488093a20ebd9ed006..eeb6c26a3df747f18eac4c6b9f4613b59ef148a8 100644 (file)
@@ -4,6 +4,7 @@ class extranetDAOClient extends extranetDAOUtilisateur {
        {\r
                $utilisateur = new extranetClient();\r
                $utilisateur->rs = $r->rs;\r
+               $utilisateur->collegues = array();\r
                return parent::singleton($r, $utilisateur);\r
        }\r
 \r
@@ -11,6 +12,7 @@ class extranetDAOClient extends extranetDAOUtilisateur {
        {\r
                $utilisateur = new extranetClient();\r
                $utilisateur->rs = '';\r
+               $utilisateur->collegues = array();\r
                return parent::cree($utilisateur);\r
        }\r
 \r
@@ -18,6 +20,7 @@ class extranetDAOClient extends extranetDAOUtilisateur {
        {\r
                $r = $this->con->select('SELECT * FROM clients WHERE utilisateur_id=' . $this->con->escape($client_id) . ' LIMIT 1');\r
                $res = $this->factory($r);\r
+\r
                if (!count($res)) {\r
                        return null;\r
                }\r
@@ -33,7 +36,6 @@ class extranetDAOClient extends extranetDAOUtilisateur {
        public function getListe($orderby = null, $sens = null, $limit = null)\r
        {\r
                $sql = $this->getQueryList('clients', $orderby, $sens, $limit);\r
-               fb($sql);\r
                $r = $this->con->select($sql);\r
                return $this->factory($r);\r
        }\r
@@ -46,10 +48,20 @@ class extranetDAOClient extends extranetDAOUtilisateur {
 \r
        public function getCollegues($utilisateur_id)\r
        {\r
-               $r = $this->con->select('SELECT * FROM clients WHERE entreprise IN (SELECT entreprise FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\')');\r
+               $r = $this->con->select('SELECT * FROM clients WHERE entreprise IN (SELECT entreprise FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\') AND utilisateur_id!=\'' . $this->con->escape($utilisateur_id) . '\'');\r
                return $this->factory($r);\r
        }\r
 \r
+       public function getColleguesList($utilisateur_id)\r
+       {\r
+               $r = $this->con->select('SELECT utilisateur_id FROM clients WHERE entreprise IN (SELECT entreprise FROM utilisateurs WHERE utilisateur_id=\'' . $this->con->escape($utilisateur_id) . '\') AND utilisateur_id!=\'' . $this->con->escape($utilisateur_id) . '\'');\r
+               $res = array();\r
+               while ($r->fetch()) {\r
+                       $res[] = $r->utilisateur_id;\r
+               }\r
+               return $res;\r
+       }\r
+\r
        public function querySearchByName($q)\r
        {\r
                return 'SELECT utilisateur_id FROM utilisateurs WHERE (' . $this->whereSearchByName($q) . ') AND grade=0';\r
index 52be320fc2e5712b85b59b0a771105435ac13401..9f7e8f07189c32f52c110f6b77a175d8c49ab0b6 100644 (file)
@@ -163,6 +163,13 @@ class extranetDAODevis extends extranetDAO {
                return $this->factory($r);\r
        }\r
 \r
+       public function getListeForEntreprise($entreprise_id, $orderby, $sens)\r
+       {\r
+               $sql = 'SELECT * FROM devis_vue WHERE client_id IN (SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $this->con->escape($entreprise_id) . '\') AND status>0 ORDER BY ' . $orderby . ' ' . $sens;\r
+               $r = $this->con->select($sql);\r
+               return $this->factory($r);\r
+       }\r
+\r
        /**\r
         * extranetDAODevis::sauve()\r
         *\r
index 39e4edf385bfb39c01bea914ac3ee06213c3c11f..7cb54dd6a782575b59620f14427466469b21a425 100644 (file)
@@ -117,6 +117,13 @@ class extranetDAOFacture extends extranetDAO {
                return $this->factory($r);\r
        }\r
 \r
+       public function getListeForEntreprise($entreprise_id, $orderby, $sens)\r
+       {\r
+               $sql = 'SELECT * FROM factures_vue WHERE client_id IN(SELECT utilisateur_id FROM utilisateurs WHERE entreprise=\'' . $this->con->escape($entreprise_id) . '\') AND status>0 ORDER BY ' . $orderby . ' ' . $sens;\r
+               $r = $this->con->select($sql);\r
+               return $this->factory($r);\r
+       }\r
+\r
        public function getImpayesOfClient($client_id)\r
        {\r
                $sql = 'SELECT * FROM factures_vue WHERE client_id=\'' . $this->con->escape($client_id) . '\' AND status=1 ORDER BY date_creation';\r
index 014abaceb8dc2596a22533a405a07b22f35481f0..13ba94abe26a56d6f67362c45d83029c7fb05917 100644 (file)
@@ -39,6 +39,7 @@ class extranetDAOUtilisateur extends extranetDAO {
                $utilisateur->connected = false;\r
                $utilisateur->notes = $r->notes;\r
                $utilisateur->entreprise = $r->entreprise;\r
+               $utilisateur->collegues = array();\r
 \r
                return $utilisateur;\r
        }\r
@@ -89,7 +90,7 @@ class extranetDAOUtilisateur extends extranetDAO {
 \r
        public function selectByLoginPassword($login, $password)\r
        {\r
-               $r = $this->con->select('SELECT * FROM utilisateurs 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('SELECT * FROM utilisateurs 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
                if (!$r->count()) {\r
                        return false;\r
                }\r
index 0e18da9a0702301e42c0784f2c8b3fccdf0600d2..628a1bd10dff839297504020228af0482a0742b3 100644 (file)
@@ -22,6 +22,7 @@ class extranetUtilisateur extends cubeMetier {
        protected $entreprise;\r
        protected $tva_intra;\r
        protected $rs;\r
+       protected $collegues;\r
        protected $ws_admin;\r
        protected $ws_grade;\r
 \r