Skip to:
Content

BuddyPress.org

Ticket #8794: 8794-edit-users-cap.1.diff

File 8794-edit-users-cap.1.diff, 1.1 KB (added by dcavins, 6 months ago)

BP Members Admin: Use a BP-specific capability which is then mapped to the correct network or single-site edit user cap. This allows plugins to catch and set their own caps for our specific capability.

  • src/bp-core/bp-core-caps.php

    diff --git src/bp-core/bp-core-caps.php src/bp-core/bp-core-caps.php
    index b10a6700a..322b9dafd 100644
    function bp_map_meta_caps( $caps, $cap, $user_id, $args ) { 
    151151                                }
    152152                        }
    153153                        break;
     154                case 'bp_manage_users_and_membership_requests' :
     155                        $caps = bp_core_do_network_admin() ? array( 'manage_network_users' ) : array( 'edit_users' );
     156                        break;
    154157        }
    155158
    156159        /**
  • src/bp-members/classes/class-bp-members-admin.php

    diff --git src/bp-members/classes/class-bp-members-admin.php src/bp-members/classes/class-bp-members-admin.php
    index dce224d44..10dc86fee 100644
    class BP_Members_Admin { 
    238238                $this->js_url    = trailingslashit( $this->admin_url . 'js'  ); // Admin CSS URL.
    239239
    240240                // Capability depends on config.
    241                 $this->capability = bp_core_do_network_admin() ? 'manage_network_users' : 'edit_users';
     241                $this->capability = 'bp_manage_users_and_membership_requests';
    242242
    243243                // The Show Profile Screen id.
    244244                $this->user_profile = is_network_admin() ? 'users' : 'profile';