Changeset 10927 for sites/trunk/wordpress.org/public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php
- Timestamp:
- 04/27/2021 03:08:01 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php
r10923 r10927 240 240 241 241 // Make sure it doesn't use a slug deemed not to be used by the public. 242 // This check must be run before `get_theme_post()` to account for "twenty" themes. 242 243 if ( $this->has_reserved_slug() ) { 243 244 /* translators: 1: theme slug, 2: style.css */ … … 327 328 // Is there already a theme with the name name by a different author? 328 329 if ( ! empty( $this->theme_post ) && $this->theme_post->post_author != $this->author->ID ) { 329 /* translators: 1: theme slug, 2: style.css */ 330 return sprintf( __( 'There is already a theme called %1$s by a different author. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), 331 '<code>' . $this->theme_slug . '</code>', 332 '<code>style.css</code>' 333 ) . $are_you_in_the_right_place; 330 331 $is_allowed_to_upload_for_theme = false; 332 if ( 333 // The theme is owned by WordPress.org. 334 'wordpressdotorg' === get_user_by( 'id', $this->theme_post->post_author )->user_nicename && 335 // The current user is a Core Committer. [ 'user_login' => 'Trac Title', ... ] 336 ! empty( $GLOBALS['committers'][ $this->author->user_login ] ) 337 ) { 338 // Allow core committers to update default themes (as authored by @wordpressdotorg) 339 $is_allowed_to_upload_for_theme = true; 340 } 341 342 if ( ! $is_allowed_to_upload_for_theme ) { 343 /* translators: 1: theme slug, 2: style.css */ 344 return sprintf( __( 'There is already a theme called %1$s by a different author. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), 345 '<code>' . $this->theme_slug . '</code>', 346 '<code>style.css</code>' 347 ) . $are_you_in_the_right_place; 348 } 334 349 } 335 350 … … 674 689 ); 675 690 676 // force the slug to be correct for the twenty-x themes 677 if ( in_array( $slug, $reserved_slugs ) && 'wordpressdotorg' == $this->author->user_login ) { 678 $this->theme_slug = $slug; 679 } 680 681 return in_array( $slug, $reserved_slugs ) && 'wordpressdotorg' !== $this->author->user_login; 691 // If it's not a reserved slug, they can have it. 692 if ( 693 ! in_array( $slug, $reserved_slugs, true ) && 694 ! in_array( $this->theme_slug, $reserved_slugs, true ) 695 ) { 696 return false; 697 } 698 699 // force the slug to be correct for the twenty-x themes. 700 $this->theme_slug = $slug; 701 702 // WordPress.org user is always allowed to upload reserved slugs. 703 if ( 'wordpressdotorg' === $this->author->user_login ) { 704 return false; 705 } 706 707 // Only committers uploading a default theme *update* are left to be checked for. 708 $theme_post = $this->get_theme_post(); 709 710 // New default themes MUST be uploaded by `wordpressdotorg` and will fail this check. 711 if ( 712 // Updates only. 713 $theme_post && 714 // The current user is a Core Committer. [ 'user_login' => 'Trac Title', ... ] 715 ! empty( $GLOBALS['committers'][ $this->author->user_login ] ) && 716 // The theme is owned by WordPress.org. 717 'wordpressdotorg' === get_user_by( 'id', $theme_post->post_author )->user_login 718 ) { 719 // Slug is reserved, but an update is being uploaded by a core committer. 720 return false; 721 } 722 723 // Slug is reserved, user is not authorized. 724 return true; 682 725 } 683 726 … … 1146 1189 } 1147 1190 1148 wp_mail( $this->author->user_email, $email_subject, $email_content, 'From: "WordPress Theme Directory" <themes@wordpress.org>' ); 1191 $emails = [ 1192 $this->author->user_email, 1193 ]; 1194 1195 // If the uploader and the author are different, email them both. 1196 // This only happens under special circumstances. 1197 if ( ! empty( $this->theme_post ) && $this->theme_post->post_author != $this->author->ID ) { 1198 $emails[] = get_user_by( 'id', $this->theme_post->post_author )->user_email; 1199 } 1200 1201 wp_mail( $emails, $email_subject, $email_content, 'From: "WordPress Theme Directory" <themes@wordpress.org>' ); 1149 1202 } 1150 1203
Note: See TracChangeset
for help on using the changeset viewer.