]> _ Git - cubeextranet.git/commitdiff
(no commit message)
authorvincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 26 Apr 2010 13:11:07 +0000 (13:11 +0000)
committervincent@cubedesigners.com <vincent@cubedesigners.com@f5622870-0f3c-0410-866d-9cb505b7a8ef>
Mon, 26 Apr 2010 13:11:07 +0000 (13:11 +0000)
importWs.php
inc/config.inc.php
inc/extranet/Controlleur/class.extranet.core.php
inc/extranet/DAO/class.extranet.dao.utilisateur.php
inc/ws/Controlleur/class.ws.flash.php
inc/ws/DAO/class.ws.dao.theme.php
inc/ws/Metier/class.ws.theme.php

index db233aa9b7dadb7b38233e8a9b66876ea1cb477b..831a9b3bd45a06169caf213e11f3614045cdca91 100644 (file)
@@ -6,11 +6,12 @@ cubePHP::neverStop();
 $utilisateurs = false;\r
 $documents = false;\r
 $books = false;\r
-$tables = array('books', 'book_pages', 'dashboard', 'devis', 'documents', 'document_pages', 'entreprises', 'factures', 'icones', 'langues', 'projets', 'signatures', 'taches', 'themes', 'timereport', 'utilisateurs');\r
+$tables = array('books', 'book_pages', 'dashboard', 'devis', 'documents', 'document_pages', 'entreprises', 'factures', 'icones', 'langues', 'projets', 'signatures', 'taches', 'themes', 'timereport', 'utilisateurs', 'themes_droits');\r
 foreach($tables as $t) {\r
        $core->con->execute('ALTER TABLE ' . $t . ' DISABLE KEYS');\r
 }\r
 \r
+$core->con->execute('TRUNCATE TABLE themes_droits');\r
 $core->con->execute('TRUNCATE TABLE themes');\r
 $core->con->execute('TRUNCATE TABLE icones');\r
 $core->con->execute('TRUNCATE TABLE signatures');\r
@@ -164,7 +165,7 @@ while ($r->fetch()) {
 }\r
 // Import des thèmes\r
 $r = $core->con->select('SELECT * FROM ws.theme');\r
-$theme=new wsTheme();\r
+$theme = new wsTheme();\r
 while ($r->fetch()) {\r
        $c = $core->con->openCursor('themes');\r
        $c->theme_id = $r->tid;\r
@@ -175,10 +176,20 @@ while ($r->fetch()) {
        $c->signature = $r->sigid;\r
        $parametres = new wsThemeParametres($theme);\r
        $parametres->fromRecord($r);\r
-       $parametres->iconSet=$r->iid;\r
+       $parametres->iconSet = $r->iid;\r
        $c->parametres = serialize($parametres);\r
        $c->insert();\r
 }\r
+$r = $core->con->select('SELECT * FROM ws.theme_user');\r
+$c = $core->con->openCursor('themes_droits');\r
+while ($r->fetch()) {\r
+       $c->utilisateur_id = $r->uid;\r
+       $c->theme_id = $r->tid;\r
+       try{\r
+       $c->insert();\r
+       }catch(Exception $e){\r
+       }\r
+}\r
 // Importe les langues\r
 $trad = array();\r
 $r = $core->con->select('SELECT * FROM ws.lang_trad,ws.lang_ord WHERE lang_trad.idlt=lang_ord.idlt');\r
index 2be73b44753964ee112a1ac605ca5590ef59f59e..883cca2ca1eecf625af9d144046c654a68bbc05b 100644 (file)
@@ -23,6 +23,7 @@ if (in_array($_SERVER['HTTP_HOST'], array_merge($localrel, $localabs))) {
                define('SITE_PATH', WEBROOT . '/');\r
        }\r
        define('CONVERTER_PATH', ROOT . '/tools/');\r
+       define('FTPROOT','/');\r
 } else {\r
        // Définition des variables dans l'environnement de production\r
        define('DB_HOST', 'localhost');\r
index d0ffe450dc9a887c4acff39fe2e1f6eec94362a1..0f025a9179f19cd234747be427f2a9acfde7df39 100644 (file)
@@ -152,7 +152,7 @@ class extranetCore extends cubeCore {
                $db->entreprises->site('varchar', 256, false);\r
                // Clés\r
                $db->entreprises->primary('pk_entreprises', 'entreprise_id');\r
-               $db->entreprises->index('index_entreprises_nom','BTREE', 'nom');\r
+               $db->entreprises->index('index_entreprises_nom', 'BTREE', 'nom');\r
                // .\r
                // Table projets\r
                $db->projets->projet_id('integer', 0, false);\r
@@ -284,6 +284,13 @@ class extranetCore extends cubeCore {
                $db->themes->reference('fk_themes_icones', 'icones', 'icones', 'icone_id');\r
                $db->themes->reference('fk_themes_signature', 'signature', 'signatures', 'signature_id');\r
                $db->themes->reference('fk_themes_proprietaires', 'proprietaire', 'utilisateurs', 'utilisateur_id');\r
+               // Table des droits des themes\r
+               $db->themes_droits->theme_id('integer', 0, false);\r
+               $db->themes_droits->utilisateur_id('integer', 0, false);\r
+               // Clés\r
+               $db->themes_droits->primary('pk_themes_droits', 'theme_id', 'utilisateur_id');\r
+               $db->themes_droits->reference('fk_themes_droits_theme_id', 'theme_id', 'themes', 'theme_id');\r
+               $db->themes_droits->reference('fk_themes_droits_utilisateur_id', 'utilisateur_id', 'utilisateurs', 'utilisateur_id');\r
                // Table des langues\r
                $db->langues->lang('varchar', 20, false);\r
                $db->langues->nom('varchar', 256, false);\r
@@ -445,6 +452,11 @@ class extranetCore extends cubeCore {
                         . 'GROUP BY t.categorie,p.annee_fin');\r
                $this->createView('books_vue', 'SELECT b.*,b.proprietaire AS proprietaire_id,c.rs AS proprietaire_nom,c.ws_admin,c.facturable_id,c.facturable '\r
                         . 'FROM books b, ws_clients c WHERE b.proprietaire=c.utilisateur_id');\r
+               $this->createView('themes_vue', 'SELECT t.*,GROUP_CONCAT(b.book_id ORDER BY b.book_id ASC) AS books, GROUP_CONCAT(DISTINCT d.utilisateur_id ORDER BY d.utilisateur_id ASC) AS utilisateurs '\r
+                        . 'FROM themes t '\r
+                        . 'LEFT JOIN themes_droits d ON t.theme_id=d.theme_id '\r
+                        . 'LEFT JOIN books b ON t.theme_id=b.theme '\r
+                        . 'GROUP BY b.theme, d.theme_id');\r
                // cubeDb::mysqlConvert($this->con);\r
                touch($cache);\r
        }\r
index 37dc303ea45c99459052e0f3740bc33d546f05ce..6ad83bcbc609b11960a59dfbd1024f0058049699 100644 (file)
@@ -40,6 +40,7 @@ class extranetDAOUtilisateur extends extranetDAO {
                $utilisateur->notes = $r->notes;\r
                $utilisateur->entreprise = $r->entreprise;\r
                $utilisateur->collegues = array();\r
+               $utilisateur->ws_grade = $r->ws_grade;\r
 \r
                return $utilisateur;\r
        }\r
@@ -66,6 +67,7 @@ class extranetDAOUtilisateur extends extranetDAO {
                $utilisateur->settings = array();\r
                $utilisateur->notes = '';\r
                $utilisateur->entreprise = 0;\r
+               $utilisateur->ws_grade=0;\r
                return $utilisateur;\r
        }\r
 \r
index 880d75462e8db5fb351751db7976c77ee5228e4c..e0fdfa587dadf89cbd591db2b12292ec4c47ff24 100644 (file)
@@ -141,18 +141,32 @@ class wsFlash extends cubeFlashGateway {
        {\r
                global $core;\r
 \r
-               $dao = new wsDAOBook($core->con);\r
-               $book = $dao->selectById($this->args['book_id']);\r
+               if (isset($this->args['book_id'])) {\r
+                       $dao = new wsDAOBook($core->con);\r
+                       $book = $dao->selectById($this->args['book_id']);\r
+               }\r
 \r
                $dao = new wsDAOTheme($core->con);\r
-               $themes = $dao->getAllThemes('ORDER BY theme_id DESC');\r
+               $themes = $dao->getAllThemes($core->user, 'ORDER BY theme_id DESC');\r
                foreach($themes as $theme) {\r
                        $t = $this->xml->addChild('theme');\r
                        $t->addAttribute('id', $theme->theme_id);\r
                        $t->addAttribute('nom', $theme->nom);\r
-                       if ($theme->theme_id == $book->theme) {\r
+                       if (isset($book) && $theme->theme_id == $book->theme) {\r
                                $t->addAttribute('selected', '1');\r
                        }\r
+                       if ($core->user->ws_grade == 4) {\r
+                               $right = 'w';\r
+                       } else if ($core->user->ws_grade == 2) {\r
+                               $right = 'r';\r
+                       } else if ($core->user->ws_grade == 3) {\r
+                               $right = ($core->user->utilisateur_id == $theme->proprietaire)?'w':'r';\r
+                       } else {\r
+                               $right = '-';\r
+                       }\r
+                       $t->addAttribute('right', $right);\r
+                       $t->addAttribute('books', count($theme->books));\r
+                       $t->addAttribute('utilisateurs', count($theme->utilisateurs));\r
                }\r
        }\r
 \r
index 357d34aa7b6f63bcef9ddee23572513b2466c265..dc4021e96768d2f253fafd0112fabdd2a2ce4c31 100644 (file)
@@ -7,12 +7,14 @@ class wsDAOTheme extends extranetDAO {
                $theme->nom = $r->nom;\r
                $theme->date = $r->date;\r
                $theme->proprietaire = $r->proprietaire;\r
+               $theme->utilisateurs = explode(',', $r->utilisateurs);\r
+               $theme->books = explode(',', $r->books);\r
                $theme->signature = $r->signature;\r
                $theme->icones = $r->icones;\r
                $p = unserialize($r->parametres);\r
                if (!$p) {\r
                        $p = new wsThemeParametres($theme);\r
-               }else{\r
+               } else {\r
                        $p->setParent($theme);\r
                }\r
                $theme->parametres = $p;\r
@@ -22,19 +24,28 @@ class wsDAOTheme extends extranetDAO {
 \r
        public function selectById($theme_id)\r
        {\r
-               $r = $this->con->select('SELECT * FROM themes WHERE theme_id=\'' . $this->con->escape($theme_id) . '\' LIMIT 1');\r
+               $r = $this->con->select('SELECT * FROM themes_vue WHERE theme_id=\'' . $this->con->escape($theme_id) . '\' LIMIT 1');\r
                return $this->singleton($r);\r
        }\r
 \r
        public function getThemeOfBook($book_id)\r
        {\r
-               $r = $this->con->select('SELECT * FROM themes WHERE theme_id IN (SELECT theme FROM books WHERE book_id=\'' . $this->con->escape($book_id) . '\') LIMIT 1');\r
+               $r = $this->con->select('SELECT * FROM themes_vue WHERE FIND_IN_SET(\'' . $this->con->escape($book_id) . '\'books) LIMIT 1');\r
                return $this->singleton($r);\r
        }\r
 \r
-       public function getAllThemes($order='')\r
+       public function getAllThemes($user, $order = '')\r
        {\r
-               $r = $this->con->select('SELECT * FROM themes '.$order);\r
+               fb($user);\r
+               if ($user->ws_grade >= 3) {\r
+                       $sql = 'SELECT * FROM themes_vue';\r
+               } else if ($user->ws_grade == 2) {\r
+                       $sql = 'SELECT * FROM themes_vue WHERE FIND_IN_SET(utilisateurs,\'' . $core->con->escape($user->utilisateur_id) . '\')';\r
+               } else {\r
+                       return array();\r
+               }\r
+\r
+               $r = $this->con->select($sql . ' ' . $order);\r
                return $this->factory($r);\r
        }\r
 }\r
index bdc04f57e140cf614e61d5f4231c5a3edb82b88b..71e8fda7398f51336319120cbf5ee079f78ac0d8 100644 (file)
@@ -14,6 +14,8 @@ class wsTheme extends cubeMetier {
        protected $nom;\r
        protected $date;\r
        protected $parametres;\r
+       protected $utilisateurs;\r
+       protected $books;\r
 }\r
 \r
 ?>
\ No newline at end of file