diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 5b7416dbaa6..d637bdff632 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -135,7 +135,7 @@ class User extends CommonObject public $default_c_exp_tax_cat; public $default_range; - + public $fields=array( 'rowid'=>array('type'=>'integer', 'label'=>'TechnicalID', 'enabled'=>1, 'visible'=>-2, 'notnull'=>1, 'index'=>1, 'position'=>1, 'comment'=>'Id'), 'lastname'=>array('type'=>'varchar(50)', 'label'=>'Name', 'enabled'=>1, 'visible'=>1, 'notnull'=>1, 'showoncombobox'=>1, 'index'=>1, 'position'=>20, 'searchall'=>1, 'comment'=>'Reference of object'), @@ -484,8 +484,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)."'"; + } } } @@ -495,8 +502,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) @@ -597,8 +606,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 @@ -607,8 +626,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 ''; print ''; print ''; - if ($caneditperms) print ''; + if ($caneditperms) + { + print ''; + } print ''; print ''; print ''; diff --git a/htdocs/user/perms.php b/htdocs/user/perms.php index 0a8e2bbbb80..30b988d3b22 100644 --- a/htdocs/user/perms.php +++ b/htdocs/user/perms.php @@ -260,7 +260,14 @@ print "\n"; print '
'.$langs->trans("Module").' '; + print ''.$langs->trans("All").""; + print '/'; + print ''.$langs->trans("None").""; + print ' '.$langs->trans("Permissions").'
'; print ''; print ''; -if ($caneditperms) print ''; +if ($caneditperms && empty($objMod->rights_admin_allowed) || empty($object->admin)) +{ + print ''; +} print ''; print ''; print ''."\n";
'.$langs->trans("Module").' '; + print ''.$langs->trans("All").""; + print '/'; + print ''.$langs->trans("None").""; + print ' '.$langs->trans("Permissions").'