Correzioni minori su permessi

This commit is contained in:
Dasc3er 2020-10-30 17:24:13 +01:00
parent b7316eb837
commit 16be9980a7
2 changed files with 21 additions and 29 deletions

View File

@ -92,7 +92,7 @@ if (!empty($utenti)) {
// Disabilitazione token API, se diverso da id_utente #1 (admin)
$token = $dbo->fetchOne('SELECT `enabled` FROM `zz_tokens` WHERE `id_utente` = '.prepare($utente['id']).'')['enabled'];
if ($utente['id'] == '1') {
echo '
<div data-toggle="tooltip" class="tip" title="'.tr("Non è possibile gestire l'accesso API per l'utente admin").'" ><span class="btn btn-xs btn-default disabled">
@ -170,14 +170,14 @@ if ($record['nome'] != 'Amministratori') {
$moduli = Modules::getHierarchy();
$permissions = [
$permessi_disponibili = [
'-' => tr('Nessun permesso'),
'r' => tr('Sola lettura'),
'rw' => tr('Lettura e scrittura'),
];
for ($m = 0; $m < count($moduli); ++$m) {
echo menuSelection($moduli[$m], $id_record, -1, array_keys($permissions), array_values($permissions));
echo menuSelection($moduli[$m], $id_record, -1, $permessi_disponibili);
}
echo '

View File

@ -19,46 +19,38 @@
include_once __DIR__.'/../../core.php';
function menuSelection($element, $group_id, $depth, $perms_values, $perms_names)
function menuSelection($element, $group_id, $depth, $permessi_disponibili)
{
$dbo = database();
++$depth;
$name = $element['title'];
$submenus = $element['all_children'];
if (!empty($submenus)) {
$temp = '';
foreach ($submenus as $submenu) {
$temp .= menuSelection($submenu, $group_id, $depth, $perms_values, $perms_names);
}
}
$result .= '
$result = '
<tr>
<td>'.str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $depth).$name.'</td>
<td>'.str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', $depth).$element['title'].'</td>
<td>
<select name="permesso_'.$element['id'].'" id="permesso_'.$element['id'].'" class="form-control superselect openstamanager-input select-input" onchange="update_permissions('.$element['id'].', $(this).find(\'option:selected\').val())">';
// Permessi
$rsp = $dbo->fetchArray('SELECT permessi FROM zz_permissions WHERE idgruppo='.prepare($group_id).' AND idmodule='.prepare($element['id']));
if (count($rsp) == 0) {
$permessi = '-';
} else {
$permessi = $rsp[0]['permessi'];
}
// Permessi impostati per il gruppo
$permesso_salvato = $dbo->fetchOne('SELECT permessi FROM zz_permissions WHERE idgruppo = '.prepare($group_id).' AND idmodule = '.prepare($element['id']));
$permessi = $permesso_salvato ? $permesso_salvato['permessi'] : '-';
foreach ($permessi_disponibili as $id => $nome){
$attr = ($id == $permessi) ? ' selected="selected"' : '';
for ($i = 0; $i < count($perms_values); ++$i) {
$attr = ($perms_values[$i] == $permessi) ? ' selected="selected"' : '';
$result .= '
<option value="'.$perms_values[$i].'" '.$attr.'>'.$perms_names[$i].'</option>';
<option value="'.$id.'" '.$attr.'>'.$nome.'</option>';
}
$result .= '
</select>
</td>
</tr>
'.$temp;
</tr>';
$submenus = $element['all_children'];
if (!empty($submenus)) {
foreach ($submenus as $submenu) {
$result .= menuSelection($submenu, $group_id, $depth, $permessi_disponibili, $perms_names);
}
}
return $result;
}