diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-03-22 13:20:00 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-03-22 13:20:00 +0000 |
commit | b48e6bc8762854b59515c18a3358700d2d07c2b1 (patch) | |
tree | 5a7c36900961c7fe5a6a80344d79041df5936e6b | |
parent | 87ac457a9eb1e74bd7d45852e719e83b1b76cebc (diff) | |
download | wordpress-mu-b48e6bc8762854b59515c18a3358700d2d07c2b1.tar.gz wordpress-mu-b48e6bc8762854b59515c18a3358700d2d07c2b1.tar.xz wordpress-mu-b48e6bc8762854b59515c18a3358700d2d07c2b1.zip |
WP Merge to rev 5081
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@931 7be80a69-a1ef-0310-a953-fb0f7c49ff36
-rw-r--r-- | wp-includes/l10n.php | 15 | ||||
-rw-r--r-- | wp-includes/link-template.php | 1 | ||||
-rw-r--r-- | xmlrpc.php | 24 |
3 files changed, 34 insertions, 6 deletions
diff --git a/wp-includes/l10n.php b/wp-includes/l10n.php index 4a0a640..0847ea3 100644 --- a/wp-includes/l10n.php +++ b/wp-includes/l10n.php @@ -37,6 +37,21 @@ function _e($text, $domain = 'default') { echo $text; } +function _c($text, $domain = 'default') { + global $l10n; + + if ( isset($l10n[$domain]) ) + $whole = apply_filters('gettext', $l10n[$domain]->translate($text), $text); + else + $whole = $text; + + $trans = explode('|', $whole, 2); + if ( isset( $trans[1] ) ) + return $trans[1]; + else + return $trans[0]; +} + // Return the plural form. function __ngettext($single, $plural, $number, $domain = 'default') { global $l10n; diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index 7905311..873bca5 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -117,6 +117,7 @@ function post_permalink($post_id = 0, $mode = '') { // $mode legacy function get_page_link($id = false) { global $post; + $id = (int) $id; if ( !$id ) $id = $post->ID; @@ -856,6 +856,9 @@ class wp_xmlrpc_server extends IXR_Server { extract($actual_post); + if ( ('publish' == $post_status) && !current_user_can('publish_posts') ) + return new IXR_Error(401, 'Sorry, you do not have the right to publish this post.'); + $post_title = xmlrpc_getposttitle($content); $post_category = xmlrpc_getpostcategory($content); $post_content = xmlrpc_removepostdata($content); @@ -1082,12 +1085,6 @@ class wp_xmlrpc_server extends IXR_Server { } set_current_user(0, $user_login); - if ( !current_user_can('edit_post', $post_ID) ) - return new IXR_Error(401, 'Sorry, you can not edit this post.'); - - $postdata = wp_get_single_post($post_ID, ARRAY_A); - extract($postdata); - $this->escape($postdata); // The post_type defaults to post, but could also be page. $post_type = "post"; @@ -1098,6 +1095,14 @@ class wp_xmlrpc_server extends IXR_Server { $post_type = "page"; } + // Edit page caps are checked in editPage. Just check post here. + if ( ( 'post' == $post_type ) && !current_user_can('edit_post', $post_ID) ) + return new IXR_Error(401, 'Sorry, you can not edit this post.'); + + $postdata = wp_get_single_post($post_ID, ARRAY_A); + extract($postdata); + $this->escape($postdata); + // Let WordPress manage slug if none was provided. $post_name = ""; if(!empty($content_struct["wp_slug"])) { @@ -1169,6 +1174,13 @@ class wp_xmlrpc_server extends IXR_Server { $post_more = $content_struct['mt_text_more']; $post_status = $publish ? 'publish' : 'draft'; + if ( ('publish' == $post_status) ) { + if ( ( 'page' == $post_type ) && !current_user_can('publish_pages') ) + return new IXR_Error(401, 'Sorry, you do not have the right to publish this page.'); + else if ( !current_user_can('publish_posts') ) + return new IXR_Error(401, 'Sorry, you do not have the right to publish this post.'); + } + if ($post_more) { $post_content = $post_content . "\n<!--more-->\n" . $post_more; } |