Fix: Try to restore borken permission features when multicompany is off.
This commit is contained in:
parent
373974d2f3
commit
e1c807b7d0
@ -21,7 +21,7 @@
|
||||
* \file htdocs/user/class/usergroup.class.php
|
||||
* \brief Fichier de la classe des groupes d'utilisateur
|
||||
* \author Rodolphe Qiedeville
|
||||
* \version $Id: usergroup.class.php,v 1.16 2011/08/21 10:01:37 hregis Exp $
|
||||
* \version $Id: usergroup.class.php,v 1.17 2011/08/23 22:25:38 eldy Exp $
|
||||
*/
|
||||
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/class/commonobject.class.php");
|
||||
@ -115,6 +115,7 @@ class UserGroup extends CommonObject
|
||||
|
||||
/**
|
||||
* Return array of groups objects for a particular user
|
||||
*
|
||||
* @param userid User id to search
|
||||
* @return array Array of groups objects
|
||||
*/
|
||||
@ -129,7 +130,6 @@ class UserGroup extends CommonObject
|
||||
$sql.= " ".MAIN_DB_PREFIX."usergroup_user as ug";
|
||||
$sql.= " WHERE ug.fk_usergroup = g.rowid";
|
||||
$sql.= " AND ug.fk_user = ".$userid;
|
||||
|
||||
if(! empty($conf->multicompany->enabled) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
$sql.= " AND g.entity IS NOT NULL";
|
||||
@ -138,7 +138,6 @@ class UserGroup extends CommonObject
|
||||
{
|
||||
$sql.= " AND g.entity IN (0,".$conf->entity.")";
|
||||
}
|
||||
|
||||
$sql.= " ORDER BY g.nom";
|
||||
|
||||
dol_syslog("UserGroup::listGroupsForUser sql=".$sql,LOG_DEBUG);
|
||||
@ -147,11 +146,11 @@ class UserGroup extends CommonObject
|
||||
{
|
||||
while ($obj = $this->db->fetch_object($result))
|
||||
{
|
||||
$group=new UserGroup($this->db);
|
||||
$group->fetch($obj->rowid);
|
||||
$group->usergroup_entity = $obj->usergroup_entity;
|
||||
$newgroup=new UserGroup($this->db);
|
||||
$newgroup->fetch($obj->rowid);
|
||||
$newgroup->usergroup_entity = $obj->usergroup_entity;
|
||||
|
||||
$ret[]=$group;
|
||||
$ret[]=$newgroup;
|
||||
}
|
||||
|
||||
$this->db->free($result);
|
||||
@ -168,6 +167,7 @@ class UserGroup extends CommonObject
|
||||
|
||||
/**
|
||||
* Return array of users id for group
|
||||
*
|
||||
* @return array of users
|
||||
*/
|
||||
function listUsersForGroup()
|
||||
@ -181,7 +181,6 @@ class UserGroup extends CommonObject
|
||||
$sql.= " ".MAIN_DB_PREFIX."usergroup_user as ug";
|
||||
$sql.= " WHERE ug.fk_user = u.rowid";
|
||||
$sql.= " AND ug.fk_usergroup = ".$this->id;
|
||||
|
||||
if(! empty($conf->multicompany->enabled) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
$sql.= " AND u.entity IS NOT NULL";
|
||||
@ -190,18 +189,17 @@ class UserGroup extends CommonObject
|
||||
{
|
||||
$sql.= " AND u.entity IN (0,".$conf->entity.")";
|
||||
}
|
||||
|
||||
dol_syslog("UserGroup::listUsersForGroup sql=".$sql,LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
while ($obj = $this->db->fetch_object($result))
|
||||
{
|
||||
$userstatic=new User($this->db);
|
||||
$userstatic->fetch($obj->rowid);
|
||||
$userstatic->usergroup_entity = $obj->usergroup_entity;
|
||||
$newuser=new User($this->db);
|
||||
$newuser->fetch($obj->rowid);
|
||||
$newuser->usergroup_entity = $obj->usergroup_entity;
|
||||
|
||||
$ret[]=$userstatic;
|
||||
$ret[]=$newuser;
|
||||
}
|
||||
|
||||
$this->db->free($result);
|
||||
@ -456,7 +454,7 @@ class UserGroup extends CommonObject
|
||||
$this->rights->$row[0]->$row[1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
@ -521,7 +519,7 @@ class UserGroup extends CommonObject
|
||||
global $user, $conf, $langs;
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
|
||||
$entity=$conf->entity;
|
||||
if(! empty($conf->multicompany->enabled) && $conf->entity == 1)
|
||||
{
|
||||
@ -576,7 +574,7 @@ class UserGroup extends CommonObject
|
||||
global $user, $conf, $langs;
|
||||
|
||||
$error=0;
|
||||
|
||||
|
||||
$entity=$conf->entity;
|
||||
if(! empty($conf->multicompany->enabled) && $conf->entity == 1)
|
||||
{
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
/**
|
||||
* \file htdocs/user/fiche.php
|
||||
* \brief Tab of user card
|
||||
* \version $Id: fiche.php,v 1.281 2011/08/21 10:01:37 hregis Exp $
|
||||
* \version $Id: fiche.php,v 1.282 2011/08/23 22:25:38 eldy Exp $
|
||||
*/
|
||||
|
||||
require("../main.inc.php");
|
||||
@ -702,7 +702,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
|
||||
}
|
||||
print "</td></tr>\n";
|
||||
}
|
||||
|
||||
|
||||
//Multicompany
|
||||
if (! empty($conf->multicompany->enabled))
|
||||
{
|
||||
@ -1037,7 +1037,7 @@ else
|
||||
print yn($fuser->admin);
|
||||
}
|
||||
print '</td></tr>'."\n";
|
||||
|
||||
|
||||
// Multicompany
|
||||
if (! empty($conf->multicompany->enabled) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) && $conf->entity == 1 && $user->admin && ! $user->entity)
|
||||
{
|
||||
@ -1046,7 +1046,7 @@ else
|
||||
{
|
||||
print $langs->trans("AllEntities");
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$mc = new ActionsMulticompany($db);
|
||||
$mc->getInfo($fuser->entity);
|
||||
@ -1394,7 +1394,7 @@ else
|
||||
print '<table width="100%" class="border">';
|
||||
|
||||
$rowspan=12;
|
||||
|
||||
|
||||
if ($conf->societe->enabled) $rowspan++;
|
||||
if ($conf->adherent->enabled) $rowspan++;
|
||||
if ($conf->webcalendar->enabled) $rowspan++;
|
||||
@ -1596,7 +1596,7 @@ else
|
||||
}
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
|
||||
// Tel pro
|
||||
print "<tr>".'<td valign="top">'.$langs->trans("PhonePro").'</td>';
|
||||
print '<td>';
|
||||
@ -1776,7 +1776,7 @@ else
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter('$Date: 2011/08/21 10:01:37 $ - $Revision: 1.281 $');
|
||||
llxFooter('$Date: 2011/08/23 22:25:38 $ - $Revision: 1.282 $');
|
||||
|
||||
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
/**
|
||||
* \file htdocs/user/group/perms.php
|
||||
* \brief Onglet user et permissions de la fiche utilisateur
|
||||
* \version $Id: perms.php,v 1.42 2011/08/21 00:20:43 hregis Exp $
|
||||
* \version $Id: perms.php,v 1.43 2011/08/23 22:25:37 eldy Exp $
|
||||
*/
|
||||
|
||||
require("../../main.inc.php");
|
||||
@ -170,7 +170,8 @@ if ($id)
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."usergroup_rights as ugr";
|
||||
$sql.= " WHERE ugr.fk_id = r.id";
|
||||
$sql.= " AND r.entity = ".$fgroup->entity;
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND r.entity = ".$conf->entity;
|
||||
else $sql.= " AND r.entity = ".$fgroup->entity;
|
||||
$sql.= " AND ugr.fk_usergroup = ".$fgroup->id;
|
||||
|
||||
$result=$db->query($sql);
|
||||
@ -235,7 +236,8 @@ if ($id)
|
||||
$sql = "SELECT r.id, r.libelle, r.module";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r";
|
||||
$sql.= " WHERE r.libelle NOT LIKE 'tou%'"; // On ignore droits "tous"
|
||||
$sql.= " AND r.entity = ".$fgroup->entity;
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND r.entity = ".$conf->entity;
|
||||
else $sql.= " AND r.entity = ".$fgroup->entity;
|
||||
if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) $sql.= " AND r.perms NOT LIKE '%_advance'"; // Hide advanced perms if option is disable
|
||||
$sql.= " ORDER BY r.module, r.id";
|
||||
|
||||
@ -319,5 +321,5 @@ if ($id)
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter('$Date: 2011/08/21 00:20:43 $ - $Revision: 1.42 $');
|
||||
llxFooter('$Date: 2011/08/23 22:25:37 $ - $Revision: 1.43 $');
|
||||
?>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
/**
|
||||
* \file htdocs/user/perms.php
|
||||
* \brief Onglet user et permissions de la fiche utilisateur
|
||||
* \version $Id: perms.php,v 1.59 2011/08/21 00:20:44 hregis Exp $
|
||||
* \version $Id: perms.php,v 1.60 2011/08/23 22:25:38 eldy Exp $
|
||||
*/
|
||||
|
||||
require("../main.inc.php");
|
||||
@ -154,7 +154,7 @@ foreach($modulesdir as $dir)
|
||||
$handle=opendir($dir);
|
||||
if (is_resource($handle))
|
||||
{
|
||||
while (($file = readdir($handle))!==false)
|
||||
while (($file = readdir($handle))!==false)
|
||||
{
|
||||
if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, dol_strlen($file) - 10) == '.class.php')
|
||||
{
|
||||
@ -164,6 +164,7 @@ foreach($modulesdir as $dir)
|
||||
{
|
||||
include_once($dir.$file);
|
||||
$objMod = new $modName($db);
|
||||
|
||||
// Load all lang files of module
|
||||
if (isset($objMod->langfiles) && is_array($objMod->langfiles))
|
||||
{
|
||||
@ -173,8 +174,8 @@ foreach($modulesdir as $dir)
|
||||
}
|
||||
}
|
||||
// Load all permissions
|
||||
if ($objMod->rights_class) {
|
||||
|
||||
if ($objMod->rights_class)
|
||||
{
|
||||
$ret=$objMod->insert_permissions(0);
|
||||
|
||||
$modules[$objMod->rights_class]=$objMod;
|
||||
@ -195,7 +196,8 @@ $sql = "SELECT r.id, r.libelle, r.module";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."user_rights as ur";
|
||||
$sql.= " WHERE ur.fk_id = r.id";
|
||||
$sql.= " AND r.entity = ".$fuser->entity;
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND r.entity = ".$conf->entity;
|
||||
else $sql.= " AND r.entity = ".$fuser->entity;
|
||||
$sql.= " AND ur.fk_user = ".$fuser->id;
|
||||
|
||||
$result=$db->query($sql);
|
||||
@ -224,8 +226,10 @@ $sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."usergroup_rights as gr,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."usergroup_user as gu";
|
||||
$sql.= " WHERE gr.fk_id = r.id";
|
||||
$sql.= " AND r.entity = ".$fuser->entity;
|
||||
$sql.= " AND gu.entity IN (0,".$fuser->entity.")";
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND r.entity = ".$conf->entity;
|
||||
else $sql.= " AND r.entity = ".$fuser->entity;
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND gu.entity IN (0,".$conf->entity.")";
|
||||
else $sql.= " AND gu.entity IN (0,".$fuser->entity.")";
|
||||
$sql.= " AND gr.fk_usergroup = gu.fk_usergroup";
|
||||
$sql.= " AND gu.fk_user = ".$fuser->id;
|
||||
|
||||
@ -288,16 +292,19 @@ print '</tr>'."\n";
|
||||
$sql = "SELECT r.id, r.libelle, r.module";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r";
|
||||
$sql.= " WHERE r.libelle NOT LIKE 'tou%'"; // On ignore droits "tous"
|
||||
$sql.= " AND r.entity = ".$fuser->entity;
|
||||
if (empty($conf->multicompany->enabled)) $sql.= " AND r.entity = ".$conf->entity;
|
||||
else $sql.= " AND r.entity = ".$fuser->entity;
|
||||
if (empty($conf->global->MAIN_USE_ADVANCED_PERMS)) $sql.= " AND r.perms NOT LIKE '%_advance'"; // Hide advanced perms if option is disable
|
||||
$sql.= " ORDER BY r.module, r.id";
|
||||
|
||||
dol_syslog("sql=".$sql);
|
||||
$result=$db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $db->num_rows($result);
|
||||
$i = 0;
|
||||
$var = True;
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
@ -394,9 +401,10 @@ if ($result)
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else dol_print_error($db);
|
||||
print '</table>';
|
||||
|
||||
$db->close();
|
||||
|
||||
llxFooter('$Date: 2011/08/21 00:20:44 $ - $Revision: 1.59 $');
|
||||
llxFooter('$Date: 2011/08/23 22:25:38 $ - $Revision: 1.60 $');
|
||||
?>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user