diff --git a/htdocs/compta/resultat/bilan.php b/htdocs/compta/resultat/bilan.php
index 1dac2239caa..41cea751153 100644
--- a/htdocs/compta/resultat/bilan.php
+++ b/htdocs/compta/resultat/bilan.php
@@ -27,7 +27,7 @@ require("../../chargesociales.class.php");
*
*/
$user->getrights('compta');
-if (!$user->rights->compta->resultat)
+if (!$user->rights->compta->resultat->lire)
accessforbidden();
llxHeader();
diff --git a/htdocs/compta/resultat/caisse.php b/htdocs/compta/resultat/caisse.php
index c4cdb785181..c43d46cefcc 100644
--- a/htdocs/compta/resultat/caisse.php
+++ b/htdocs/compta/resultat/caisse.php
@@ -26,7 +26,7 @@ require("./pre.inc.php");
*/
$user->getrights('compta');
-if (!$user->rights->compta->resultat)
+if (!$user->rights->compta->resultat->lire)
accessforbidden();
llxHeader();
diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php
index 220dcb91b0f..89b87c052e5 100644
--- a/htdocs/compta/resultat/clientfourn.php
+++ b/htdocs/compta/resultat/clientfourn.php
@@ -28,7 +28,7 @@ require("../../chargesociales.class.php");
*
*/
$user->getrights('compta');
-if (!$user->rights->compta->resultat)
+if (!$user->rights->compta->resultat->lire)
accessforbidden();
llxHeader();
diff --git a/htdocs/compta/resultat/compteres.php b/htdocs/compta/resultat/compteres.php
index 8214078b161..1f56a588a8d 100644
--- a/htdocs/compta/resultat/compteres.php
+++ b/htdocs/compta/resultat/compteres.php
@@ -27,7 +27,7 @@ require("../../chargesociales.class.php");
*
*/
$user->getrights('compta');
-if (!$user->rights->compta->resultat)
+if (!$user->rights->compta->resultat->lire)
accessforbidden();
llxHeader();
diff --git a/htdocs/includes/menus/barre_top/default.php b/htdocs/includes/menus/barre_top/default.php
index a19bd891113..c9a327b0228 100644
--- a/htdocs/includes/menus/barre_top/default.php
+++ b/htdocs/includes/menus/barre_top/default.php
@@ -23,6 +23,7 @@
global $PHP_SELF;
+
$nbofentries=0;
if ($conf->commercial->enabled) $nbofentries++;
if ($conf->adherent->enabled) $nbofentries++;
@@ -45,7 +46,7 @@ else {
if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "commercial") { $class="menusel"; }
elseif (ereg("^".DOL_URL_ROOT."\/comm\/",$PHP_SELF)) { $class="menusel"; }
print '
';
- print 'Commercial';
+ print 'Commercial';
print ' | ';
}
@@ -55,7 +56,7 @@ else {
if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "adherent") { $class="menusel"; }
elseif (ereg("^".DOL_URL_ROOT."\/adherents\/",$PHP_SELF)) { $class="menusel"; }
print '';
- print 'Adhérents';
+ print 'Adhérents';
print ' | ';
}
@@ -65,7 +66,7 @@ else {
if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "compta") { $class="menusel"; }
elseif (ereg("^".DOL_URL_ROOT."\/compta\/",$PHP_SELF)) { $class="menusel"; }
print '';
- print 'Compta';
+ print 'Compta';
print ' | ';
}
@@ -79,7 +80,7 @@ else {
if ($conf->produit->enabled && $conf->service->enabled) { $chaine.="/"; }
if ($conf->service->enabled) { $chaine.="Services"; }
print '';
- print ''.$chaine.'';
+ print ''.$chaine.'';
print ' | ';
}
@@ -87,9 +88,10 @@ else {
{
$class="";
if ($_SESSION["topmenu"] && $_SESSION["topmenu"] == "webcalendar") { $class="menusel"; }
- elseif (ereg("^".DOL_URL_ROOT."\/webcalendar\/",$PHP_SELF)) { $class="menusel"; }
+ elseif (ereg("^".DOL_URL_ROOT."\/projet\/",$PHP_SELF) || ereg("^".DOL_URL_ROOT."\/webcalendar\/",$PHP_SELF)) { $class="menusel"; }
print '';
- print 'Calendrier';
+// print 'Calendrier';
+ print 'Calendrier';
print ' | ';
};
diff --git a/htdocs/includes/modules/modBanque.class.php b/htdocs/includes/modules/modBanque.class.php
index 9d8513a7cf8..baec8b45775 100644
--- a/htdocs/includes/modules/modBanque.class.php
+++ b/htdocs/includes/modules/modBanque.class.php
@@ -61,9 +61,10 @@ class modBanque extends DolibarrModules
* Permissions
*/
$sql = array(
- "insert into ".MAIN_DB_PREFIX."rights_def values (111,'Lire les comptes','banque','a',1);",
- "insert into ".MAIN_DB_PREFIX."rights_def values (112,'Modifier les comptes','banque','a',0);",
- "insert into ".MAIN_DB_PREFIX."rights_def values (113,'Configurer les comptes','banque','a',0);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (110,'Tous les droits sur les comptes bancaires','banque','a',0);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (111,'Lire les comptes','banque','r',1);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (112,'Créer modifier rapprocher écritures','banque','w',0);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (113,'Configurer les comptes (créer, gérer catégories)','banque','w',0);",
);
return $this->_init($sql);
diff --git a/htdocs/includes/modules/modComptabilite.class.php b/htdocs/includes/modules/modComptabilite.class.php
index 83e7ed02a2e..d73499d4e18 100644
--- a/htdocs/includes/modules/modComptabilite.class.php
+++ b/htdocs/includes/modules/modComptabilite.class.php
@@ -64,8 +64,12 @@ class modComptabilite extends DolibarrModules
* Permissions
*/
$sql = array(
- "insert into ".MAIN_DB_PREFIX."rights_def values (92,'Gestion charges','compta','a',1);",
- "insert into ".MAIN_DB_PREFIX."rights_def values (93,'Gestion resultat','compta','a',1);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (90,'Tous les droits sur la compta','compta','a',0);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (91,'Lire les charges','compta','r',1);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (92,'Créer modifier les charges','compta','w',0);",
+ "insert into ".MAIN_DB_PREFIX."rights_def values (93,'Supprimer les charges','compta','d',0);",
+
+ "insert into ".MAIN_DB_PREFIX."rights_def values (95,'Lire CA, bilans, résultats','compta','r',1);",
);
return $this->_init($sql);
diff --git a/htdocs/theme/eldy/eldy.css b/htdocs/theme/eldy/eldy.css
index ddaf1984deb..c0dc9688c78 100644
--- a/htdocs/theme/eldy/eldy.css
+++ b/htdocs/theme/eldy/eldy.css
@@ -63,21 +63,21 @@ border-right: 1px solid #000000;
border-bottom: 1px solid #000000;
}
td.menusel {
-border-left: 1px solid #FFFFFF;
+border-left: 1px solid #333344;
border-right: 1px solid #FFFFFF;
-border-top: 1px solid #FFFFFF;
+border-top: 1px solid #333344;
border-bottom: 1px solid #FFFFFF;
}
.menu {
background: #b3c5cc;
- font-size: 12px; font-weight: bold;
+ font-size: 12px;
color: #000000;
text-decoration: none;
}
.menusel
{
- background: #96B9C9;
+ background: #a8bdc0;
font-size: 12px; font-weight: bold;
color: #000000;
text-decoration: none;
@@ -259,7 +259,7 @@ font: helvetica, verdana, arial, sans-serif;
tr.box_titre {
background: #7699A9;
color: #334444;
-font: helvetica, verdana, arial, sans-serif;
+font: 12px helvetica, verdana, arial, sans-serif;
font-weight: bold;
border-left: 1px solid #FFFFFF;
border-right: 1px solid #FFFFFF;
@@ -270,12 +270,12 @@ white-space: nowrap;
tr.box_impair {
background: #e2ebed;
-font: helvetica, verdana, arial, sans-serif;
+font: 12px helvetica, verdana, arial, sans-serif;
}
tr.box_pair {
background: #c0d5dd;
-font: helvetica, verdana, arial, sans-serif;
+font: 12px helvetica, verdana, arial, sans-serif;
}
tr.fiche {
diff --git a/htdocs/user.class.php b/htdocs/user.class.php
index dbfb38709b3..040c1ff153a 100644
--- a/htdocs/user.class.php
+++ b/htdocs/user.class.php
@@ -49,15 +49,8 @@ class User
$this->compta = 1;
$this->limite_liste = 0;
- $this->rights->facture->lire = 0;
- $this->rights->facture->creer = 0;
- $this->rights->facture->modifier = 0;
- $this->rights->facture->supprimer = 0;
+ $this->permissions_are_loaded = 0;
- $this->rights->produit->lire = 0;
- $this->rights->produit->creer = 0;
- $this->rights->produit->modifier = 0;
- $this->rights->produit->supprimer = 0;
return 1;
}
/*
@@ -192,13 +185,15 @@ class User
*/
Function getrights($module='')
{
+ if ($this->permissions_are_loaded) {
+ // Si les permissions ont déja été chargé pour ce user, on quitte
+ // Cela évite de faire n fois le select quand la fonction est appelée plusieurs fois
+ // pour charger les droits de différents modules. On les charges tous la
+ // première fois, puis on ne fait plus rien.
+ return;
+ }
+
$sql = "SELECT fk_user, fk_id FROM ".MAIN_DB_PREFIX."user_rights WHERE fk_user= $this->id";
- /*
- if ($module)
- {
- $sql .= " AND module = '$module'";
- }
- */
if ($this->db->query($sql))
{
$rr=array();
@@ -339,12 +334,20 @@ class User
if ($module == 'compta' or $module == '')
{
+ if ($obj->fk_id == 91)
+ $this->rights->compta->charges->lire = 1;
+
if ($obj->fk_id == 92)
- $this->rights->compta->charges = 1;
+ $this->rights->compta->charges->creer = 1;
if ($obj->fk_id == 93)
- $this->rights->compta->resultat = 1;
+ $this->rights->compta->charges->supprimer = 1;
+
+ if ($obj->fk_id == 95)
+ $this->rights->compta->resultat->lire = 1;
+
}
+
if ($module == 'banque' or $module == '')
{
if ($obj->fk_id == 111)
@@ -359,7 +362,10 @@ class User
}
$i++;
}
- // $this->db->free();
+
+ $this->db->free();
+
+ $this->permissions_are_loaded=1;
}
else
{
@@ -452,7 +458,6 @@ class User
*/
Function delete()
{
-
if ($this->contact_id)
{
diff --git a/htdocs/user/index.php b/htdocs/user/index.php
index 93c7e6635fc..06f077c39c8 100644
--- a/htdocs/user/index.php
+++ b/htdocs/user/index.php
@@ -27,7 +27,9 @@ print_titre("Liste des utilisateurs");
$sql = "SELECT u.rowid, u.name, u.firstname, u.code, u.login, u.module_comm, u.module_compta";
$sql .= " FROM ".MAIN_DB_PREFIX."user as u";
-$sql .= " ORDER BY u.name";
+$sql .= " ORDER BY ";
+if ($sortfield) { $sql.="$sortfield $sortorder"; }
+else { $sql.="u.name"; }
$result = $db->query($sql);
if ($result)
@@ -35,12 +37,20 @@ if ($result)
$num = $db->num_rows();
$i = 0;
- print "";
+ print "";
print '';
- print "| Prenom | ";
- print "Nom | ";
- print 'login | ';
- print "code | ";
+ print "";
+ print_liste_field_titre("Nom",$PHP_SELF,"name");
+ print " | ";
+ print "";
+ print_liste_field_titre("Prénom",$PHP_SELF,"firstname");
+ print " | ";
+ print "";
+ print_liste_field_titre("Login",$PHP_SELF,"login");
+ print " | ";
+ print "";
+ print_liste_field_titre("Code",$PHP_SELF,"code");
+ print " | ";
print "
\n";
$var=True;
while ($i < $num)
@@ -49,9 +59,13 @@ if ($result)
$var=!$var;
print "";
- print '| '.$obj->firstname.' | ';
- print ''.$obj->name.' | ';
- print ''.$obj->login.' | ';
+ print ''.ucfirst($obj->name).' | ';
+ print ''.ucfirst($obj->firstname).' | ';
+ if ($obj->login) {
+ print ''.$obj->login.' | ';
+ } else {
+ print 'Inactif | ';
+ }
print ''.$obj->code.' | ';
print "
\n";
$i++;