Ejemplo n.º 1
0
/**
 * Put datasources Encryption type
 */
function sumo_put_datasources_enctype($default = '', $datasource_type = '')
{
    $availables = sumo_get_datasource_enctype($datasource_type);
    $list = "<select name='enctype'>\n";
    if (in_array($default, $availables)) {
        $list .= " <option value='" . $default . "'>" . $default . "</option>\n";
    }
    $list .= " <option value=''></option>\n";
    for ($l = 0; $l < count($availables); $l++) {
        if ($availables[$l] != $default) {
            $list .= " <option value='" . $availables[$l] . "'>\n" . $availables[$l] . "</option>\n";
        }
    }
    $list .= "</select>";
    return $list;
}
Ejemplo n.º 2
0
/**
 * Validate network data
 * 
 * Note: see also sumo_validate_data() in libs/lib.core.php
 */
function sumo_validate_data_network($data = array(), $message = FALSE)
{
    $elements = count($data);
    $err = FALSE;
    if ($elements > 0) {
        for ($d = 0; $d < $elements; $d++) {
            if ($data[$d][2] == 1 || $data[$d][2] == 0 && $data[$d][1]) {
                switch ($data[$d][0]) {
                    case 'id':
                        // INT = 256^4-1
                        if ($data[$d][1] < 1 || $data[$d][1] > 4294967296) {
                            $err = 'W00029C';
                        }
                        break;
                    case 'node_name':
                        if (!preg_match("/^[a-z0-9" . SUMO_REGEXP_ALLOWED_CHARS . "\\-\\_\\.\\=\\&\\/\\\\'\\ ]{4,50}\$/i", $data[$d][1])) {
                            $err = 'W09015C';
                        }
                        break;
                    case 'dsname':
                        if (!preg_match("/^[a-z0-9" . SUMO_REGEXP_ALLOWED_CHARS . "\\-\\_\\.\\=\\&\\/\\\\'\\ ]{4,128}\$/i", $data[$d][1])) {
                            $err = 'W09001C';
                        }
                        break;
                    case 'type':
                        if (!in_array($data[$d][1], sumo_get_available_datasources())) {
                            $err = 'W09002C';
                        }
                        break;
                    case 'port':
                        if ($data[$d][1] < 1 || $data[$d][1] > 65535) {
                            $err = 'W09004C';
                        }
                        break;
                    case 'protocol':
                        $protocols = array('http', 'https');
                        if (!in_array($data[$d][1], $protocols)) {
                            $err = 'W09017C';
                        }
                        break;
                    case 'username':
                        if (!preg_match('/^[a-z0-9]{3,32}$/i', $data[$d][1])) {
                            $err = 'W09005C';
                        }
                        break;
                    case 'password':
                        if (!preg_match('/[a-z0-9\\.\\,\\:\\;\\_\\-\\$\\!\\"\'\\/\\\\£\\%\\&\\(\\)\\=\\?\\^\\+\\*\\ ' . SUMO_REGEXP_ALLOWED_CHARS . ']{3,255}$/i', $data[$d][1])) {
                            $err = 'W09006C';
                        }
                        break;
                    case 'db_name':
                        if (!preg_match('/^[a-z0-9\\_]{3,32}$/i', $data[$d][1])) {
                            $err = 'W09007C';
                        }
                        break;
                    case 'db_table':
                        if (!preg_match('/[a-z0-9\\_]{3,255}$/i', $data[$d][1])) {
                            $err = 'W09008C';
                        }
                        break;
                    case 'enctype':
                        $enctype = sumo_get_datasource_enctype();
                        if (!in_array($data[$d][1], $enctype)) {
                            $err = 'W09018C';
                        }
                        break;
                    case 'ldap_base':
                        if (!preg_match('/^[a-z0-9\\.\\,\\:\\;\\_\\-\\=\\\\/\\+\\*\\ ' . SUMO_REGEXP_ALLOWED_CHARS . ']{4,255}$/i', $data[$d][1])) {
                            $err = 'W00027C';
                        }
                        break;
                    case 'iptype':
                        $type = array('L', 'P');
                        if (!in_array($data[$d][1], $type)) {
                            $err = 'W09010C';
                        }
                        break;
                    case 'host':
                        if (!sumo_validate_ip($data[$d][1], FALSE) && !preg_match('/[a-z0-9\\.\\_\\-]{3,128}$/i', $data[$d][1])) {
                            $err = 'W09011C';
                        }
                        break;
                    case 'hostname':
                        if (!preg_match('/[a-z0-9\\.\\_\\-]{3,128}$/i', $data[$d][1])) {
                            $err = 'W09003C';
                        }
                        break;
                    case 'iprange':
                        if (!sumo_validate_iprange($data[$d][1], FALSE)) {
                            $err = 'W09009C';
                        }
                        break;
                    case 'status':
                        if ($data[$d][1] != 0 && $data[$d][1] != 1) {
                            $err = 'W09012C';
                        }
                        break;
                    case 'sumo_path':
                        if (!preg_match("/^\\/[a-z0-9\\-\\_\\.\\/]{1,253}\\/\$/i", $data[$d][1])) {
                            $err = 'W09014C';
                        }
                        break;
                    default:
                        $err = 'W00019C';
                        break;
                }
                if ($err) {
                    break;
                }
            }
        }
        if ($message) {
            return !$err ? array(TRUE, '') : array(FALSE, sumo_get_message($err));
        } else {
            return !$err ? true : false;
        }
    } else {
        return false;
    }
}