|
|
|
|
@@ -76,79 +76,80 @@ class Tests_User_Capabilities extends WP_UnitTestCase {
|
|
|
|
|
final private function _getSingleSitePrimitiveCaps() {
|
|
|
|
|
return array(
|
|
|
|
|
|
|
|
|
|
'unfiltered_html' => array( 'administrator', 'editor' ),
|
|
|
|
|
'unfiltered_html' => array( 'administrator', 'editor' ),
|
|
|
|
|
|
|
|
|
|
'activate_plugins' => array( 'administrator' ),
|
|
|
|
|
'create_users' => array( 'administrator' ),
|
|
|
|
|
'delete_plugins' => array( 'administrator' ),
|
|
|
|
|
'delete_themes' => array( 'administrator' ),
|
|
|
|
|
'delete_users' => array( 'administrator' ),
|
|
|
|
|
'edit_files' => array( 'administrator' ),
|
|
|
|
|
'edit_plugins' => array( 'administrator' ),
|
|
|
|
|
'edit_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_users' => array( 'administrator' ),
|
|
|
|
|
'install_plugins' => array( 'administrator' ),
|
|
|
|
|
'install_themes' => array( 'administrator' ),
|
|
|
|
|
'update_core' => array( 'administrator' ),
|
|
|
|
|
'update_plugins' => array( 'administrator' ),
|
|
|
|
|
'update_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_theme_options' => array( 'administrator' ),
|
|
|
|
|
'export' => array( 'administrator' ),
|
|
|
|
|
'import' => array( 'administrator' ),
|
|
|
|
|
'list_users' => array( 'administrator' ),
|
|
|
|
|
'manage_options' => array( 'administrator' ),
|
|
|
|
|
'promote_users' => array( 'administrator' ),
|
|
|
|
|
'remove_users' => array( 'administrator' ),
|
|
|
|
|
'switch_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_dashboard' => array( 'administrator' ),
|
|
|
|
|
'resume_plugins' => array( 'administrator' ),
|
|
|
|
|
'resume_themes' => array( 'administrator' ),
|
|
|
|
|
'activate_plugins' => array( 'administrator' ),
|
|
|
|
|
'create_users' => array( 'administrator' ),
|
|
|
|
|
'delete_plugins' => array( 'administrator' ),
|
|
|
|
|
'delete_themes' => array( 'administrator' ),
|
|
|
|
|
'delete_users' => array( 'administrator' ),
|
|
|
|
|
'edit_files' => array( 'administrator' ),
|
|
|
|
|
'edit_plugins' => array( 'administrator' ),
|
|
|
|
|
'edit_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_users' => array( 'administrator' ),
|
|
|
|
|
'install_plugins' => array( 'administrator' ),
|
|
|
|
|
'install_themes' => array( 'administrator' ),
|
|
|
|
|
'update_core' => array( 'administrator' ),
|
|
|
|
|
'update_plugins' => array( 'administrator' ),
|
|
|
|
|
'update_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_theme_options' => array( 'administrator' ),
|
|
|
|
|
'export' => array( 'administrator' ),
|
|
|
|
|
'import' => array( 'administrator' ),
|
|
|
|
|
'list_users' => array( 'administrator' ),
|
|
|
|
|
'manage_options' => array( 'administrator' ),
|
|
|
|
|
'promote_users' => array( 'administrator' ),
|
|
|
|
|
'remove_users' => array( 'administrator' ),
|
|
|
|
|
'switch_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_dashboard' => array( 'administrator' ),
|
|
|
|
|
'resume_plugins' => array( 'administrator' ),
|
|
|
|
|
'resume_themes' => array( 'administrator' ),
|
|
|
|
|
'view_site_health_checks' => array( 'administrator' ),
|
|
|
|
|
|
|
|
|
|
'moderate_comments' => array( 'administrator', 'editor' ),
|
|
|
|
|
'manage_categories' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'publish_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'moderate_comments' => array( 'administrator', 'editor' ),
|
|
|
|
|
'manage_categories' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'publish_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
|
|
|
|
|
'edit_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'upload_files' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'publish_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'delete_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'edit_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'upload_files' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'publish_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'delete_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
|
|
|
|
|
'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
|
|
|
|
|
'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
'level_10' => array( 'administrator' ),
|
|
|
|
|
'level_9' => array( 'administrator' ),
|
|
|
|
|
'level_8' => array( 'administrator' ),
|
|
|
|
|
'level_7' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_6' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_5' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_4' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_3' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_2' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
'level_10' => array( 'administrator' ),
|
|
|
|
|
'level_9' => array( 'administrator' ),
|
|
|
|
|
'level_8' => array( 'administrator' ),
|
|
|
|
|
'level_7' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_6' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_5' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_4' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_3' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_2' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
'administrator' => array( 'administrator' ),
|
|
|
|
|
'editor' => array( 'editor' ),
|
|
|
|
|
'author' => array( 'author' ),
|
|
|
|
|
'contributor' => array( 'contributor' ),
|
|
|
|
|
'subscriber' => array( 'subscriber' ),
|
|
|
|
|
'administrator' => array( 'administrator' ),
|
|
|
|
|
'editor' => array( 'editor' ),
|
|
|
|
|
'author' => array( 'author' ),
|
|
|
|
|
'contributor' => array( 'contributor' ),
|
|
|
|
|
'subscriber' => array( 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
@@ -157,80 +158,81 @@ class Tests_User_Capabilities extends WP_UnitTestCase {
|
|
|
|
|
final private function _getMultiSitePrimitiveCaps() {
|
|
|
|
|
return array(
|
|
|
|
|
|
|
|
|
|
'unfiltered_html' => array(),
|
|
|
|
|
'unfiltered_html' => array(),
|
|
|
|
|
|
|
|
|
|
'activate_plugins' => array(),
|
|
|
|
|
'create_users' => array(),
|
|
|
|
|
'delete_plugins' => array(),
|
|
|
|
|
'delete_themes' => array(),
|
|
|
|
|
'delete_users' => array(),
|
|
|
|
|
'edit_files' => array(),
|
|
|
|
|
'edit_plugins' => array(),
|
|
|
|
|
'edit_themes' => array(),
|
|
|
|
|
'edit_users' => array(),
|
|
|
|
|
'install_plugins' => array(),
|
|
|
|
|
'install_themes' => array(),
|
|
|
|
|
'update_core' => array(),
|
|
|
|
|
'update_plugins' => array(),
|
|
|
|
|
'update_themes' => array(),
|
|
|
|
|
'activate_plugins' => array(),
|
|
|
|
|
'create_users' => array(),
|
|
|
|
|
'delete_plugins' => array(),
|
|
|
|
|
'delete_themes' => array(),
|
|
|
|
|
'delete_users' => array(),
|
|
|
|
|
'edit_files' => array(),
|
|
|
|
|
'edit_plugins' => array(),
|
|
|
|
|
'edit_themes' => array(),
|
|
|
|
|
'edit_users' => array(),
|
|
|
|
|
'install_plugins' => array(),
|
|
|
|
|
'install_themes' => array(),
|
|
|
|
|
'update_core' => array(),
|
|
|
|
|
'update_plugins' => array(),
|
|
|
|
|
'update_themes' => array(),
|
|
|
|
|
'view_site_health_checks' => array(),
|
|
|
|
|
|
|
|
|
|
'edit_theme_options' => array( 'administrator' ),
|
|
|
|
|
'export' => array( 'administrator' ),
|
|
|
|
|
'import' => array( 'administrator' ),
|
|
|
|
|
'list_users' => array( 'administrator' ),
|
|
|
|
|
'manage_options' => array( 'administrator' ),
|
|
|
|
|
'promote_users' => array( 'administrator' ),
|
|
|
|
|
'remove_users' => array( 'administrator' ),
|
|
|
|
|
'switch_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_dashboard' => array( 'administrator' ),
|
|
|
|
|
'resume_plugins' => array( 'administrator' ),
|
|
|
|
|
'resume_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_theme_options' => array( 'administrator' ),
|
|
|
|
|
'export' => array( 'administrator' ),
|
|
|
|
|
'import' => array( 'administrator' ),
|
|
|
|
|
'list_users' => array( 'administrator' ),
|
|
|
|
|
'manage_options' => array( 'administrator' ),
|
|
|
|
|
'promote_users' => array( 'administrator' ),
|
|
|
|
|
'remove_users' => array( 'administrator' ),
|
|
|
|
|
'switch_themes' => array( 'administrator' ),
|
|
|
|
|
'edit_dashboard' => array( 'administrator' ),
|
|
|
|
|
'resume_plugins' => array( 'administrator' ),
|
|
|
|
|
'resume_themes' => array( 'administrator' ),
|
|
|
|
|
|
|
|
|
|
'moderate_comments' => array( 'administrator', 'editor' ),
|
|
|
|
|
'manage_categories' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'publish_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'moderate_comments' => array( 'administrator', 'editor' ),
|
|
|
|
|
'manage_categories' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'publish_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_published_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_others_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_posts' => array( 'administrator', 'editor' ),
|
|
|
|
|
'delete_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'edit_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
'read_private_pages' => array( 'administrator', 'editor' ),
|
|
|
|
|
|
|
|
|
|
'edit_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'upload_files' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'publish_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'delete_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'edit_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'upload_files' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'publish_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'delete_published_posts' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
|
|
|
|
|
'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
|
|
|
|
|
'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
'level_10' => array( 'administrator' ),
|
|
|
|
|
'level_9' => array( 'administrator' ),
|
|
|
|
|
'level_8' => array( 'administrator' ),
|
|
|
|
|
'level_7' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_6' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_5' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_4' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_3' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_2' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
'level_10' => array( 'administrator' ),
|
|
|
|
|
'level_9' => array( 'administrator' ),
|
|
|
|
|
'level_8' => array( 'administrator' ),
|
|
|
|
|
'level_7' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_6' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_5' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_4' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_3' => array( 'administrator', 'editor' ),
|
|
|
|
|
'level_2' => array( 'administrator', 'editor', 'author' ),
|
|
|
|
|
'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ),
|
|
|
|
|
'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
'administrator' => array( 'administrator' ),
|
|
|
|
|
'editor' => array( 'editor' ),
|
|
|
|
|
'author' => array( 'author' ),
|
|
|
|
|
'contributor' => array( 'contributor' ),
|
|
|
|
|
'subscriber' => array( 'subscriber' ),
|
|
|
|
|
'administrator' => array( 'administrator' ),
|
|
|
|
|
'editor' => array( 'editor' ),
|
|
|
|
|
'author' => array( 'author' ),
|
|
|
|
|
'contributor' => array( 'contributor' ),
|
|
|
|
|
'subscriber' => array( 'subscriber' ),
|
|
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
@@ -397,9 +399,10 @@ class Tests_User_Capabilities extends WP_UnitTestCase {
|
|
|
|
|
$actual['author'],
|
|
|
|
|
$actual['subscriber'],
|
|
|
|
|
$actual['contributor'],
|
|
|
|
|
// the following two are granted via `user_has_cap`:
|
|
|
|
|
// The following are granted via `user_has_cap`:
|
|
|
|
|
$actual['resume_plugins'],
|
|
|
|
|
$actual['resume_themes']
|
|
|
|
|
$actual['resume_themes'],
|
|
|
|
|
$actual['view_site_health_checks']
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
unset(
|
|
|
|
|
@@ -1200,7 +1203,7 @@ class Tests_User_Capabilities extends WP_UnitTestCase {
|
|
|
|
|
$this->assertFalse( $contributor->has_cap( 'publish_post', $post ) );
|
|
|
|
|
$this->assertFalse( $contributor->has_cap( 'edit_post', $post ) );
|
|
|
|
|
$this->assertFalse( $contributor->has_cap( 'delete_post', $post ) );
|
|
|
|
|
$this->assertEquals( $status === 'publish', $contributor->has_cap( 'read_post', $post ) );
|
|
|
|
|
$this->assertEquals( 'publish' === $status, $contributor->has_cap( 'read_post', $post ) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|