added Emmanuel Frecon's fix to create directories in mw.newMediaObject, removed some useless (and/or potentially dangerous) debug strings
git-svn-id: http://svn.automattic.com/wordpress/trunk@1580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
add6cea9f1
commit
9611463657
39
xmlrpc.php
39
xmlrpc.php
|
@ -34,6 +34,7 @@ function starify($string) {
|
||||||
|
|
||||||
logIO("I", $HTTP_RAW_POST_DATA);
|
logIO("I", $HTTP_RAW_POST_DATA);
|
||||||
|
|
||||||
|
|
||||||
function printr($var, $do_not_echo = false) {
|
function printr($var, $do_not_echo = false) {
|
||||||
// from php.net/print_r user contributed notes
|
// from php.net/print_r user contributed notes
|
||||||
ob_start();
|
ob_start();
|
||||||
|
@ -46,6 +47,30 @@ function printr($var, $do_not_echo = false) {
|
||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function mkdir_p($target) {
|
||||||
|
// from php.net/mkdir user contributed notes
|
||||||
|
if (file_exists($target)) {
|
||||||
|
if (!is_dir($target)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attempting to create the directory may clutter up our display.
|
||||||
|
if (@mkdir($target)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the above failed, attempt to create the parent node, then try again.
|
||||||
|
if (mkdir_p(dirname($target))) {
|
||||||
|
return mkdir_p($target);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class wp_xmlrpc_server extends IXR_Server {
|
class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
function wp_xmlrpc_server() {
|
function wp_xmlrpc_server() {
|
||||||
|
@ -84,7 +109,7 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
function login_pass_ok($user_login, $user_pass) {
|
function login_pass_ok($user_login, $user_pass) {
|
||||||
if (!user_pass_ok($user_login, $user_pass)) {
|
if (!user_pass_ok($user_login, $user_pass)) {
|
||||||
$this->error = new IXR_Error(403, 'Bad login/pass combination.'.$user_login);
|
$this->error = new IXR_Error(403, 'Bad login/pass combination.');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -615,7 +640,7 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
'userid' => $postdata['post_author'],
|
'userid' => $postdata['post_author'],
|
||||||
'postid' => $postdata['ID'],
|
'postid' => $postdata['ID'],
|
||||||
'content' => $postdata['post_content'],
|
'content' => $postdata['post_content'],
|
||||||
'permalink' => $link,
|
'permaLink' => $link,
|
||||||
'categories' => $categories,
|
'categories' => $categories,
|
||||||
'mt_excerpt' => $postdata['post_excerpt'],
|
'mt_excerpt' => $postdata['post_excerpt'],
|
||||||
'mt_allow_comments' => $allow_comments,
|
'mt_allow_comments' => $allow_comments,
|
||||||
|
@ -758,7 +783,7 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
if(get_settings('fileupload_minlevel') > $user_data->user_level) {
|
if(get_settings('fileupload_minlevel') > $user_data->user_level) {
|
||||||
// User has not enough privileges
|
// User has not enough privileges
|
||||||
logIO('O', '(MW) Not enough privilege: user level too low');
|
logIO('O', '(MW) Not enough privilege: user level too low');
|
||||||
$this->error = new IXR_Error(401, 'You are not allowed to upload files to this site.sdff'.$user_data->user_level);
|
$this->error = new IXR_Error(401, 'You are not allowed to upload files to this site.');
|
||||||
return $this->error;
|
return $this->error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -776,6 +801,8 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
$localpath = $file_realpath.$prefix.$name;
|
$localpath = $file_realpath.$prefix.$name;
|
||||||
$url = $file_url.$prefix.$name;
|
$url = $file_url.$prefix.$name;
|
||||||
|
|
||||||
|
if (mkdir_p(dirname($localpath))) {
|
||||||
|
|
||||||
/* encode & write data (binary) */
|
/* encode & write data (binary) */
|
||||||
$ifp = fopen($localpath, 'wb');
|
$ifp = fopen($localpath, 'wb');
|
||||||
$success = fwrite($ifp, $bits);
|
$success = fwrite($ifp, $bits);
|
||||||
|
@ -787,7 +814,11 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
return $resp;
|
return $resp;
|
||||||
} else {
|
} else {
|
||||||
logIO('O', '(MW) Could not write file '.$name.' to '.$localpath);
|
logIO('O', '(MW) Could not write file '.$name.' to '.$localpath);
|
||||||
return new IXR_Error(500, 'Could not write file '.$name.' to '.$localpath);
|
return new IXR_Error(500, 'Could not write file '.$name);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return new IXR_Error(500, 'Could not create directories for '.$name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue