Changeset 4213 for sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php
- Timestamp:
- 10/11/2016 06:42:46 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/class-plugin-directory.php
r4212 r4213 531 531 } 532 532 533 // For singular requests, or self-author profile requests allow restricted post_status items to show on the front-end. 534 if ( is_user_logged_in() && ( 535 !empty( $wp_query->query_vars['name'] ) || 536 ( 537 !empty( $wp_query->query_vars['plugin_contributor'] ) && 538 ( 539 current_user_can( 'plugin_review' ) || 540 0 === strcasecmp( $wp_query->query_vars['plugin_contributor'], wp_get_current_user()->user_nicename ) 541 ) 542 ) ) 543 ) { 544 $wp_query->query_vars['post_status'] = array( 'pending', 'approved', 'publish', 'closed', 'disabled' ); 545 546 add_filter( 'posts_results', function( $posts, $this_wp_query ) use( $wp_query ) { 547 if ( $this_wp_query != $wp_query ) { 548 return $posts; 549 } 550 551 $restricted_access_statii = array_diff( $wp_query->query_vars['post_status'], array( 'publish' ) ); 552 foreach ( $posts as $i => $post ) { 553 // If the plugin is not in the restricted statuses list, show it 554 if ( 'plugin' != $post->post_type || ! in_array( $post->post_status, $restricted_access_statii, true ) ) { 555 continue; 556 } 557 558 // Plugin Reviewers can see all sorts of plugins 559 if ( current_user_can( 'plugin_review' ) ) { 560 continue; 561 } 562 563 // Original submitter can always see 564 if ( $post->post_author == get_current_user_id() ) { 565 continue; 566 } 567 568 // Committers (user_login) can always see 569 if ( in_array( wp_get_current_user()->user_login, (array) Tools::get_plugin_committers( $post->post_name ), true ) ) { 570 continue; 571 } 572 573 // Contributors (user_nicename) can always see 574 if ( in_array( wp_get_current_user()->user_nicename, (array) wp_list_pluck( get_the_terms( $post, 'plugin_contributors' ), 'slug' ), true ) ) { 575 continue; 576 } 577 578 // everyone else can't. 579 unset( $posts[ $i ] ); 580 } 581 582 return $posts; 583 }, 10, 2 ); 584 } 585 586 // By default, all archives are sorted by active installs 533 587 if ( $wp_query->is_archive() && empty( $wp_query->query_vars['orderby'] ) ) { 534 588 $wp_query->query_vars['orderby'] = 'meta_value_num';
Note: See TracChangeset
for help on using the changeset viewer.