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 $modulename;
print "</td>"; 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">'; print '<td align="center">';
$filter=$obj->formFilter(); $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(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); 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/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); 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(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/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); $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"); $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_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); $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); 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(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/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); $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"); $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_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); $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); 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 else
{ {
$this->error=$this->db->error();
return -1; return -1;
} }
} }

View File

@ -59,7 +59,7 @@ function ldap_prepare_head()
$h++; $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][0] = DOL_URL_ROOT."/admin/ldap_contacts.php";
$head[$h][1] = $langs->trans("LDAPContactsSynchro"); $head[$h][1] = $langs->trans("LDAPContactsSynchro");
@ -67,7 +67,7 @@ function ldap_prepare_head()
$h++; $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][0] = DOL_URL_ROOT."/admin/ldap_members.php";
$head[$h][1] = $langs->trans("LDAPMembersSynchro"); $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)"; if ($perms) $whereforadd.=" OR (module='$module' AND perms='lire' AND subperms IS NULL)";
} }
else { 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 // Where pour la liste des droits à ajouter
if ($allmodule) $whereforadd="module='$allmodule'"; if ($allmodule) $whereforadd="module='$allmodule'";
if ($allperms) $whereforadd=" AND perms='$allperms'"; if ($allperms) $whereforadd=" AND perms='$allperms'";
} }
// Ajout des droits de la liste whereforadd // Ajout des droits trouvés grace au critere whereforadd
if ($whereforadd) if ($whereforadd)
{ {
//print "$module-$perms-$subperms"; //print "$module-$perms-$subperms";
$sql = "SELECT id"; $sql = "SELECT id";
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def"; $sql.= " FROM ".MAIN_DB_PREFIX."rights_def";
$sql.= " WHERE $whereforadd"; $sql.= " WHERE ".$whereforadd;
$result=$this->db->query($sql); $result=$this->db->query($sql);
if ($result) if ($result)
@ -369,12 +371,13 @@ class User
if ($perms=='lire') $wherefordel.=" OR (module='$module')"; if ($perms=='lire') $wherefordel.=" OR (module='$module')";
} }
else { 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 // Where pour la liste des droits à supprimer
if ($allmodule) $wherefordel="module='$allmodule'"; if ($allmodule) $wherefordel="module='$allmodule'";
if ($allperms) $wherefordel=" AND perms='$allperms'"; if ($allperms) $wherefordel=" AND perms='$allperms'";
} }
// Suppression des droits de la liste wherefordel // Suppression des droits selon critere defini dans wherefordel
if ($wherefordel) if ($wherefordel)
{ {
//print "$module-$perms-$subperms"; //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 * \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) * \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 .= " 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"; $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); $result = $this->db->query($sql);
if ($result) if ($result)
{ {

View File

@ -33,11 +33,13 @@ require_once(DOL_DOCUMENT_ROOT."/lib/usergroups.lib.php");
$langs->load("users"); $langs->load("users");
$form = new Form($db); $form = new Form($db);
$module=isset($_GET["module"])?$_GET["module"]:$_POST["module"]; $module=isset($_GET["module"])?$_GET["module"]:$_POST["module"];
if (! isset($_GET["id"])) access_forbidden();
// Defini si peux modifier utilisateurs et permisssions // Defini si peux modifier utilisateurs et permisssions
$caneditperms=($user->admin || $user->rights->user->user->creer); $caneditperms=($user->admin || $user->rights->user->user->creer);
@ -50,13 +52,28 @@ if ($_GET["action"] == 'addrights' && $caneditperms)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->addrights($_GET["rights"],$module); $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) if ($_GET["action"] == 'delrights' && $caneditperms)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->delrights($_GET["rights"],$module); $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 = new User($db, $_GET["id"]);
$fuser->fetch(); $fuser->fetch();
$fuser->getrights(); $fuser->getrights();
@ -281,7 +296,6 @@ if ($_GET["id"])
} }
} }
print '</table>'; print '</table>';
}
$db->close(); $db->close();