Fixed problem with delete maps when user is admin and have all permisions and other user have RM and RW and delete with RW rule

This commit is contained in:
m-lopez-f 2015-02-10 14:54:42 +01:00
parent 85eda328a4
commit c28fd1f4d8

View File

@ -39,28 +39,27 @@ if (is_ajax()) {
$delete_networkmaps = (bool) get_parameter('delete_networkmaps'); $delete_networkmaps = (bool) get_parameter('delete_networkmaps');
if ($delete_networkmaps) { if ($delete_networkmaps) {
if ( check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM") ) { if ( check_acl ($config['id_user'], 0, "RW") || check_acl ($config['id_user'], 0, "RM") ) {
if (check_acl ($config['id_user'], 0, "RW")) {
$result = false;
$results = array();
$ids_networkmap = (array) get_parameter ('ids_networkmap');
foreach ($ids_networkmap as $id) {
$results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id);
}
echo json_encode($results);
return;
}else{
if (check_acl ($config['id_user'], 0, "RM")) { if (check_acl ($config['id_user'], 0, "RM")) {
$result = false; $result = false;
$results = array(); $results = array();
$ids_networkmap = (array) get_parameter ('ids_networkmap'); $ids_networkmap = (array) get_parameter ('ids_networkmap');
foreach ($ids_networkmap as $id) { foreach ($ids_networkmap as $id) {
$results[$id] = (bool) networkmap_delete_networkmap($id); $results[$id] = (bool) networkmap_delete_networkmap($id);
} }
echo json_encode($results); echo json_encode($results);
return; return;
} }
else{
if (check_acl ($config['id_user'], 0, "RW")) {
$result = false;
$results = array();
$ids_networkmap = (array) get_parameter ('ids_networkmap');
foreach ($ids_networkmap as $id) {
$results[$id] = (bool) networkmap_delete_user_networkmap($config['id_user'], $id);
}
echo json_encode($results);
return;
}
} }
}else{ }else{
db_pandora_audit("ACL Violation", db_pandora_audit("ACL Violation",
@ -69,7 +68,6 @@ if (is_ajax()) {
return; return;
} }
} }
return; return;
} }
@ -82,19 +80,19 @@ $id_networkmap = get_parameter ('id_networkmap', 0);
$delete_networkmap = get_parameter ('delete_networkmap', 0); $delete_networkmap = get_parameter ('delete_networkmap', 0);
if ($delete_networkmap) { if ($delete_networkmap) {
if (check_acl ($config['id_user'], 0, "RW")) { if (is_user_admin ($config['id_user'])){
$result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap);
}else{
if (check_acl ($config['id_user'], 0, "RM")) {
$result = networkmap_delete_networkmap($id_networkmap); $result = networkmap_delete_networkmap($id_networkmap);
} }
elseif (check_acl ($config['id_user'], 0, "RM")) {
$result = networkmap_delete_networkmap($id_networkmap);
}elseif (check_acl ($config['id_user'], 0, "RW")) {
$result = networkmap_delete_user_networkmap($config['id_user'], $id_networkmap);
} }
$message = ui_print_result_message ($result, $message = ui_print_result_message ($result,
__('Network map deleted successfully'), __('Network map deleted successfully'),
__('Could not delete network map'), '', true); __('Could not delete network map'), '', true);
echo $message; echo $message;
$id_networkmap = 0; $id_networkmap = 0;
} }