web/wp-admin/plugins.php
changeset 204 09a1c134465b
parent 194 32102edaa81b
equal deleted inserted replaced
203:f507feede89a 204:09a1c134465b
     7  */
     7  */
     8 
     8 
     9 /** WordPress Administration Bootstrap */
     9 /** WordPress Administration Bootstrap */
    10 require_once('./admin.php');
    10 require_once('./admin.php');
    11 
    11 
    12 if ( is_multisite() ) {
    12 if ( ! current_user_can('activate_plugins') )
    13 	$menu_perms = get_site_option( 'menu_items', array() );
       
    14 
       
    15 	if ( empty( $menu_perms['plugins'] ) && ! current_user_can( 'manage_network_plugins' ) )
       
    16 		wp_die( __( 'Cheatin’ uh?' ) );
       
    17 }
       
    18 
       
    19 if ( !current_user_can('activate_plugins') )
       
    20 	wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) );
    13 	wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) );
    21 
    14 
    22 $wp_list_table = _get_list_table('WP_Plugins_List_Table');
    15 $wp_list_table = _get_list_table('WP_Plugins_List_Table');
    23 $pagenum = $wp_list_table->get_pagenum();
    16 $pagenum = $wp_list_table->get_pagenum();
    24 
    17 
    34 
    27 
    35 	switch ( $action ) {
    28 	switch ( $action ) {
    36 		case 'activate':
    29 		case 'activate':
    37 			if ( ! current_user_can('activate_plugins') )
    30 			if ( ! current_user_can('activate_plugins') )
    38 				wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
    31 				wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
       
    32 
       
    33 			if ( is_multisite() && ! is_network_admin() && is_network_only_plugin( $plugin ) ) {
       
    34 				wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") );
       
    35 				exit;
       
    36 			}
    39 
    37 
    40 			check_admin_referer('activate-plugin_' . $plugin);
    38 			check_admin_referer('activate-plugin_' . $plugin);
    41 
    39 
    42 			$result = activate_plugin($plugin, self_admin_url('plugins.php?error=true&plugin=' . $plugin), is_network_admin() );
    40 			$result = activate_plugin($plugin, self_admin_url('plugins.php?error=true&plugin=' . $plugin), is_network_admin() );
    43 			if ( is_wp_error( $result ) ) {
    41 			if ( is_wp_error( $result ) ) {
    49 					wp_die($result);
    47 					wp_die($result);
    50 				}
    48 				}
    51 			}
    49 			}
    52 
    50 
    53 			if ( ! is_network_admin() ) {
    51 			if ( ! is_network_admin() ) {
    54 				if ( is_network_only_plugin( $plugin ) ) {
       
    55 					wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") );
       
    56 					exit;
       
    57 				}
       
    58 
       
    59 				$recent = (array) get_option( 'recently_activated' );
    52 				$recent = (array) get_option( 'recently_activated' );
    60 				unset( $recent[ $plugin ] );
    53 				unset( $recent[ $plugin ] );
    61 				update_option( 'recently_activated', $recent );
    54 				update_option( 'recently_activated', $recent );
    62 			}
    55 			}
    63 
    56