diff --git a/wp-admin/includes/dashboard.php b/wp-admin/includes/dashboard.php
index 98c6224314..9cb8bb4e59 100644
--- a/wp-admin/includes/dashboard.php
+++ b/wp-admin/includes/dashboard.php
@@ -22,7 +22,7 @@ function wp_dashboard_setup() {
/* Register Widgets and Controls */
// Recent Comments Widget
- if ( $mod_comments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'") ) {
+ if ( current_user_can( 'moderate_comments' ) && $mod_comments = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'") ) {
$notice = sprintf( __ngettext( '%d comment awaiting moderation', '%d comments awaiting moderation', $mod_comments ), $mod_comments );
$notice = "$notice";
} else {
@@ -127,7 +127,13 @@ function wp_dashboard_setup() {
do_action( 'wp_dashboard_setup' );
// Hard code the sidebar's widgets and order
- $dashboard_widgets = array( 'dashboard_recent_comments', 'dashboard_incoming_links', 'dashboard_primary', 'dashboard_plugins', 'dashboard_secondary' );
+ $dashboard_widgets = array();
+ $dashboard_widgets[] = 'dashboard_recent_comments';
+ $dashboard_widgets[] = 'dashboard_incoming_links';
+ $dashboard_widgets[] = 'dashboard_primary';
+ if ( current_user_can( 'activate_plugins' ) )
+ $dashboard_widgets[] = 'dashboard_plugins';
+ $dashboard_widgets[] = 'dashboard_secondary';
// Filter widget order
$dashboard_widgets = apply_filters( 'wp_dashboard_widgets', $dashboard_widgets );
diff --git a/wp-admin/index.php b/wp-admin/index.php
index 97d6b4d872..fb05ba2335 100644
--- a/wp-admin/index.php
+++ b/wp-admin/index.php
@@ -39,7 +39,16 @@ $today = current_time('mysql', 1);
-
+
+
+
+
+
+
+
+
+
+
publish) ) {
- $post_type_texts[] = '
'.sprintf( __ngettext( '%s post', '%s posts', $num_posts->publish ), number_format_i18n( $num_posts->publish ) ).'';
+if ( !empty($num_posts->publish) ) { // with feeds, anyone can tell how many posts there are. Just unlink if !current_user_can
+ $post_text = sprintf( __ngettext( '%s post', '%s posts', $num_posts->publish ), number_format_i18n( $num_posts->publish ) );
+ $post_type_texts[] = $can_edit_posts ? "
$post_text" : $post_text;
}
-if ( !empty($num_pages->publish) ) {
+if ( $can_edit_pages && !empty($num_pages->publish) ) { // how many pages is not exposed in feeds. Don't show if !current_user_can
$post_type_texts[] = '
'.sprintf( __ngettext( '%s page', '%s pages', $num_pages->publish ), number_format_i18n( $num_pages->publish ) ).'';
}
-if ( !empty($num_posts->draft) ) {
+if ( $can_edit_posts && !empty($num_posts->draft) ) {
$post_type_texts[] = '
'.sprintf( __ngettext( '%s draft', '%s drafts', $num_posts->draft ), number_format_i18n( $num_posts->draft ) ).'';
}
-if ( !empty($num_posts->future) ) {
+if ( $can_edit_posts && !empty($num_posts->future) ) {
$post_type_texts[] = '
'.sprintf( __ngettext( '%s scheduled post', '%s scheduled posts', $num_posts->future ), number_format_i18n( $num_posts->future ) ).'';
}
-$cats_text = '
'.sprintf( __ngettext( '%s category', '%s categories', $num_cats ), number_format_i18n( $num_cats ) ).'';
-$tags_text = '
'.sprintf( __ngettext( '%s tag', '%s tags', $num_tags ), number_format_i18n( $num_tags ) ).'';
+$cats_text = sprintf( __ngettext( '%s category', '%s categories', $num_cats ), number_format_i18n( $num_cats ) );
+$tags_text = sprintf( __ngettext( '%s tag', '%s tags', $num_tags ), number_format_i18n( $num_tags ) );
+if ( current_user_can( 'manage_categories' ) ) {
+ $cats_text = "
$cats_text";
+ $tags_text = "
$tags_text";
+}
$post_type_text = implode(', ', $post_type_texts);
@@ -79,8 +93,17 @@ $ct = current_theme_info();
$sidebars_widgets = wp_get_sidebars_widgets();
$num_widgets = array_reduce( $sidebars_widgets, create_function( '$prev, $curr', 'return $prev+count($curr);' ) );
$widgets_text = sprintf( __ngettext( '%d widget', '%d widgets', $num_widgets ), $num_widgets );
+if ( $can_switch_themes = current_user_can( 'switch_themes' ) )
+ $widgets_text = "
$widgets_text";
?>
-
title, "$widgets_text" ); ?>
+
+ title, $widgets_text ); ?>
+
+
+
+
+
+