diff --git a/htdocs/user/card.php b/htdocs/user/card.php
index e60d948aa48..8fd979015bf 100644
--- a/htdocs/user/card.php
+++ b/htdocs/user/card.php
@@ -1203,8 +1203,11 @@ else
$res=$object->fetch_optionals();
// Check if user has rights
- $object->getrights();
- if (empty($object->nb_rights) && $object->statut != 0) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
+ if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
+ {
+ $object->getrights();
+ if (empty($object->nb_rights) && $object->statut != 0) setEventMessages($langs->trans('UserHasNoPermissions'), null, 'warnings');
+ }
// Connexion ldap
// pour recuperer passDoNotExpire et userChangePassNextLogon
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index f83b2e85e72..b57c64dd0ad 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -487,8 +487,15 @@ class User extends CommonObject
// Where pour la liste des droits a ajouter
if (! empty($allmodule))
{
- $whereforadd="module='".$this->db->escape($allmodule)."'";
- if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
+ if ($allmodule == 'allmodules')
+ {
+ $whereforadd='allmodules';
+ }
+ else
+ {
+ $whereforadd="module='".$this->db->escape($allmodule)."'";
+ if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
+ }
}
}
@@ -498,8 +505,10 @@ class User extends CommonObject
//print "$module-$perms-$subperms";
$sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
- $sql.= " WHERE ".$whereforadd;
- $sql.= " AND entity = ".$entity;
+ $sql.= " WHERE entity = ".$entity;
+ if (! empty($whereforadd) && $whereforadd != 'allmodules') {
+ $sql.= " AND ".$whereforadd;
+ }
$result=$this->db->query($sql);
if ($result)
@@ -600,8 +609,18 @@ class User extends CommonObject
else {
// On a demande suppression d'un droit sur la base d'un nom de module ou perms
// Where pour la liste des droits a supprimer
- if (! empty($allmodule)) $wherefordel="module='".$this->db->escape($allmodule)."'";
- if (! empty($allperms)) $wherefordel=" AND perms='".$this->db->escape($allperms)."'";
+ if (! empty($allmodule))
+ {
+ if ($allmodule == 'allmodules')
+ {
+ $wherefordel='allmodules';
+ }
+ else
+ {
+ $wherefordel="module='".$this->db->escape($allmodule)."'";
+ if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
+ }
+ }
}
// Suppression des droits selon critere defini dans wherefordel
@@ -610,8 +629,10 @@ class User extends CommonObject
//print "$module-$perms-$subperms";
$sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
- $sql.= " WHERE $wherefordel";
- $sql.= " AND entity = ".$entity;
+ $sql.= " WHERE entity = ".$entity;
+ if (! empty($wherefordel) && $wherefordel != 'allmodules') {
+ $sql.= " AND ".$wherefordel;
+ }
$result=$this->db->query($sql);
if ($result)
diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php
index 2400c855a6d..882e9111b5d 100644
--- a/htdocs/user/class/usergroup.class.php
+++ b/htdocs/user/class/usergroup.class.php
@@ -308,8 +308,18 @@ class UserGroup extends CommonObject
}
else {
// Where pour la liste des droits a ajouter
- if (! empty($allmodule)) $whereforadd="module='".$this->db->escape($allmodule)."'";
- if (! empty($allperms)) $whereforadd=" AND perms='".$this->db->escape($allperms)."'";
+ if (! empty($allmodule))
+ {
+ if ($allmodule == 'allmodules')
+ {
+ $whereforadd='allmodules';
+ }
+ else
+ {
+ $whereforadd="module='".$this->db->escape($allmodule)."'";
+ if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
+ }
+ }
}
// Ajout des droits de la liste whereforadd
@@ -318,8 +328,10 @@ class UserGroup extends CommonObject
//print "$module-$perms-$subperms";
$sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
- $sql.= " WHERE $whereforadd";
- $sql.= " AND entity = ".$entity;
+ $sql.= " WHERE entity = ".$entity;
+ if (! empty($whereforadd) && $whereforadd != 'allmodules') {
+ $sql.= " AND ".$whereforadd;
+ }
$result=$this->db->query($sql);
if ($result)
@@ -422,8 +434,18 @@ class UserGroup extends CommonObject
}
else {
// Where pour la liste des droits a supprimer
- if (! empty($allmodule)) $wherefordel="module='".$this->db->escape($allmodule)."'";
- if (! empty($allperms)) $wherefordel=" AND perms='".$this->db->escape($allperms)."'";
+ if (! empty($allmodule))
+ {
+ if ($allmodule == 'allmodules')
+ {
+ $wherefordel='allmodules';
+ }
+ else
+ {
+ $wherefordel="module='".$this->db->escape($allmodule)."'";
+ if (! empty($allperms)) $whereforadd.=" AND perms='".$this->db->escape($allperms)."'";
+ }
+ }
}
// Suppression des droits de la liste wherefordel
@@ -432,8 +454,10 @@ class UserGroup extends CommonObject
//print "$module-$perms-$subperms";
$sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
- $sql.= " WHERE $wherefordel";
- $sql.= " AND entity = ".$entity;
+ $sql.= " WHERE entity = ".$entity;
+ if (! empty($wherefordel) && $wherefordel != 'allmodules') {
+ $sql.= " AND ".$wherefordel;
+ }
$result=$this->db->query($sql);
if ($result)
diff --git a/htdocs/user/group/perms.php b/htdocs/user/group/perms.php
index c1f8d1fe5b0..0d019b1226c 100644
--- a/htdocs/user/group/perms.php
+++ b/htdocs/user/group/perms.php
@@ -231,7 +231,14 @@ if ($object->id > 0)
print '