Fix permission vision

This commit is contained in:
Laurent Destailleur 2012-03-23 00:27:12 +01:00
parent 6b2c141083
commit ebaad9ded8

View File

@ -46,14 +46,14 @@ if (! empty($conf->global->MAIN_USE_ADVANCED_PERMS))
{ {
$canreaduser=($user->admin || ($user->rights->user->user->lire && $user->rights->user->user_advance->readperms)); $canreaduser=($user->admin || ($user->rights->user->user->lire && $user->rights->user->user_advance->readperms));
$caneditselfperms=($user->id == $id && $user->rights->user->self_advance->writeperms); $caneditselfperms=($user->id == $id && $user->rights->user->self_advance->writeperms);
$caneditperms = '('.$caneditperms.' || '.$caneditselfperms.')'; $caneditperms = (($caneditperms || $caneditselfperms) ? 0 : 1);
} }
// Security check // Security check
$socid=0; $socid=0;
if ($user->societe_id > 0) $socid = $user->societe_id; if ($user->societe_id > 0) $socid = $user->societe_id;
$feature2 = (($socid && $user->rights->user->self->creer)?'':'user'); $feature2 = (($socid && $user->rights->user->self->creer)?'':'user');
if ($user->id == $id) // A user can always read its own card if ($user->id == $id && (empty($conf->global->MAIN_USE_ADVANCED_PERMS) || $user->rights->user->self_advance->readperms)) // A user can always read its own card if not advanced perms enabled, or if he has advanced perms
{ {
$feature2=''; $feature2='';
$canreaduser=1; $canreaduser=1;
@ -343,9 +343,8 @@ if ($result)
print '</td>'; print '</td>';
// Permission and tick // Permission and tick
if ($fuser->admin && $objMod->rights_admin_allowed) if ($fuser->admin && $objMod->rights_admin_allowed) // Permission own because admin
{ {
// Permission own because admin
if ($caneditperms) if ($caneditperms)
{ {
print '<td align="center">'.img_picto($langs->trans("Administrator"),'star').'</td>'; print '<td align="center">'.img_picto($langs->trans("Administrator"),'star').'</td>';
@ -354,9 +353,8 @@ if ($result)
print img_picto($langs->trans("Active"),'tick'); print img_picto($langs->trans("Active"),'tick');
print '</td>'; print '</td>';
} }
else if (in_array($obj->id, $permsuser)) else if (in_array($obj->id, $permsuser)) // Permission own by user
{ {
// Permission own by user
if ($caneditperms) if ($caneditperms)
{ {
print '<td align="center"><a href="perms.php?id='.$fuser->id.'&amp;action=delrights&amp;rights='.$obj->id.'#'.$objMod->getName().'">'.img_edit_remove($langs->trans("Remove")).'</a></td>'; print '<td align="center"><a href="perms.php?id='.$fuser->id.'&amp;action=delrights&amp;rights='.$obj->id.'#'.$objMod->getName().'">'.img_edit_remove($langs->trans("Remove")).'</a></td>';
@ -365,8 +363,8 @@ if ($result)
print img_picto($langs->trans("Active"),'tick'); print img_picto($langs->trans("Active"),'tick');
print '</td>'; print '</td>';
} }
else if (in_array($obj->id, $permsgroup)) { else if (in_array($obj->id, $permsgroup)) // Permission own by group
// Permission own by group {
if ($caneditperms) if ($caneditperms)
{ {
print '<td align="center">'; print '<td align="center">';
@ -399,7 +397,8 @@ if ($result)
else dol_print_error($db); else dol_print_error($db);
print '</table>'; print '</table>';
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>