Making WordPress.org

Changeset 13757


Ignore:
Timestamp:
05/29/2024 09:54:18 AM (2 years ago)
Author:
akirk
Message:

wporg-gp-customizations: Allow GTEs only to create translation events

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/inc/class-plugin.php

    r13756 r13757  
    111111                add_filter( 'gp_translation_sets_sort', [ $this, 'filter_gp_translation_sets_sort' ] );
    112112
    113                 // CRUD permission for the translation events.
    114                 add_filter( 'gp_translation_events_can_crud_event', array( $this, 'gp_translation_events_can_crud_event' ), 10, 1 );
     113                // create permission for the translation events.
     114                add_filter( 'user_has_cap', array( $this, 'gp_translation_events_can_create_events' ), 10, 4 );
    115115
    116116                // Add site tour items.
    … …  
    816816
    817817        /**
    818          * Filter the permission to CRUD events for the user.
     818         * Filter the permission to create events for the user.
    819819         *
    820820         * wp-org-translation-events plugin.
    821821         *
    822          * @param bool $can_crud_event Whether the user can CRUD events.
    823          *
    824          * @return bool Whether the user can CRUD events.
    825          */
    826         public function gp_translation_events_can_crud_event( bool $can_crud_event ): bool {
    827                 $user = wp_get_current_user();
    828 
    829                 if ( GP::$permission->user_can( $user, 'admin' ) ) {
    830                         return true;
    831                 }
    832                 if ( current_user_can( 'manage_options' ) ) {
    833                         return true;
    834                 }
    835                 if ( self::is_user_a_wporg_gte( $user ) ) {
    836                         return true;
    837                 }
    838 
    839                 return false;
     822         * @return array All caps the user has.
     823         */
     824        public function gp_translation_events_can_create_events( $allcaps, $caps, $args, $user ): array {
     825                if ( in_array( 'create_translation_event', $caps, true ) ) {
     826                        if ( GP::$permission->user_can( $user, 'admin' ) ) {
     827                                $allcaps['create_translation_event'] = true;
     828                        } elseif ( current_user_can( 'manage_options' ) ) {
     829                                $allcaps['create_translation_event'] = true;
     830                        } elseif ( self::is_user_a_wporg_gte( $user ) ) {
     831                                $allcaps['create_translation_event'] = true;
     832                        }
     833                }
     834
     835                return $allcaps;
    840836        }
    841837
Note: See TracChangeset for help on using the changeset viewer.