Ticket #11644: 11644.4.diff
| File 11644.4.diff, 11.5 KB (added by , 16 years ago) |
|---|
-
ms-edit.php
4 4 if ( !is_multisite() ) 5 5 wp_die( __('Multisite support is not enabled.') ); 6 6 7 if ( is_site_admin() == false ) {7 if ( !is_super_admin() ) 8 8 wp_die( __('You do not have permission to access this page.') ); 9 }10 9 11 10 do_action('wpmuadminedit', ''); 12 11 … … 21 20 } 22 21 23 22 switch( $_GET['action'] ) { 23 case "remove_super_admin": 24 $user_login = esc_attr( $_GET['user_login'] ); 25 $super_admins = get_site_option('site_admins', array('admin')); 26 if ( 1 == count($super_admins) ) 27 wp_die( __("You can't delete the last super admin.") ); 28 foreach ( $super_admins as $key => $super_admin ) { 29 if ( $user_login == $super_admin ) unset( $super_admins[$key] ); 30 } 31 update_site_option('site_admins', $super_admins); 32 wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'removed_superadmin'), $_SERVER['HTTP_REFERER'] ) ); 33 break; 24 34 case "siteoptions": 25 35 check_admin_referer('siteoptions'); 26 36 if( empty( $_POST ) ) … … 110 120 update_site_option( $option_name, $value ); 111 121 } 112 122 113 $site_admins = explode( ' ', str_replace( ",", " ", $_POST['site_admins'] ) );114 if ( is_array( $site_admins ) ) {115 $mainblog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" );116 if( $mainblog_id ) {117 reset( $site_admins );118 foreach( (array) $site_admins as $site_admin ) {119 $uid = $wpdb->get_var( "SELECT ID FROM {$wpdb->users} WHERE user_login='{$site_admin}'" );120 if( $uid )121 add_user_to_blog( $mainblog_id, $uid, 'administrator' );122 }123 }124 update_site_option( 'site_admins' , $site_admins );125 }126 127 123 // Update more options here 128 124 do_action( 'update_wpmu_options' ); 129 125 … … 474 470 continue; 475 471 } 476 472 $user = new WP_User( $val ); 477 if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) ) { 478 wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a site admnistrator.' ), $user->user_login ) ); 479 } 480 if ( isset($_POST['alluser_spam']) ) { 473 if ( isset($_POST['promote_as_super_admin']) ) { 474 $userfunction = 'superadmin'; 475 $super_admins = get_site_option('site_admins', array('admin')); 476 if ( !in_array( $user->user_login, $super_admins ) ) 477 $super_admins = array_merge( $super_admins, array($user->user_login) ); 478 $mainblog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" ); 479 if ( $mainblog_id ) { 480 reset( $super_admins ); 481 foreach( (array) $super_admins as $super_admin ) { 482 $uid = $wpdb->get_var( "SELECT ID FROM {$wpdb->users} WHERE user_login='{$super_admin}'" ); 483 if( $uid ) 484 add_user_to_blog( $mainblog_id, $uid, 'administrator' ); 485 } 486 } 487 update_site_option('site_admins', $super_admins); 488 } elseif ( isset($_POST['alluser_spam']) ) { 481 489 $userfunction = 'all_spam'; 490 if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) ) { 491 wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a site adminstrator.' ), $user->user_login ) ); 492 } 482 493 $blogs = get_blogs_of_user( $val, true ); 483 494 foreach ( (array) $blogs as $key => $details ) { 484 495 if ( $details->userblog_id == $current_site->blog_id ) { continue; } // main blog not a spam ! … … 487 498 update_user_status( $val, "spam", '1', 1 ); 488 499 } elseif ( isset($_POST['alluser_notspam']) ) { 489 500 $userfunction = 'all_notspam'; 501 if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) ) { 502 wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a site adminstrator.' ), $user->user_login ) ); 503 } 490 504 $blogs = get_blogs_of_user( $val, true ); 491 505 foreach ( (array) $blogs as $key => $details ) { 492 506 update_blog_status( $details->userblog_id, "spam", '0' ); -
ms-options.php
236 236 </tr> 237 237 </table> 238 238 239 <h3><?php _e('Administration Settings') ?></h3>240 <table class="form-table">241 <tr valign="top">242 <th scope="row"><?php _e('Site Admins') ?></th>243 <td>244 <input name="site_admins" type="text" id="site_admins" style="width: 95%" value="<?php echo esc_attr( implode(' ', get_site_option( 'site_admins', array( 'admin' ) ) ) ) ?>" size="45" />245 <br />246 <?php _e('These users may login to the main blog and administer the site. Space separated list of usernames.') ?>247 </td>248 </tr>249 </table>250 251 239 <h3><?php _e('Site Wide Settings <em>(These settings may be overridden by blog owners)</em>') ?></h3> 252 240 <table class="form-table"> 253 241 <?php -
ms-users.php
11 11 12 12 require_once('admin-header.php'); 13 13 14 if ( is_site_admin() == false ) {14 if ( !is_super_admin() ) 15 15 wp_die( __('You do not have permission to access this page.') ); 16 }17 16 18 17 if ( $_GET['updated'] == 'true' ) { 19 18 ?> … … 23 22 case 'delete': 24 23 _e('User deleted !'); 25 24 break; 25 case 'superadmin': 26 _e('Users are now a super admins!'); 27 break; 28 case 'removed_superadmin': 29 _e('User has been removed as super admin!'); 30 break; 26 31 case 'all_spam': 27 32 _e('Users marked as spam !'); 28 33 break; … … 44 49 45 50 <div class="wrap" style="position:relative;"> 46 51 <?php 52 $super_admins = "'" . implode("', '", get_site_option('site_admins', array('admin'))) . "'"; 53 $query = "SELECT * FROM {$wpdb->users} WHERE user_login IN (" . $super_admins . ")"; 54 $super_admins_list = $wpdb->get_results( $query, ARRAY_A ); 55 ?> 56 <div class="wrap"> 57 <h2><?php _e("Users"); ?></h2> 58 <h3>Super admins</h3> 59 <?php 60 // define the columns to display, the syntax is 'internal name' => 'display name' 61 $posts_columns = array( 62 'login' => __('Username'), 63 'name' => __('Name'), 64 'email' => __('E-mail'), 65 ); 66 $posts_columns = apply_filters('wpmu_super_admins_columns', $posts_columns); 67 ?> 68 <table class="widefat" cellspacing="0"> 69 <thead> 70 <tr> 71 <?php foreach( (array) $posts_columns as $column_id => $column_display_name) { ?> 72 <th scope="col"><?php echo $column_display_name; ?></th> 73 <?php } ?> 74 </tr> 75 </thead> 76 <tbody id="super_admins" class="list:superadmins super-admins-list"> 77 <?php if ($super_admins_list) { 78 foreach ( (array) $super_admins_list as $user) { 79 $class = ('alternate' == $class) ? '' : 'alternate'; ?> 80 <tr class="<?php echo $class; ?>"> 81 <?php 82 foreach( (array) $posts_columns as $column_name=>$column_display_name) : 83 switch($column_name) { 84 case 'login': 85 $avatar = get_avatar( $user['user_email'], 32 ); 86 $edit = clean_url( add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=".$user['ID'] ) ); 87 $remove_super_admin = clean_url( add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "ms-edit.php?action=remove_super_admin&user_login=".$user['user_login'] ) ); 88 ?> 89 <td class="username column-username"> 90 <?php echo $avatar; ?><strong><a href="<?php echo $edit; ?>" class="edit"><?php echo stripslashes($user['user_login']); ?></a></strong> 91 <br/> 92 <div class="row-actions"> 93 <span class="edit"><a href="<?php echo $edit; ?>">Edit</a></span> | 94 <span class="remove_super_admin"><a href="<?php echo $remove_super_admin; ?>">Remove as super admin</a></span> 95 </div> 96 </td> 97 <?php 98 break; 99 100 case 'name': ?> 101 <td class="name column-name"><?php echo $user['display_name'] ?></td> 102 <?php 103 break; 104 105 case 'email': ?> 106 <td class="email column-email"><a href="mailto:<?php echo $user['user_email'] ?>"><?php echo $user['user_email'] ?></a></td> 107 <?php 108 break; 109 110 default: ?> 111 <td><?php do_action('manage_super_admins_custom_column', $column_name, $user['ID']); ?></td> 112 <?php 113 break; 114 } 115 endforeach 116 ?> 117 </tr> 118 <?php 119 } 120 } else { 121 ?> 122 <tr> 123 <td colspan="<?php echo (int) count($posts_columns); ?>"><?php _e('No super admins found.') ?></td> 124 </tr> 125 <?php 126 } // end if ($users) 127 ?> 128 </tbody> 129 </table> 130 <br /> 131 </div> 132 133 <?php 47 134 $apage = isset( $_GET['apage'] ) ? intval( $_GET['apage'] ) : 1; 48 135 $num = isset( $_GET['num'] ) ? intval( $_GET['num'] ) : 15; 49 136 $s = wp_specialchars( trim( $_GET[ 's' ] ) ); … … 102 189 103 190 ?> 104 191 <div class="wrap"> 105 <h2><?php _e( $current_site->site_name ); ?> <?php _e("Users"); ?></h2>106 192 <form action="ms-users.php" method="get" class="search-form"> 107 193 <p class="search-box"> 108 194 <input type="text" name="s" value="<?php if (isset($_GET['s'])) esc_attr( stripslashes( $s ) ); ?>" class="search-input" id="user-search-input" /> 109 195 <input type="submit" id="post-query-submit" value="<?php esc_attr_e('Search Users') ?>" class="button" /> 110 196 </p> 111 197 </form> 198 <h3>All users</h3> 112 199 </div> 113 200 114 201 <form id="form-user-list" action='ms-edit.php?action=allusers' method='post'> … … 116 203 <?php if ( $user_navigation ) echo "<div class='tablenav-pages'>$user_navigation</div>"; ?> 117 204 118 205 <div class="alignleft actions"> 206 <input type="submit" value="<?php esc_attr_e('Promote as super admin') ?>" name="promote_as_super_admin" class="button-secondary" /> 119 207 <input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" /> 120 208 <input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" /> 121 209 <input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" /> … … 160 248 foreach ( (array) $user_list as $user) { 161 249 $class = ('alternate' == $class) ? '' : 'alternate'; 162 250 163 $status_list = array( "spam" => "#faa", "deleted" => "#f55" );251 $status_list = array( "spam" => "#faa", "deleted" => "#f55", "super_admin" => "#FFFBDB" ); 164 252 165 253 $bgcolour = ""; 166 254 foreach ( $status_list as $status => $col ) { 167 if ( $user[$status] ) {255 if ( $user[$status] ) { 168 256 $bgcolour = "style='background: $col'"; 257 } elseif( 'super_admin' == $status & is_super_admin( $user['ID'] ) ) { 258 $bgcolour = "style='background: $col'"; 169 259 } 170 260 } 171 261 … … 265 355 <?php if ( $user_navigation ) echo "<div class='tablenav-pages'>$user_navigation</div>"; ?> 266 356 267 357 <div class="alignleft"> 358 <input type="submit" value="<?php esc_attr_e('Promote as super admin') ?>" name="promote_as_super_admin" class="button-secondary" /> 268 359 <input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" /> 269 360 <input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" /> 270 361 <input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" /> … … 279 370 if( apply_filters('show_adduser_fields', true) ) : 280 371 ?> 281 372 <div class="wrap"> 373 <br /> 282 374 <h2><?php _e('Add user') ?></h2> 283 375 <form action="ms-edit.php?action=adduser" method="post"> 284 376 <table class="form-table">