From bb0c7702e7f2698aa73c94c891e74ef7d97e5e97 Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Thu, 12 Jan 2012 05:18:54 -0500 Subject: [PATCH] Allow subqueries of strings in remote API. --- interface/lib/classes/remoting_lib.inc.php | 51 ++++++++++++++++----------------------------------- 1 files changed, 16 insertions(+), 35 deletions(-) diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php index 11b2449..1310737 100644 --- a/interface/lib/classes/remoting_lib.inc.php +++ b/interface/lib/classes/remoting_lib.inc.php @@ -208,7 +208,13 @@ break; case 'INTEGER': - $new_record[$key] = intval($record[$key]); + //* We use + 0 to force the string to be a number as + //* intval return value is too limited on 32bit systems + if(intval($record[$key]) == 2147483647) { + $new_record[$key] = $record[$key] + 0; + } else { + $new_record[$key] = intval($record[$key]); + } break; case 'DOUBLE': @@ -530,15 +536,7 @@ if($field['formtype'] == 'PASSWORD') { $sql_insert_key .= "`$key`, "; if($field['encryption'] == 'CRYPT') { - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - //$salt.=chr(mt_rand(64,126)); - $salt.=$base64_alphabet[mt_rand(0,63)]; - } - $salt.="$"; - // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); + $record[$key] = $app->auth->crypt_password(stripslashes($record[$key])); } else { $record[$key] = md5($record[$key]); } @@ -559,15 +557,7 @@ } else { if($field['formtype'] == 'PASSWORD') { if($field['encryption'] == 'CRYPT') { - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - //$salt.=chr(mt_rand(64,126)); - $salt.=$base64_alphabet[mt_rand(0,63)]; - } - $salt.="$"; - // $salt = substr(md5(time()),0,2); - $record[$key] = crypt($record[$key],$salt); + $record[$key] = $app->auth->crypt_password(stripslashes($record[$key])); } else { $record[$key] = md5($record[$key]); } @@ -655,7 +645,11 @@ foreach($primary_id as $key => $val) { $key = $app->db->quote($key); $val = $app->db->quote($val); - $sql_where .= "$key = '$val' AND "; + if(strpos($val,'%')) { + $sql_where .= "$key like '$val' AND "; + } else { + $sql_where .= "$key = '$val' AND "; + } } $sql_where = substr($sql_where,0,-5); $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$sql_where; @@ -693,14 +687,7 @@ $language = $app->db->quote($params["language"]); $groupid = $app->db->datalogInsert('sys_group', "(name,description,client_id) VALUES ('$username','','$insert_id')", 'groupid'); $groups = $groupid; - - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0,63)]; - } - $salt.="$"; - $password = crypt(stripslashes($password),$salt); + $password = $app->auth->crypt_password(stripslashes($password)); $sql1 = "INSERT INTO sys_user (username,passwort,modules,startmodule,app_theme,typ,active,language,groups,default_group,client_id) VALUES ('$username','$password','$modules','$startmodule','$usertheme','$type','$active','$language',$groups,$groupid,$insert_id)"; $app->db->query($sql1); @@ -711,13 +698,7 @@ $username = $app->db->quote($params["username"]); $clear_password = $app->db->quote($params["password"]); $client_id = intval($client_id); - $salt="$1$"; - $base64_alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - for ($n=0;$n<8;$n++) { - $salt.=$base64_alphabet[mt_rand(0,63)]; - } - $salt.="$"; - $password = crypt(stripslashes($clear_password),$salt); + $password = $app->auth->crypt_password(stripslashes($clear_password)); if ($clear_password) $pwstring = ", passwort = '$password'"; else $pwstring ="" ; $sql = "UPDATE sys_user set username = '$username' $pwstring WHERE client_id = $client_id"; $app->db->query($sql); -- Gitblit v1.9.1