function validate_form() { $error = array(); $NumberTickets = clean_int($_POST['numberoftickets']); $MaxMb = clean_number($_POST['MaxMb']); $Max_Mb = clean_number($_POST['Max_Mb']); $MaxTime = clean_int($_POST['MaxTime']); $Max_Time = clean_int($_POST['Max_Time']); $error[] = validate_int($NumberTickets); if (!\Grase\Validate::numericLimit($MaxMb)) { $error[] = sprintf(T_("Invalid value '%s' for Data Limit"), $MaxMb); } if (!\Grase\Validate::numericLimit($Max_Mb)) { $error[] = sprintf(T_("Invalid value '%s' for Data Limit"), $Max_Mb); } if (!\Grase\Validate::numericLimit($MaxTime)) { $error[] = sprintf(T_("Invalid value '%s' for Time Limit"), $MaxTime); } if (!\Grase\Validate::numericLimit($Max_Time)) { $error[] = sprintf(T_("Invalid value '%s' for Time Limit"), $Max_Time); } if ((is_numeric($Max_Mb) || $_POST['Max_Mb'] == 'inherit') && is_numeric($MaxMb)) { $error[] = T_("Only set one Data limit field"); } if ((is_numeric($Max_Time) || $_POST['Max_Time'] == 'inherit') && is_numeric($MaxTime)) { $error[] = T_("Only set one Time limit field"); } // 1000 seems like a reasonable number, if someone wants it increased we can now that we can delete batches if ($NumberTickets > 1000) { $error[] = T_("Max of 1000 tickets per batch"); } $error[] = validate_group($_POST['Group']); return array_filter($error); }
function validate_form($userDetails, $type = 'User') { $error = array(); if ($type == 'User') { if (!DatabaseFunctions::getInstance()->checkUniqueUsername($userDetails['Username'])) { $error[] = T_("Username already taken"); } if (!$userDetails['Username'] || !$userDetails['Password']) { $error[] = T_("Username and Password are both Required"); } } if ($type == 'Computer') { if (!DatabaseFunctions::getInstance()->checkUniqueUsername($userDetails['mac'])) { $error[] = T_("MAC Address already has an account"); } if (!\Grase\Validate::MACAddress($userDetails['mac'])) { $error[] = T_("MAC Address not in correct format"); } } if (!\Grase\Validate::numericLimit($userDetails['MaxMb']) && $userDetails['MaxMb'] != '') { $error[] = sprintf(T_("Invalid value '%s' for 1 Data Limit"), $userDetails['MaxMb']); } if (!\Grase\Validate::numericLimit($userDetails['Max_Mb']) && $userDetails['Max_Mb'] != 'inherit') { $error[] = sprintf(T_("Invalid value '%s' for Data Limit"), $userDetails['Max_Mb']); } if (!\Grase\Validate::numericLimit($userDetails['MaxTime']) && $userDetails['MaxTime'] != '') { $error[] = sprintf(T_("Invalid value '%s' for Time Limit"), $userDetails['MaxTime']); } if (!\Grase\Validate::numericLimit($userDetails['Max_Time']) && $userDetails['Max_Time'] != 'inherit') { $error[] = sprintf(T_("Invalid value '%s' for Time Limit"), $userDetails['Max_Time']); } if ((is_numeric($userDetails['Max_Mb']) || $userDetails['Max_Mb'] == 'inherit') && is_numeric($userDetails['MaxMb'])) { $error[] = T_("Only set one Data limit field"); } if ((is_numeric($userDetails['Max_Time']) || $userDetails['Max_Time'] == 'inherit') && is_numeric($userDetails['MaxTime'])) { $error[] = T_("Only set one Time limit field"); } $error[] = validate_group($userDetails['Group']); return array_filter($error); }
} $PAGE_GROUPS = get_viewed_groups(PERM_READ_WRITE, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_WRITE, $PAGE_GROUPS['selected'], $params); validate_group($PAGE_GROUPS, $PAGE_HOSTS, false); break; case 5: $options = array('only_current_node'); if (isset($_REQUEST['form']) || isset($_REQUEST['massupdate'])) { array_push($options, 'do_not_select_if_empty'); } foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_WRITE, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_WRITE, $PAGE_GROUPS['selected'], $params); validate_group($PAGE_GROUPS, $PAGE_HOSTS, false); break; case 6: $options = array('only_current_node', 'allow_all'); foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_WRITE, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_WRITE, $PAGE_GROUPS['selected'], $params); validate_group_with_host($PAGE_GROUPS, $PAGE_HOSTS, false); break; default: $options = array('only_current_node'); if (isset($_REQUEST['form']) || isset($_REQUEST['massupdate'])) { array_push($options, 'do_not_select_if_empty'); }
update_profile('web.overview.type', $_REQUEST['type'], PROFILE_TYPE_INT); $options = array('allow_all_hosts', 'monitored_hosts', 'with_monitored_items'); if ($_REQUEST['type'] == SHOW_TRIGGERS) { array_push($options, 'with_monitored_triggers'); } if (!$ZBX_WITH_ALL_NODES) { array_push($options, 'only_current_node'); } //SDI($_REQUEST['groupid']); $params = array(); foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_ONLY, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_ONLY, $PAGE_GROUPS['selected'], $params); validate_group($PAGE_GROUPS, $PAGE_HOSTS); $form = new CForm(); $form->setMethod('get'); $available_groups = $PAGE_GROUPS['groupids']; $cmbGroups = new CComboBox('groupid', $PAGE_GROUPS['selected'], 'javascript: submit();'); foreach ($PAGE_GROUPS['groups'] as $groupid => $name) { $cmbGroups->addItem($groupid, get_node_name_by_elid($groupid) . $name); } $form->addItem(array(S_GROUP . SPACE, $cmbGroups, SPACE)); $cmbType = new CComboBox('type', $_REQUEST['type'], 'submit()'); $cmbType->addItem(SHOW_TRIGGERS, S_TRIGGERS); $cmbType->addItem(SHOW_DATA, S_DATA); $form->addItem(array(S_TYPE . SPACE, $cmbType)); $help = new CHelp('web.view.php', 'right'); $help_table = new CTableInfo(); $help_table->setAttribute('style', 'width: 200px');
// VAR TYPE OPTIONAL FLAGS VALIDATION EXCEPTION $fields = array('groupid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL), 'hostid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, NULL), 'prof_type' => array(T_ZBX_INT, O_OPT, P_SYS, null, NULL)); check_fields($fields); validate_sort_and_sortorder('h.host', ZBX_SORT_UP); $reset_hostid = isset($_REQUEST['hostid']) ? false : true; $params = array(); $options = array('allow_all_hosts', 'real_hosts'); if (!$ZBX_WITH_ALL_NODES) { array_push($options, 'only_current_node'); } foreach ($options as $option) { $params[$option] = 1; } $PAGE_GROUPS = get_viewed_groups(PERM_READ_ONLY, $params); $PAGE_HOSTS = get_viewed_hosts(PERM_READ_ONLY, $PAGE_GROUPS['selected'], $params); validate_group($PAGE_GROUPS, $PAGE_HOSTS, $reset_hostid); $r_form = new CForm(); $r_form->setMethod('get'); /// +++ create "Host Groups" combobox +++ /// $cmbGroups = new CComboBox('groupid', $PAGE_GROUPS['selected'], 'javascript: submit();'); $cmbGroups->addItem(0, S_ALL_S); //select groups where hosts with profiles exists $sql = 'SELECT hg.groupid, g.name ' . ' FROM hosts_profiles p, hosts_profiles_ext pe, hosts_groups hg, groups g' . ' WHERE (hg.hostid=p.hostid OR hg.hostid=pe.hostid) ' . ' AND g.groupid=hg.groupid ' . ' AND ' . DBcondition('hg.groupid', $PAGE_GROUPS['groupids']) . ' GROUP BY hg.groupid'; $result = DBselect($sql); while ($row = DBfetch($result)) { $cmbGroups->addItem($row['groupid'], get_node_name_by_elid($row['groupid']) . $row['name']); } $r_form->addItem(array(S_GROUP . SPACE, $cmbGroups)); /// --- --- /// /// +++ find out what type of profile selected group hosts contains +++ /// /// if they contain only one type profile, combobox with Profile types won't appear ///
if (isset($_POST['updateusersubmit'])) { // Process form for changed items and do updates $addMb = clean_number($_POST['Add_Mb']); $maxMb = clean_number($_POST['MaxMb']); $addTime = clean_number($_POST['Add_Time']); $maxTime = clean_number($_POST['MaxTime']); // Update password if (\Grase\Clean::text($_POST['Password']) && \Grase\Clean::text($_POST['Password']) != $user['Password']) { DatabaseFunctions::getInstance()->setUserPassword($username, \Grase\Clean::text($_POST['Password'])); // TODO: Check return for success $success[] = T_("Password Changed"); AdminLog::getInstance()->log("Password changed for {$username}"); } // Update group if changed if (\Grase\Clean::text($_POST['Group']) && \Grase\Clean::text($_POST['Group']) != $user['Group']) { $temperror = validate_group($_POST['Group']); if (array_filter($temperror)) { $error = array_merge($error, $temperror); } else { DatabaseFunctions::getInstance()->setUserGroup($username, \Grase\Clean::text($_POST['Group'])); DatabaseFunctions::getInstance()->setUserExpiry($username, expiry_for_group(DatabaseFunctions::getInstance()->getUserGroup($username))); // TODO: Check return for success $success[] = T_("Group Changed"); AdminLog::getInstance()->log("Group changed for {$username}"); } } // Update comment if changed if (\Grase\Clean::text($_POST['Comment']) != $user['Comment']) { DatabaseFunctions::getInstance()->setUserComment($username, \Grase\Clean::text($_POST['Comment'])); // TODO: Check return for success $success[] = T_("Comment Changed");
/** * Controller for validation of zones * * @param string $zone (blog, vm or group) * @return boolean */ function validate_zone($zone) { switch ($zone) { case 'blog': return validate_blog(); break; case 'group': return validate_group(); break; case 'vm': return validate_vm(); break; } return false; }