From 47ea767c38dfba84501d75229b6cdcd501b24c51 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 25 Jan 2007 21:31:30 +0000 Subject: [PATCH] Clarification du droit "consulter tous les clients" --- htdocs/comm/propal.php | 7 ++++--- htdocs/compta/propal.php | 2 +- htdocs/fichinter/fiche.php | 7 +++---- htdocs/includes/modules/modCommercial.class.php | 4 ++-- htdocs/langs/en_US/admin.lang | 2 ++ htdocs/langs/fr_FR/admin.lang | 2 ++ htdocs/societe.php | 9 ++++++++- 7 files changed, 22 insertions(+), 11 deletions(-) diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php index 0ed13c45d2a..53da854b18d 100644 --- a/htdocs/comm/propal.php +++ b/htdocs/comm/propal.php @@ -73,7 +73,7 @@ if ($_GET['propalid'] > 0) dolibarr_print_error($db,$propal->error); exit; } - if (!$user->rights->commercial->client->voir && $user->societe_id > 0 && $propal->socid <> $user->societe_id) + if ($user->societe_id > 0 && $propal->socid <> $user->societe_id) accessforbidden(); } @@ -1741,7 +1741,8 @@ else $pageprev = $page - 1; $pagenext = $page + 1; - $sql = 'SELECT s.nom, s.idp, s.client, p.rowid as propalid, p.price, p.ref, p.fk_statut, '.$db->pdate('p.datep').' as dp,'.$db->pdate('p.fin_validite').' as dfv'; + $sql = 'SELECT s.nom, s.idp, s.client, '; + $sql.= 'p.rowid as propalid, p.price, p.ref, p.fk_statut, '.$db->pdate('p.datep').' as dp,'.$db->pdate('p.fin_validite').' as dfv'; if (!$user->rights->commercial->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; $sql.= ' FROM '.MAIN_DB_PREFIX.'societe as s, '.MAIN_DB_PREFIX.'propal as p'; if (!$user->rights->commercial->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; @@ -1790,7 +1791,7 @@ else $sql .= ' ORDER BY '.$sortfield.' '.$sortorder.', p.ref DESC'; $sql .= $db->plimit($limit + 1,$offset); $result=$db->query($sql); - +print "xxx".$sql; if ($result) { $num = $db->num_rows($result); diff --git a/htdocs/compta/propal.php b/htdocs/compta/propal.php index a154b668bbf..625dd95b31d 100644 --- a/htdocs/compta/propal.php +++ b/htdocs/compta/propal.php @@ -71,7 +71,7 @@ if ($_GET['propalid'] > 0) dolibarr_print_error($db,$propal->error); exit; } - if (!$user->rights->commercial->client->voir && $user->societe_id > 0 && $propal->socid <> $user->societe_id) + if ($user->societe_id > 0 && $propal->socid <> $user->societe_id) accessforbidden(); } diff --git a/htdocs/fichinter/fiche.php b/htdocs/fichinter/fiche.php index 3b2bb016415..47c7d6b303b 100644 --- a/htdocs/fichinter/fiche.php +++ b/htdocs/fichinter/fiche.php @@ -40,9 +40,6 @@ if (defined("FICHEINTER_ADDON") && is_readable(DOL_DOCUMENT_ROOT ."/includes/mod $langs->load("companies"); $langs->load("interventions"); -$user->getrights("ficheinter"); -if (!$user->rights->ficheinter->lire) accessforbidden(); - if ($_GET["socid"]) { @@ -51,6 +48,8 @@ if ($_GET["socid"]) } // Sécurité accés client +$user->getrights("ficheinter"); +if (!$user->rights->ficheinter->lire) accessforbidden(); if ($user->societe_id > 0) { $action = ''; @@ -65,7 +64,7 @@ if ($_GET["id"]) dolibarr_print_error($db); exit; } - if (!$user->rights->commercial->client->voir && $user->societe_id > 0 && $fichinter->socid <> $user->societe_id) accessforbidden(); + if ($user->societe_id > 0 && $fichinter->socid <> $user->societe_id) accessforbidden(); } diff --git a/htdocs/includes/modules/modCommercial.class.php b/htdocs/includes/modules/modCommercial.class.php index c3390ffe7b5..f4d93f2ae4b 100644 --- a/htdocs/includes/modules/modCommercial.class.php +++ b/htdocs/includes/modules/modCommercial.class.php @@ -90,7 +90,7 @@ class modCommercial extends DolibarrModules // 261 : Permission générale $this->rights[$r][0] = 261; - $this->rights[$r][1] = 'Informations commerciales'; + $this->rights[$r][1] = 'Consulter informations commerciales'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 1; $this->rights[$r][4] = 'main'; @@ -99,7 +99,7 @@ class modCommercial extends DolibarrModules // 262 : Resteindre l'accès des commerciaux $this->rights[$r][0] = 262; - $this->rights[$r][1] = 'Consulter tous les clients'; + $this->rights[$r][1] = 'Consulter tous les clients (effectifs pour utilisateurs internes uniquement)'; $this->rights[$r][2] = 'r'; $this->rights[$r][3] = 1; $this->rights[$r][4] = 'client'; diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index df7617c9690..4a2d8ed4120 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -277,6 +277,8 @@ Permission253=Modify other users password Permission254=Delete or disable other users Permission255=Create/modify his own user information Permission256=Modify his own password +Permission261=Read commercial informations +Permission262=Read all customers (Internal users only. Externals are always limited to themselves) Permission281=Read contacts Permission282=Create/modify contacts Permission283=Delete contacts diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 9bbade30ba0..2dbb4412f83 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -276,6 +276,8 @@ Permission253=Modifier mot de passe des autres utilisateurs Permission254=Supprimer ou désactiver les autres utilisateurs Permission255=Créer/modifier ses propres infos utilisateur Permission256=Modifier son propre mot de passe +Permission261=Consulter informations commerciales +Permission262=Consulter tous les clients (Utilisateurs internes uniquement. Externes restent limités à eux même) Permission281=Consulter les contacts Permission282=Créer/modifier les contacts Permission283=Supprimer les contacts diff --git a/htdocs/societe.php b/htdocs/societe.php index d94b877c015..78525fc9686 100644 --- a/htdocs/societe.php +++ b/htdocs/societe.php @@ -128,7 +128,14 @@ if (isset($_POST["button_removefilter_x"])) * Mode Liste * */ - +/* + REM: Regle sur droits "Voir tous les clients" + REM: Exemple, voir la page societe.php dans le mode liste. + Utilisateur interne socid=0 + Droits voir tous clients => Voit toute société + Utilisateur interne socid=0 + Pas de droits voir tous clients => Ne voit que les sociétés liées comme commercial + Utilisateur externe socid=x + Droits voir tous clients => Ne voit que lui meme + Utilisateur externe socid=x + Pas de droits voir tous clients => Ne voit que lui meme +*/ $title=$langs->trans("ListOfThirdParties"); $sql = "SELECT s.idp, s.nom, s.ville, ".$db->pdate("s.datec")." as datec, ".$db->pdate("s.datea")." as datea";