$_REQUEST['role']['Name']));
if ($role_with_my_name and
(($rid and ($role_with_my_name->Id() != $rid)) or !$rid)
) {
$error_message = 'There already exists a role with this Name
';
unset($_REQUEST['redirect']);
return;
}
} else {
$error_message = 'Role name is required
';
unset($_REQUEST['redirect']);
return;
}
$changes = $dbRole->changes($_REQUEST['role']);
if (count($changes)) {
if (!$dbRole->save($changes)) {
$error_message .= $dbRole->get_last_error().'
';
unset($_REQUEST['redirect']);
return;
}
}
# Save group permissions
if (isset($_POST['group_permission'])) {
foreach (ZM\Group::find() as $g) {
$permission = $dbRole->Group_Permission($g->Id());
$new_permission = isset($_POST['group_permission'][$g->Id()]) ? $_POST['group_permission'][$g->Id()] : 'Inherit';
if ($permission->Permission() != $new_permission) {
$permission->RoleId($dbRole->Id());
$permission->save(array('Permission'=>$new_permission));
}
}
}
# Save monitor permissions
if (isset($_POST['monitor_permission'])) {
foreach (ZM\Monitor::find(['Deleted'=>false]) as $m) {
if (isset($_POST['monitor_permission'][$m->Id()])) {
$permission = $dbRole->Monitor_Permission($m->Id());
$new_permission = $_POST['monitor_permission'][$m->Id()];
if ($permission->Permission() != $new_permission) {
$permission->RoleId($dbRole->Id());
$permission->save(['Permission'=>$new_permission]);
}
}
}
}
} // end if $action == Save
?>