<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[15717] trunk/wp-admin/includes: Fix user edit urls for network admin</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/15717">15717</a></dd>
<dt>Author</dt> <dd>ryan</dd>
<dt>Date</dt> <dd>2010-10-04 19:26:40 +0000 (Mon, 04 Oct 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>Fix user edit urls for network admin</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadminincludesdashboardphp">trunk/wp-admin/includes/dashboard.php</a></li>
<li><a href="#trunkwpadminincludesdefaultlisttablesphp">trunk/wp-admin/includes/default-list-tables.php</a></li>
<li><a href="#trunkwpadminincludesmenuphp">trunk/wp-admin/includes/menu.php</a></li>
<li><a href="#trunkwpadminincludesmsphp">trunk/wp-admin/includes/ms.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadminincludesdashboardphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/dashboard.php (15716 => 15717)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/dashboard.php        2010-10-04 19:25:39 UTC (rev 15716)
+++ trunk/wp-admin/includes/dashboard.php        2010-10-04 19:26:40 UTC (rev 15717)
</span><span class="lines">@@ -25,42 +25,47 @@
</span><span class="cx">         /* Register Widgets and Controls */
</span><span class="cx"> 
</span><span class="cx">         // Right Now
</span><del>-        wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can('edit_posts') )
+                wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
</ins><span class="cx"> 
</span><span class="cx">         // Recent Comments Widget
</span><del>-        if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
-                $update = true;
-                $widget_options['dashboard_recent_comments'] = array(
-                        'items' =&gt; 5,
-                );
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can('moderate_comments') ) {
+                if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
+                        $update = true;
+                        $widget_options['dashboard_recent_comments'] = array(
+                                'items' =&gt; 5,
+                        );
+                }
+                $recent_comments_title = __( 'Recent Comments' );
+                wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );
</ins><span class="cx">         }
</span><del>-        $recent_comments_title = __( 'Recent Comments' );
-        wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );
</del><span class="cx"> 
</span><span class="cx">         // Incoming Links Widget
</span><del>-        if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
-                $update = true;
-                $num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
-                $widget_options['dashboard_incoming_links'] = array(
-                        'home' =&gt; get_option('home'),
-                        'link' =&gt; apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&amp;partner=wordpress&amp;q=link:' . trailingslashit( get_option('home') ) ),
-                        'url' =&gt; isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&amp;ie=utf-8&amp;num=' . $num_items . '&amp;output=rss&amp;partner=wordpress&amp;q=link:' . trailingslashit( get_option('home') ) ),
-                        'items' =&gt; $num_items,
-                        'show_date' =&gt; isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
-                );
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can('publish_posts') ) {
+                if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
+                        $update = true;
+                        $num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
+                        $widget_options['dashboard_incoming_links'] = array(
+                                'home' =&gt; get_option('home'),
+                                'link' =&gt; apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&amp;partner=wordpress&amp;q=link:' . trailingslashit( get_option('home') ) ),
+                                'url' =&gt; isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&amp;ie=utf-8&amp;num=' . $num_items . '&amp;output=rss&amp;partner=wordpress&amp;q=link:' . trailingslashit( get_option('home') ) ),
+                                'items' =&gt; $num_items,
+                                'show_date' =&gt; isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
+                        );
+                }
+                wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );
</ins><span class="cx">         }
</span><del>-        wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );
</del><span class="cx"> 
</span><span class="cx">         // WP Plugins Widget
</span><del>-        if ( current_user_can( 'install_plugins' ) )
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can( 'install_plugins' ) )
</ins><span class="cx">                 wp_add_dashboard_widget( 'dashboard_plugins', __( 'Plugins' ), 'wp_dashboard_plugins' );
</span><span class="cx"> 
</span><span class="cx">         // QuickPress Widget
</span><del>-        if ( current_user_can('edit_posts') )
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can('edit_posts') )
</ins><span class="cx">                 wp_add_dashboard_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press' );
</span><span class="cx"> 
</span><span class="cx">         // Recent Drafts
</span><del>-        if ( current_user_can('edit_posts') )
</del><ins>+        if ( is_blog_admin() &amp;&amp; current_user_can('edit_posts') )
</ins><span class="cx">                 wp_add_dashboard_widget( 'dashboard_recent_drafts', __('Recent Drafts'), 'wp_dashboard_recent_drafts' );
</span><span class="cx"> 
</span><span class="cx">         // Primary feed (Dev Blog) Widget
</span></span></pre></div>
<a id="trunkwpadminincludesdefaultlisttablesphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/default-list-tables.php (15716 => 15717)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/default-list-tables.php        2010-10-04 19:25:39 UTC (rev 15716)
+++ trunk/wp-admin/includes/default-list-tables.php        2010-10-04 19:26:40 UTC (rev 15717)
</span><span class="lines">@@ -3140,14 +3140,14 @@
</span><span class="cx">                                                 $edit_link = ( get_current_user_id() == $user-&gt;ID ) ? 'profile.php' : 'user-edit.php?user_id=' . $user-&gt;ID;
</span><span class="cx">                                                 ?&gt;
</span><span class="cx">                                                 &lt;td class=&quot;username column-username&quot;&gt;
</span><del>-                                                        &lt;?php echo $avatar; ?&gt;&lt;strong&gt;&lt;a href=&quot;&lt;?php echo esc_url( admin_url( $edit_link ) ); ?&gt;&quot; class=&quot;edit&quot;&gt;&lt;?php echo stripslashes( $user-&gt;user_login ); ?&gt;&lt;/a&gt;&lt;?php
</del><ins>+                                                        &lt;?php echo $avatar; ?&gt;&lt;strong&gt;&lt;a href=&quot;&lt;?php echo esc_url( self_admin_url( $edit_link ) ); ?&gt;&quot; class=&quot;edit&quot;&gt;&lt;?php echo stripslashes( $user-&gt;user_login ); ?&gt;&lt;/a&gt;&lt;?php
</ins><span class="cx">                                                         if ( in_array( $user-&gt;user_login, $super_admins ) )
</span><span class="cx">                                                                 echo ' - ' . __( 'Super admin' );
</span><span class="cx">                                                         ?&gt;&lt;/strong&gt;
</span><span class="cx">                                                         &lt;br/&gt;
</span><span class="cx">                                                         &lt;?php
</span><span class="cx">                                                                 $actions = array();
</span><del>-                                                                $actions['edit'] = '&lt;a href=&quot;' . esc_url( admin_url( $edit_link ) ) . '&quot;&gt;' . __( 'Edit' ) . '&lt;/a&gt;';
</del><ins>+                                                                $actions['edit'] = '&lt;a href=&quot;' . esc_url( self_admin_url( $edit_link ) ) . '&quot;&gt;' . __( 'Edit' ) . '&lt;/a&gt;';
</ins><span class="cx"> 
</span><span class="cx">                                                                 if ( ! in_array( $user-&gt;user_login, $super_admins ) ) {
</span><span class="cx">                                                                         $actions['delete'] = '&lt;a href=&quot;' . $delete = esc_url( network_admin_url( add_query_arg( '_wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'edit.php', 'deleteuser' ) . '&amp;amp;action=deleteuser&amp;amp;id=' . $user-&gt;ID ) ) ) . '&quot; class=&quot;delete&quot;&gt;' . __( 'Delete' ) . '&lt;/a&gt;';
</span></span></pre></div>
<a id="trunkwpadminincludesmenuphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/menu.php (15716 => 15717)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/menu.php        2010-10-04 19:25:39 UTC (rev 15716)
+++ trunk/wp-admin/includes/menu.php        2010-10-04 19:26:40 UTC (rev 15717)
</span><span class="lines">@@ -9,6 +9,8 @@
</span><span class="cx"> 
</span><span class="cx"> if ( is_network_admin() )
</span><span class="cx">         do_action('_network_admin_menu');
</span><ins>+elseif ( is_user_admin() )
+        do_action('_user_admin_menu');
</ins><span class="cx"> else
</span><span class="cx">         do_action('_admin_menu');
</span><span class="cx"> 
</span><span class="lines">@@ -89,6 +91,8 @@
</span><span class="cx"> 
</span><span class="cx"> if ( is_network_admin() )
</span><span class="cx">         do_action('network_admin_menu', '');
</span><ins>+elseif ( is_user_admin() )
+        do_action('user_admin_menu', '');
</ins><span class="cx"> else
</span><span class="cx">         do_action('admin_menu', '');
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadminincludesmsphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/includes/ms.php (15716 => 15717)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/includes/ms.php        2010-10-04 19:25:39 UTC (rev 15716)
+++ trunk/wp-admin/includes/ms.php        2010-10-04 19:26:40 UTC (rev 15717)
</span><span class="lines">@@ -502,29 +502,14 @@
</span><span class="cx">         $c ++;
</span><span class="cx"> 
</span><span class="cx">         $blog = get_active_blog_for_user( get_current_user_id() );
</span><del>-        $dashboard_blog = get_dashboard_blog();
</del><ins>+
</ins><span class="cx">         if ( is_object( $blog ) ) {
</span><span class="cx">                 wp_redirect( get_admin_url( $blog-&gt;blog_id, '?c=' . $c ) ); // redirect and count to 5, &quot;just in case&quot;
</span><span class="cx">                 exit;
</span><ins>+        } else {
+                wp_redirect( user_admin_url( '?c=' . $c ) ); // redirect and count to 5, &quot;just in case&quot;
</ins><span class="cx">         }
</span><span class="cx"> 
</span><del>-        /*
-           If the user is a member of only 1 blog and the user's primary_blog isn't set to that blog,
-           then update the primary_blog record to match the user's blog
-         */
-        $blogs = get_blogs_of_user( get_current_user_id() );
-
-        if ( !empty( $blogs ) ) {
-                foreach( $blogs as $blogid =&gt; $blog ) {
-                        if ( $blogid != $dashboard_blog-&gt;blog_id &amp;&amp; get_user_meta( get_current_user_id() , 'primary_blog', true ) == $dashboard_blog-&gt;blog_id ) {
-                                update_user_meta( get_current_user_id(), 'primary_blog', $blogid );
-                                continue;
-                        }
-                }
-                $blog = get_blog_details( get_user_meta( get_current_user_id(), 'primary_blog', true ) );
-                        wp_redirect( get_admin_url( $blog-&gt;blog_id, '?c=' . $c ) );
-                exit;
-        }
</del><span class="cx">         wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
</span><span class="cx"> }
</span><span class="cx"> add_action( 'admin_page_access_denied', 'redirect_user_to_blog', 99 );
</span></span></pre>
</div>
</div>

</body>
</html>