Remove certain caps for non super admins when running multisite. see #11644

git-svn-id: http://svn.automattic.com/wordpress/trunk@12630 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-01-07 04:05:53 +00:00
parent 61d66570c8
commit 43bfa1a300
1 changed files with 15 additions and 1 deletions

View File

@ -949,11 +949,25 @@ function map_meta_cap( $cap, $user_id ) {
$caps[] = 'read_private_pages'; $caps[] = 'read_private_pages';
break; break;
case 'unfiltered_upload': case 'unfiltered_upload':
if ( defined('ALLOW_UNFILTERED_UPLOADS') && ALLOW_UNFILTERED_UPLOADS == true ) if ( defined('ALLOW_UNFILTERED_UPLOADS') && ALLOW_UNFILTERED_UPLOADS == true && ( !is_multisite() || is_super_admin() ) )
$caps[] = $cap; $caps[] = $cap;
else else
$caps[] = 'do_not_allow'; $caps[] = 'do_not_allow';
break; break;
case 'unfiltered_html':
case 'update_plugins':
case 'delete_plugins':
case 'install_plugins':
case 'edit_plugins':
case 'update_themes':
case 'install_themes':
case 'edit_themes':
// If multisite these caps are allowed only for super admins.
if ( is_multisite() && !is_super_admin() )
$caps[] = 'do_not_allow';
else
$caps[] = $cap;
break;
default: default:
// If no meta caps match, return the original cap. // If no meta caps match, return the original cap.
$caps[] = $cap; $caps[] = $cap;