Qual: Mutualisation fonction img_tick.

This commit is contained in:
Laurent Destailleur 2005-03-06 15:39:32 +00:00
parent a5ac8053a0
commit 699a68ec7b
13 changed files with 373 additions and 251 deletions

View File

@ -125,7 +125,7 @@ print "<br>";
*/ */
if (defined("ADHERENT_USE_MAILMAN") && ADHERENT_USE_MAILMAN == 1) if (defined("ADHERENT_USE_MAILMAN") && ADHERENT_USE_MAILMAN == 1)
{ {
$lien='<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0">'; $lien=img_tick().' ';
$lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_MAILMAN">'.$langs->trans("Disable").'</a>'; $lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_MAILMAN">'.$langs->trans("Disable").'</a>';
// Edition des varibales globales rattache au theme Mailman // Edition des varibales globales rattache au theme Mailman
$constantes=array('ADHERENT_MAILMAN_LISTS', $constantes=array('ADHERENT_MAILMAN_LISTS',
@ -151,7 +151,7 @@ print "<hr>\n";
*/ */
if (defined("ADHERENT_BANK_USE") && ADHERENT_BANK_USE == 1) if (defined("ADHERENT_BANK_USE") && ADHERENT_BANK_USE == 1)
{ {
$lien='<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0">'; $lien=img_tick().' ';
$lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_BANK_USE">'.$langs->trans("Disable").'</a>'; $lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_BANK_USE">'.$langs->trans("Disable").'</a>';
// Edition des varibales globales rattache au theme Mailman // Edition des varibales globales rattache au theme Mailman
$constantes=array('ADHERENT_BANK_USE_AUTO', $constantes=array('ADHERENT_BANK_USE_AUTO',
@ -175,7 +175,7 @@ print "<hr>\n";
$var=!$var; $var=!$var;
if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP == 1) if (defined("ADHERENT_USE_SPIP") && ADHERENT_USE_SPIP == 1)
{ {
$lien='<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0">'; $lien=img_tick().' ';
$lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_SPIP">'.$langs->trans("Disable").'</a>'; $lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_SPIP">'.$langs->trans("Disable").'</a>';
// Edition des varibales globales rattache au theme Mailman // Edition des varibales globales rattache au theme Mailman
$constantes=array('ADHERENT_USE_SPIP_AUTO', $constantes=array('ADHERENT_USE_SPIP_AUTO',
@ -201,7 +201,7 @@ print "<hr>\n";
$var=!$var; $var=!$var;
if (defined("ADHERENT_USE_GLASNOST") && ADHERENT_USE_GLASNOST == 1) if (defined("ADHERENT_USE_GLASNOST") && ADHERENT_USE_GLASNOST == 1)
{ {
$lien='<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0">'; $lien=img_tick().' ';
$lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_GLASNOST">'.$langs->trans("Disable").'</a>'; $lien.='<a href="adherent.php?action=unset&value=0&name=ADHERENT_USE_GLASNOST">'.$langs->trans("Disable").'</a>';
// Edition des varibales globales rattache au theme Mailman // Edition des varibales globales rattache au theme Mailman
$constantes=array('ADHERENT_USE_GLASNOST_AUTO', $constantes=array('ADHERENT_USE_GLASNOST_AUTO',

View File

@ -110,7 +110,7 @@ foreach ($modules as $key => $value)
if ($const_value == 1) if ($const_value == 1)
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {
@ -121,11 +121,11 @@ foreach ($modules as $key => $value)
if ($const_value == 1) if ($const_value == 1)
{ {
print '<a href="boutique.php?action=reset&value='.$const_name.'">Désactiver</a>'; print '<a href="boutique.php?action=reset&value='.$const_name.'">'.$langs->trans("Disable").'</a>';
} }
else else
{ {
print '<a href="boutique.php?action=set&value='.$const_name.'">Activer</a>'; print '<a href="boutique.php?action=set&value='.$const_name.'">'.$langs->trans("Activate").'</a>';
} }
print '</td></tr>'; print '</td></tr>';

View File

@ -101,13 +101,13 @@ if ($handle)
if ($commande_addon_var == "$file") if ($commande_addon_var == "$file")
{ {
print '<td align="center">'; print '<td align="center">';
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print '</td><td>&nbsp;</td>'; print '</td><td>&nbsp;</td>';
} }
else else
{ {
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '<td align="center"><a href="commande.php?action=setmod&amp;value='.$file.'">activer</a></td>'; print '<td align="center"><a href="commande.php?action=setmod&amp;value='.$file.'">'.$langs->trans("Activate").'</a></td>';
} }
print '</tr>'; print '</tr>';

View File

@ -186,22 +186,22 @@ if(is_dir($dir)) {
if (in_array($name, $def)) if (in_array($name, $def))
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print "</td><td>\n"; print "</td><td>\n";
print '<a href="expedition.php?action=set&amp;statut=0&amp;value='.$name.'">désactiver</a>'; print '<a href="expedition.php?action=set&amp;statut=0&amp;value='.$name.'">'.$langs->trans("Disable").'</a>';
} }
else else
{ {
print "&nbsp;"; print "&nbsp;";
print "</td><td>\n"; print "</td><td>\n";
print '<a href="expedition.php?action=set&amp;statut=1&amp;value='.$name.'">activer</a>'; print '<a href="expedition.php?action=set&amp;statut=1&amp;value='.$name.'">'.$langs->trans("Activate").'</a>';
} }
print '</td><td align="center">'; print '</td><td align="center">';
if ($expedition_default == "$name") if ($expedition_default == "$name")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {
@ -262,22 +262,22 @@ if(is_dir($dir)) {
if (in_array($name, $def)) if (in_array($name, $def))
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print "</td><td>\n"; print "</td><td>\n";
print '<a href="expedition.php?action=del&amp;value='.$name.'">désactiver</a>'; print '<a href="expedition.php?action=del&amp;value='.$name.'">'.$langs->trans("Disable").'</a>';
} }
else else
{ {
print "&nbsp;"; print "&nbsp;";
print "</td><td>\n"; print "</td><td>\n";
print '<a href="expedition.php?action=set&amp;value='.$name.'">activer</a>'; print '<a href="expedition.php?action=set&amp;value='.$name.'">'.$langs->trans("Activate").'</a>';
} }
print '</td><td align="center">'; print '</td><td align="center">';
if ($expedition_addon_var_pdf == "$name") if ($expedition_addon_var_pdf == "$name")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {
@ -286,7 +286,7 @@ if(is_dir($dir)) {
print "</td><td>\n"; print "</td><td>\n";
print '<a href="expedition.php?action=setpdf&amp;value='.$name.'">activer</a>'; print '<a href="expedition.php?action=setpdf&amp;value='.$name.'">'.$langs->trans("Activate").'</a>';
print '</td></tr>'; print '</td></tr>';
} }

View File

@ -141,7 +141,7 @@ while (($file = readdir($handle))!==false)
print '<td align="center">'; print '<td align="center">';
if ($facture_addon_var == "$file") if ($facture_addon_var == "$file")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print '</td><td align="center">'; print '</td><td align="center">';
print '&nbsp;'; print '&nbsp;';
} }
@ -161,7 +161,7 @@ print '</table>';
print "<br>"; print "<br>";
print_titre("Date des factures"); print_titre("Date des factures");
print '<table class="noborder" cellpadding="2" cellspacing="0" width=\"100%\">'; print '<table class="noborder" width=\"100%\">';
print '<tr class="liste_titre">'; print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Description").'</td>'; print '<td>'.$langs->trans("Description").'</td>';
print '<td align="center" width="60">'.$langs->trans("Activated").'</td>'; print '<td align="center" width="60">'.$langs->trans("Activated").'</td>';
@ -175,15 +175,15 @@ print '</td><td width="60" align="center">';
if (defined("FAC_FORCE_DATE_VALIDATION") && FAC_FORCE_DATE_VALIDATION == "1") if (defined("FAC_FORCE_DATE_VALIDATION") && FAC_FORCE_DATE_VALIDATION == "1")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print '</td><td align="center">'; print '</td><td align="center">';
print '<a href="facture.php?action=dateforce&amp;value=0">'.$langs->trans("Désactiver").'</a>'; print '<a href="facture.php?action=dateforce&amp;value=0">'.$langs->trans("Disable").'</a>';
} }
else else
{ {
print '&nbsp;'; print '&nbsp;';
print '</td><td align="center">'; print '</td><td align="center">';
print '<a href="facture.php?action=dateforce&amp;value=1">'.$langs->trans("Activate").'</a>'; print '<a href="facture.php?action=dateforce&amp;value=1">'.$langs->trans("Enable").'</a>';
} }
print "</td></tr>\n"; print "</td></tr>\n";
@ -233,7 +233,7 @@ while (($file = readdir($handle))!==false)
if ($facture_addon_var_pdf == "$name") if ($facture_addon_var_pdf == "$name")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print '</td><td align="center">'; print '</td><td align="center">';
print '&nbsp;'; print '&nbsp;';
} }

View File

@ -101,7 +101,7 @@ while (($file = readdir($handle))!==false)
if ($ficheinter_addon_var_pdf == "$name") if ($ficheinter_addon_var_pdf == "$name")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {

View File

@ -248,7 +248,7 @@ foreach ($orders as $key => $value)
if ($const_value == 1) if ($const_value == 1)
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {

View File

@ -89,7 +89,7 @@ if ($result)
if ($obj->bydefault == 1) if ($obj->bydefault == 1)
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0">'; print img_tick();
print '</td><td>'; print '</td><td>';
print '<a href="perms.php?pid='.$obj->id.'&amp;action=remove">'.img_edit_remove().'</a>'; print '<a href="perms.php?pid='.$obj->id.'&amp;action=remove">'.img_edit_remove().'</a>';
} }

View File

@ -151,7 +151,7 @@ if ($handle)
if ($propale_addon_var == "$file") if ($propale_addon_var == "$file")
{ {
print " <td align=\"center\">"; print " <td align=\"center\">";
print "<img src=\"".DOL_URL_ROOT."/theme/".$conf->theme."/img/tick.png\" border=\"0\"></a>"; print img_tick();
print "</td>\n <td>&nbsp;</td>\n"; print "</td>\n <td>&nbsp;</td>\n";
} }
else else
@ -229,7 +229,7 @@ while (($file = readdir($handle))!==false)
if (in_array($name, $def)) if (in_array($name, $def))
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print "</td>\n <td>"; print "</td>\n <td>";
print '<a href="propale.php?action=del&amp;value='.$name.'">'.$langs->trans("Disable").'</a>'; print '<a href="propale.php?action=del&amp;value='.$name.'">'.$langs->trans("Disable").'</a>';
} }
@ -244,7 +244,7 @@ while (($file = readdir($handle))!==false)
if ($propale_addon_var_pdf == "$name") if ($propale_addon_var_pdf == "$name")
{ {
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
} }
else else
{ {

View File

@ -110,7 +110,7 @@ if ($handle)
if ($codeclient_addon_var == "$file") if ($codeclient_addon_var == "$file")
{ {
print " <td align=\"center\">\n"; print " <td align=\"center\">\n";
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print "</td>\n <td>&nbsp;</td>\n"; print "</td>\n <td>&nbsp;</td>\n";
} }
else else
@ -164,7 +164,7 @@ if ($handle)
if ($codecompta_addon_var == "$file") if ($codecompta_addon_var == "$file")
{ {
print '<td align="center">'; print '<td align="center">';
print '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0"></a>'; print img_tick();
print '</td><td>&nbsp;</td>'; print '</td><td>&nbsp;</td>';
} }
else else

View File

@ -519,6 +519,17 @@ function img_up($alt = "default")
return '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/1uparrow.png" border="0" alt="'.$alt.'" title="'.$alt.'">'; return '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/1uparrow.png" border="0" alt="'.$alt.'" title="'.$alt.'">';
} }
/**
\brief Affiche logo tick
*/
function img_tick($alt = "default")
{
global $conf,$langs;
if ($alt=="default") $alt=$langs->trans("Active");
return '<img src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/tick.png" border="0" alt="'.$alt.'" title="'.$alt.'">';
}
/** /**
\brief fonction de login \brief fonction de login
\remarks il faut changer le code html dans la fonction pour changer le design \remarks il faut changer le code html dans la fonction pour changer le design

View File

@ -22,7 +22,8 @@
* $Source$ * $Source$
*/ */
/** \file htdocs/user/group/perms.php /**
\file htdocs/user/group/perms.php
\brief Onglet user et permissions de la fiche utilisateur \brief Onglet user et permissions de la fiche utilisateur
\version $Revision$ \version $Revision$
*/ */
@ -35,22 +36,22 @@ $langs->load("users");
$form = new Form($db); $form = new Form($db);
$action=isset($_GET["action"])?$_GET["action"]:$_POST["action"]; $module=isset($_GET["module"])?$_GET["module"]:$_POST["module"];
/** /**
* Actions * Actions
*/ */
if ($_GET["subaction"] == 'addrights' && $user->admin) if ($_GET["action"] == 'addrights' && $user->admin)
{ {
$editgroup = new Usergroup($db,$_GET["id"]); $editgroup = new Usergroup($db,$_GET["id"]);
$editgroup->addrights($_GET["rights"]); $editgroup->addrights($_GET["rights"]);
} }
if ($_GET["subaction"] == 'delrights' && $user->admin) if ($_GET["action"] == 'delrights' && $user->admin)
{ {
$editgroup = new Usergroup($db,$_GET["id"]); $editgroup = new Usergroup($db,$_GET["id"]);
$editgroup->delrights($_GET["rights"]); $editgroup->delrights($_GET["rights"]);
} }
@ -65,120 +66,159 @@ llxHeader('',$langs->trans("Permissions"));
if ($_GET["id"]) if ($_GET["id"])
{ {
$fgroup = new Usergroup($db, $_GET["id"]); $fgroup = new Usergroup($db, $_GET["id"]);
$fgroup->fetch($_GET["id"]); $fgroup->fetch($_GET["id"]);
$fgroup->getrights($_GET["id"]); $fgroup->getrights($_GET["id"]);
/*
* Affichage onglets
*/
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/user/group/fiche.php?id='.$fgroup->id;
$head[$h][1] = $langs->trans("GroupCard");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/user/group/perms.php?id='.$fgroup->id;
$head[$h][1] = $langs->trans("GroupRights");
$hselected=$h;
$h++;
/*
dolibarr_fiche_head($head, $hselected, $langs->trans("Group").": ".$fgroup->nom); * Affichage onglets
*/
// Lecture des droits du groupe $h = 0;
$sql = "SELECT r.id, r.libelle, r.module ";
$sql .= " FROM ".MAIN_DB_PREFIX."rights_def as r";
$sql .= ", ".MAIN_DB_PREFIX."usergroup_rights as ugr";
$sql .= " WHERE ugr.fk_id = r.id AND ugr.fk_usergroup = ".$fgroup->id;
$result=$db->query($sql); $head[$h][0] = DOL_URL_ROOT.'/user/group/fiche.php?id='.$fgroup->id;
$head[$h][1] = $langs->trans("GroupCard");
$perms = array(); $h++;
if ($result) $head[$h][0] = DOL_URL_ROOT.'/user/group/perms.php?id='.$fgroup->id;
$head[$h][1] = $langs->trans("GroupRights");
$hselected=$h;
$h++;
dolibarr_fiche_head($head, $hselected, $langs->trans("Group").": ".$fgroup->nom);
// Lecture des droits groupes
$permsgroup = array();
$sql = "SELECT r.id, r.libelle, r.module ";
$sql .= " FROM ".MAIN_DB_PREFIX."rights_def as r";
$sql .= ", ".MAIN_DB_PREFIX."usergroup_rights as ugr";
$sql .= " WHERE ugr.fk_id = r.id AND ugr.fk_usergroup = ".$fgroup->id;
$result=$db->query($sql);
if ($result)
{ {
$num = $db->num_rows(); $num = $db->num_rows($result);
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$obj = $db->fetch_object($i); $obj = $db->fetch_object($result);
array_push($perms,$obj->id); array_push($permsgroup,$obj->id);
$i++; $i++;
} }
$db->free(); $db->free($result);
} }
else else
{ {
dolibarr_print_error($db); dolibarr_print_error($db);
} }
/*
* Ecran ajout/suppression permission
*/
print '<table width="100%" class="noborder">'; // Charge les modules soumis a permissions
print '<tr class="liste_titre"><td width="24">&nbsp</td><td width="24">&nbsp</td><td>'.$langs->trans("Permissions").'</td><td>'.$langs->trans("Module").'</td></tr>'; $dir = DOL_DOCUMENT_ROOT . "/includes/modules/";
$handle=opendir($dir);
$sql = "SELECT r.id, r.libelle, r.module FROM ".MAIN_DB_PREFIX."rights_def as r ORDER BY r.module, r.id ASC"; $modules = array();
while (($file = readdir($handle))!==false)
if ($db->query($sql))
{ {
$num = $db->num_rows(); if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, strlen($file) - 10) == '.class.php')
$i = 0; {
$var = True; $modName = substr($file, 0, strlen($file) - 10);
while ($i < $num)
{
$obj = $db->fetch_object($i);
if ($oldmod <> $obj->module)
{
$oldmod = $obj->module;
$var = !$var;
}
print '<tr '. $bc[$var].'>';
if ( $user->admin ) if ($modName)
{ {
if (in_array($obj->id, $perms)) include_once("../../includes/modules/$file");
{ $objMod = new $modName($db);
print '<td>&nbsp;</td>'; if ($objMod->rights_class) {
print '<td>'; $modules[$objMod->rights_class]=$modName;
print '<a href="perms.php?id='.$fgroup->id.'&amp;action=perms&amp;subaction=delrights&amp;rights='.$obj->id.'">'.img_edit_remove().'</a>'; //print "modules[".$objMod->rights_class."]=$modName;";
print '</td>'; }
} }
else }
{
print '<td>';
print '<a href="perms.php?id='.$fgroup->id.'&amp;action=perms&amp;subaction=addrights&amp;rights='.$obj->id.'">'.img_edit_add().'</a>';
print '</td>';
print '<td>&nbsp;</td>';
}
print '<td>'.$obj->libelle . '</td><td>'.$obj->module . '</td>';
print '</tr>';
}
else
{
if (in_array($obj->id, $perms))
{
print '<td>&nbsp;</td><td>&nbsp;</td>';
print '<td>'.$obj->libelle . '</td><td>'.$obj->module . '</td>';
print '</tr>';
}
}
$i++;
}
} }
print '</table>';
/*
* Ecran ajout/suppression permission
*/
print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">';
if ($user->admin) print '<td width="24">&nbsp</td>';
print '<td align="center" width="24">&nbsp;</td>';
print '<td>'.$langs->trans("Permissions").'</td>';
print '<td>'.$langs->trans("Module").'</td>';
print '</tr>';
$sql = "SELECT r.id, r.libelle, r.module FROM ".MAIN_DB_PREFIX."rights_def as r ORDER BY r.module, r.id ASC";
$result=$db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$var = True;
while ($i < $num)
{
$obj = $db->fetch_object($result);
if ($oldmod <> $obj->module)
{
$oldmod = $obj->module;
$var = !$var;
print '<tr '. $bc[$var].'>';
// Recupère objet module
$modName=$modules[$obj->module];
$file = $modName.".class.php";
include_once("../../includes/modules/$file");
$objMod = new $modName($db);
$picto=($objMod->picto?$objMod->picto:'generic');
}
else
{
print '<tr '. $bc[$var].'>';
}
if (in_array($obj->id, $permsgroup))
{
// Own permission by group
if ($user->admin)
{
print '<td align="center"><a href="perms.php?id='.$fgroup->id.'&amp;action=delrights&amp;rights='.$obj->id.'">'.img_edit_remove($langs->trans("Remove")).'</a></td>';
}
print '<td align="left" align="center">';
print img_tick();
print '</td>';
}
else
{
// Do not own permission
if ($user->admin)
{
print '<td align="center"><a href="perms.php?id='.$fgroup->id.'&amp;action=addrights&amp;rights='.$obj->id.'">'.img_edit_add($langs->trans("Add")).'</a></td>';
}
print '<td>&nbsp</td>';
}
print '<td>'.$obj->libelle . '</td>';
print '<td>'.img_object('',$picto).' '.$objMod->getName();
print '</td>';
print '</tr>';
$i++;
}
}
print '</table>';
} }
$db->close(); $db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>"); llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");

View File

@ -22,7 +22,8 @@
* $Source$ * $Source$
*/ */
/** \file htdocs/user/perms.php /**
\file htdocs/user/perms.php
\brief Onglet user et permissions de la fiche utilisateur \brief Onglet user et permissions de la fiche utilisateur
\version $Revision$ \version $Revision$
*/ */
@ -35,22 +36,22 @@ $langs->load("users");
$form = new Form($db); $form = new Form($db);
$action=isset($_GET["action"])?$_GET["action"]:$_POST["action"]; $module=isset($_GET["module"])?$_GET["module"]:$_POST["module"];
/** /**
* Actions * Actions
*/ */
if ($_GET["subaction"] == 'addrights' && $user->admin) if ($_GET["action"] == 'addrights' && $user->admin)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->addrights($_GET["rights"]); $edituser->addrights($_GET["rights"]);
} }
if ($_GET["subaction"] == 'delrights' && $user->admin) if ($_GET["action"] == 'delrights' && $user->admin)
{ {
$edituser = new User($db,$_GET["id"]); $edituser = new User($db,$_GET["id"]);
$edituser->delrights($_GET["rights"]); $edituser->delrights($_GET["rights"]);
} }
@ -66,126 +67,196 @@ llxHeader('',$langs->trans("Permissions"));
if ($_GET["id"]) if ($_GET["id"])
{ {
$fuser = new User($db, $_GET["id"]); $fuser = new User($db, $_GET["id"]);
$fuser->fetch(); $fuser->fetch();
$fuser->getrights(); $fuser->getrights();
/* /*
* Affichage onglets * Affichage onglets
*/ */
$h = 0; $h = 0;
$head[$h][0] = DOL_URL_ROOT.'/user/fiche.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/fiche.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("UserCard"); $head[$h][1] = $langs->trans("UserCard");
$h++; $h++;
$head[$h][0] = DOL_URL_ROOT.'/user/perms.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/perms.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("UserRights"); $head[$h][1] = $langs->trans("UserRights");
$hselected=$h; $hselected=$h;
$h++; $h++;
if ($conf->bookmark4u->enabled) if ($conf->bookmark4u->enabled)
{ {
$head[$h][0] = DOL_URL_ROOT.'/user/addon.php?id='.$fuser->id; $head[$h][0] = DOL_URL_ROOT.'/user/addon.php?id='.$fuser->id;
$head[$h][1] = $langs->trans("Bookmark4u"); $head[$h][1] = $langs->trans("Bookmark4u");
$h++; $h++;
} }
dolibarr_fiche_head($head, $hselected, $langs->trans("User").": ".$fuser->fullname);
// Lecture des droits de l'utilisateur dolibarr_fiche_head($head, $hselected, $langs->trans("User").": ".$fuser->fullname);
$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 AND ur.fk_user = ".$fuser->id;
$result=$db->query($sql); // Lecture des droits utilisateurs
$permsuser = array();
$perms = array();
if ($result) $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 AND ur.fk_user = ".$fuser->id;
$result=$db->query($sql);
if ($result)
{ {
$num = $db->num_rows(); $num = $db->num_rows($result);
$i = 0; $i = 0;
while ($i < $num) while ($i < $num)
{ {
$obj = $db->fetch_object($i); $obj = $db->fetch_object($result);
array_push($permsuser,$obj->id);
array_push($perms,$obj->id); $i++;
}
$i++; $db->free($result);
}
$db->free();
} }
else else
{ {
dolibarr_print_error($db); dolibarr_print_error($db);
} }
/* // Lecture des droits groupes
* Ecran ajout/suppression permission $permsgroup = array();
*/
$sql = "SELECT r.id, r.libelle, r.module";
$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 AND gr.fk_usergroup = gu.fk_usergroup AND gu.fk_user = ".$fuser->id;
print '<table width="100%" class="noborder">'; $result=$db->query($sql);
print '<tr class="liste_titre"><td width="24">&nbsp</td><td width="24">&nbsp</td><td>'.$langs->trans("Permissions").'</td><td>'.$langs->trans("Module").'</td></tr>'; if ($result)
$sql = "SELECT r.id, r.libelle, r.module FROM ".MAIN_DB_PREFIX."rights_def as r ORDER BY r.module, r.id ASC";
if ($db->query($sql))
{ {
$num = $db->num_rows(); $num = $db->num_rows($result);
$i = 0; $i = 0;
$var = True; while ($i < $num)
while ($i < $num) {
{ $obj = $db->fetch_object($result);
$obj = $db->fetch_object($i); array_push($permsgroup,$obj->id);
if ($oldmod <> $obj->module) $i++;
{ }
$oldmod = $obj->module; $db->free($result);
$var = !$var;
}
print '<tr '. $bc[$var].'>';
if ( $user->admin )
{
if (in_array($obj->id, $perms))
{
print '<td>&nbsp;</td>';
print '<td>';
print '<a href="perms.php?id='.$fuser->id.'&amp;action=perms&amp;subaction=delrights&amp;rights='.$obj->id.'">'.img_edit_remove().'</a>';
print '</td>';
}
else
{
print '<td>';
print '<a href="perms.php?id='.$fuser->id.'&amp;action=perms&amp;subaction=addrights&amp;rights='.$obj->id.'">'.img_edit_add().'</a>';
print '</td>';
print '<td>&nbsp;</td>';
}
print '<td>'.$obj->libelle . '</td><td>'.$obj->module . '</td>';
print '</tr>';
}
else
{
if (in_array($obj->id, $perms))
{
print '<td>&nbsp;</td><td>&nbsp;</td>';
print '<td>'.$obj->libelle . '</td><td>'.$obj->module . '</td>';
print '</tr>';
}
}
$i++;
}
} }
print '</table>'; else
{
dolibarr_print_error($db);
}
// Charge les modules soumis a permissions
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/";
$handle=opendir($dir);
$modules = array();
while (($file = readdir($handle))!==false)
{
if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, strlen($file) - 10) == '.class.php')
{
$modName = substr($file, 0, strlen($file) - 10);
if ($modName)
{
include_once("../includes/modules/$file");
$objMod = new $modName($db);
if ($objMod->rights_class) {
$modules[$objMod->rights_class]=$modName;
//print "modules[".$objMod->rights_class."]=$modName;";
}
}
}
}
/*
* Ecran ajout/suppression permission
*/
print '<table width="100%" class="noborder">';
print '<tr class="liste_titre">';
if ($user->admin) print '<td width="24">&nbsp</td>';
print '<td align="center" width="24">&nbsp;</td>';
print '<td>'.$langs->trans("Permissions").'</td>';
print '<td>'.$langs->trans("Module").'</td>';
print '</tr>';
$sql = "SELECT r.id, r.libelle, r.module FROM ".MAIN_DB_PREFIX."rights_def as r ORDER BY r.module, r.id ASC";
$result=$db->query($sql);
if ($result)
{
$num = $db->num_rows($result);
$i = 0;
$var = True;
while ($i < $num)
{
$obj = $db->fetch_object($result);
if ($oldmod <> $obj->module)
{
$oldmod = $obj->module;
$var = !$var;
print '<tr '. $bc[$var].'>';
// Recupère objet module
$modName=$modules[$obj->module];
$file = $modName.".class.php";
include_once("../includes/modules/$file");
$objMod = new $modName($db);
$picto=($objMod->picto?$objMod->picto:'generic');
}
else
{
print '<tr '. $bc[$var].'>';
}
if (in_array($obj->id, $permsuser))
{
// Own permission by user
if ($user->admin)
{
print '<td align="center"><a href="perms.php?id='.$fuser->id.'&amp;action=delrights&amp;rights='.$obj->id.'">'.img_edit_remove($langs->trans("Remove")).'</a></td>';
}
print '<td align="left" align="center">';
print img_tick();
print '</td>';
}
else if (in_array($obj->id, $permsgroup)) {
// Own permission by group
if ($user->admin)
{
print '<td>'.$langs->trans("Group").'</td>';
}
print '<td align="left" nowrap>';
print img_tick();
print '</td>';
}
else
{
// Do not own permission
if ($user->admin)
{
print '<td align="center"><a href="perms.php?id='.$fuser->id.'&amp;action=addrights&amp;rights='.$obj->id.'">'.img_edit_add($langs->trans("Add")).'</a></td>';
}
print '<td>&nbsp</td>';
}
print '<td>'.$obj->libelle . '</td>';
print '<td>'.img_object('',$picto).' '.$objMod->getName();
print '</td>';
print '</tr>';
$i++;
}
}
print '</table>';
} }
$db->close(); $db->close();
llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>"); llxFooter("<em>Derni&egrave;re modification $Date$ r&eacute;vision $Revision$</em>");