Fix: Si on modifie des droits, on les recharge de suite

This commit is contained in:
Laurent Destailleur 2006-11-26 19:19:46 +00:00
parent b3175036a8
commit db98eac2bf
7 changed files with 1695 additions and 1647 deletions

View File

@ -231,7 +231,17 @@ if ($mil->fetch($_REQUEST["id"]) >= 0)
print $modulename;
print "</td>";
*/
print '<td align="center">'.($obj->getNbOfRecipients()).'</td>';
$nbofrecipient=$obj->getNbOfRecipients();
print '<td align="center">';
if ($nbofrecipient >= 0)
{
print $nbofrecipient;
}
else
{
print $langs->trans("Error").' '.img_error($obj->error);
}
print '</td>';
print '<td align="center">';
$filter=$obj->formFilter();

View File

@ -435,7 +435,7 @@ class MenuLeft {
if ($leftmenu=="ca") $newmenu->add(DOL_URL_ROOT."/compta/resultat/index.php?leftmenu=ca","Résultat / Exercice",1,$user->rights->compta->resultat->lire||$user->rights->comptaexpert->comptarapport->lire);
if ($leftmenu=="ca") $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/clientfourn.php?leftmenu=ca",$langs->trans("ByCompanies"),2,$user->rights->compta->resultat->lire||$user->rights->comptaexpert->comptarapport->lire);
/* On verra ca avec module compabilité
/* On verra ca avec module compabilit
if ($leftmenu=="ca") $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/compteres.php?leftmenu=ca","Compte de résultat",2,$user->rights->compta->resultat->lire);
if ($leftmenu=="ca") $newmenu->add_submenu(DOL_URL_ROOT."/compta/resultat/bilan.php?leftmenu=ca","Bilan",2,$user->rights->compta->resultat->lire);
*/
@ -631,8 +631,12 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/adherents/index.php?leftmenu=accountancy&mainmenu=members",$langs->trans("Subscriptions"),0,$user->rights->adherent->cotisation->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=-1,1&amp;leftmenu=accountancy&mainmenu=members",$langs->trans("NewSubscription"),1,$user->rights->adherent->cotisation->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/adherents/cotisations.php?leftmenu=accountancy",$langs->trans("List"),1,$user->rights->adherent->cotisation->lire);
if ($conf->banque->enabled)
{
$langs->load("banks");
$newmenu->add_submenu(DOL_URL_ROOT."/compta/bank/index.php?leftmenu=accountancy",$langs->trans("Banks"),0,$user->rights->adherent->lire);
}
$newmenu->add(DOL_URL_ROOT."/adherents/index.php?leftmenu=export&mainmenu=members",$langs->trans("Exports"),0,$user->rights->adherent->export);
if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);

View File

@ -646,8 +646,12 @@ class MenuLeft {
$newmenu->add(DOL_URL_ROOT."/adherents/index.php?leftmenu=accountancy&mainmenu=members",$langs->trans("Subscriptions"),0,$user->rights->adherent->cotisation->lire);
$newmenu->add_submenu(DOL_URL_ROOT."/adherents/liste.php?statut=-1,1&amp;leftmenu=accountancy&mainmenu=members",$langs->trans("NewSubscription"),1,$user->rights->adherent->cotisation->creer);
$newmenu->add_submenu(DOL_URL_ROOT."/adherents/cotisations.php?leftmenu=accountancy",$langs->trans("List"),1,$user->rights->adherent->cotisation->lire);
if ($conf->banque->enabled)
{
$langs->load("banks");
$newmenu->add_submenu(DOL_URL_ROOT."/compta/bank/index.php?leftmenu=accountancy",$langs->trans("Banks"),0,$user->rights->adherent->lire);
}
$newmenu->add(DOL_URL_ROOT."/adherents/index.php?leftmenu=export&mainmenu=members",$langs->trans("Export"),0,$user->rights->adherent->export);
if ($conf->export->enabled && $leftmenu=="export") $newmenu->add_submenu(DOL_URL_ROOT."/exports/index.php?leftmenu=export",$langs->trans("Datas"),1,$user->rights->adherent->export);

View File

@ -81,6 +81,7 @@ class MailingTargets
}
else
{
$this->error=$this->db->error();
return -1;
}
}

View File

@ -59,7 +59,7 @@ function ldap_prepare_head()
$h++;
}
if ($conf->global->LDAP_CONTACT_ACTIVE)
if ($conf->societe->enabled && $conf->global->LDAP_CONTACT_ACTIVE)
{
$head[$h][0] = DOL_URL_ROOT."/admin/ldap_contacts.php";
$head[$h][1] = $langs->trans("LDAPContactsSynchro");
@ -67,7 +67,7 @@ function ldap_prepare_head()
$h++;
}
if ($conf->global->LDAP_MEMBER_ACTIVE)
if ($conf->adherent->enabled && $conf->global->LDAP_MEMBER_ACTIVE)
{
$head[$h][0] = DOL_URL_ROOT."/admin/ldap_members.php";
$head[$h][1] = $langs->trans("LDAPMembersSynchro");

View File

@ -277,18 +277,20 @@ class User
if ($perms) $whereforadd.=" OR (module='$module' AND perms='lire' AND subperms IS NULL)";
}
else {
// On a pas demandé un droit en particulier mais une liste de droits
// sur la base d'un nom de module de de perms
// Where pour la liste des droits à ajouter
if ($allmodule) $whereforadd="module='$allmodule'";
if ($allperms) $whereforadd=" AND perms='$allperms'";
}
// Ajout des droits de la liste whereforadd
// Ajout des droits trouvés grace au critere whereforadd
if ($whereforadd)
{
//print "$module-$perms-$subperms";
$sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
$sql.= " WHERE $whereforadd";
$sql.= " WHERE ".$whereforadd;
$result=$this->db->query($sql);
if ($result)
@ -369,12 +371,13 @@ class User
if ($perms=='lire') $wherefordel.=" OR (module='$module')";
}
else {
// On a demandé suppression d'un droit sur la base d'un nom de module ou perms
// Where pour la liste des droits à supprimer
if ($allmodule) $wherefordel="module='$allmodule'";
if ($allperms) $wherefordel=" AND perms='$allperms'";
}
// Suppression des droits de la liste wherefordel
// Suppression des droits selon critere defini dans wherefordel
if ($wherefordel)
{
//print "$module-$perms-$subperms";
@ -416,6 +419,17 @@ class User
}
/**
* \brief Vide la tableau des droits de l'utilisateur
*/
function clearrights()
{
$this->rights='';
$this->all_permissions_are_loaded=false;
}
/**
* \brief Charge dans l'objet user, la liste des permissions auxquelles l'utilisateur a droit
* \param module nom du module dont il faut récupérer les droits ('' par defaut signifie tous les droits)
@ -435,6 +449,7 @@ class User
$sql .= " FROM ".MAIN_DB_PREFIX."user_rights as ur, ".MAIN_DB_PREFIX."rights_def as r";
$sql .= " WHERE r.id = ur.fk_id AND ur.fk_user= ".$this->id." AND r.perms IS NOT NULL";
dolibarr_syslog('User.class::getrights this->id='.$this->id.' module='.$module);
$result = $this->db->query($sql);
if ($result)
{

View File

@ -33,11 +33,13 @@ require_once(DOL_DOCUMENT_ROOT."/lib/usergroups.lib.php");
$langs->load("users");
$form = new Form($db);
$module=isset($_GET["module"])?$_GET["module"]:$_POST["module"];
if (! isset($_GET["id"])) access_forbidden();
// Defini si peux modifier utilisateurs et permisssions
$caneditperms=($user->admin || $user->rights->user->user->creer);
@ -50,13 +52,28 @@ if ($_GET["action"] == 'addrights' && $caneditperms)
{
$edituser = new User($db,$_GET["id"]);
$edituser->addrights($_GET["rights"],$module);
// Si on a touché à ces propres droits, on recharge
if ($_GET["id"] == $user->id)
{
$user->clearrights();
$user->getrights();
}
}
if ($_GET["action"] == 'delrights' && $caneditperms)
{
$edituser = new User($db,$_GET["id"]);
$edituser->delrights($_GET["rights"],$module);
// Si on a touché à ces propres droits, on recharge
if ($_GET["id"] == $user->id)
{
$user->clearrights();
$user->getrights();
}
}
@ -69,8 +86,6 @@ llxHeader('',$langs->trans("Permissions"));
/* */
/* ************************************************************************** */
if ($_GET["id"])
{
$fuser = new User($db, $_GET["id"]);
$fuser->fetch();
$fuser->getrights();
@ -281,7 +296,6 @@ if ($_GET["id"])
}
}
print '</table>';
}
$db->close();