From 16356d59a44400ad0d94369ff12ceb40a95ca055 Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Sun, 5 Aug 2018 14:30:17 +0300 Subject: [PATCH] - fixed WP Capabilities for Gravity Forms plugin; - fixed ability to view other users profiles; --- .../admin/templates/role/wp-capabilities.php | 7 ++++- includes/class-init.php | 13 +++++++++ includes/core/class-roles-capabilities.php | 29 ++++++++++++------- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/includes/admin/templates/role/wp-capabilities.php b/includes/admin/templates/role/wp-capabilities.php index f9a87d91..64fdfc2c 100644 --- a/includes/admin/templates/role/wp-capabilities.php +++ b/includes/admin/templates/role/wp-capabilities.php @@ -62,8 +62,13 @@ } } + //gravity forms compatibility filter + $all_caps = apply_filters( 'members_get_capabilities', array_keys( $all_caps ) ); $fields = array(); - foreach ( array_keys( $all_caps ) as $cap ) { + foreach ( $all_caps as $cap ) { + if ( is_numeric( $cap ) ) { + continue; + } $fields[ $cap ] = $cap; } diff --git a/includes/class-init.php b/includes/class-init.php index b93fd6d2..a8f23b22 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -280,6 +280,7 @@ if ( ! class_exists( 'UM' ) ) { // include UM classes $this->includes(); + $this->plugins_loaded(); // include hook files add_action( 'plugins_loaded', array( &$this, 'init' ), 0 ); @@ -300,6 +301,18 @@ if ( ! class_exists( 'UM' ) ) { } + public function plugins_loaded() { + //gravity forms + if ( ! function_exists('members_get_capabilities' ) ) { + + function members_get_capabilities() { + + } + + } + } + + function old_update_patch() { global $um_woocommerce, $um_bbpress, $um_followers, $um_friends, $um_mailchimp, $um_messaging, $um_mycred, $um_notices, $um_notifications, $um_online, $um_private_content, $um_profile_completeness, $um_recaptcha, $um_reviews, $um_activity, $um_social_login, $um_user_tags, $um_verified; diff --git a/includes/core/class-roles-capabilities.php b/includes/core/class-roles-capabilities.php index c5c9fb1f..45ada50b 100644 --- a/includes/core/class-roles-capabilities.php +++ b/includes/core/class-roles-capabilities.php @@ -590,16 +590,25 @@ if ( ! class_exists( 'um\core\Roles_Capabilities' ) ) { switch( $cap ) { case 'edit': - if ( get_current_user_id() == $user_id && um_user( 'can_edit_profile' ) ) - $return = 1; - elseif ( get_current_user_id() == $user_id && ! um_user( 'can_edit_profile' ) ) - $return = 0; - elseif ( um_user( 'can_edit_everyone' ) ) - $return = 1; - elseif ( ! um_user( 'can_edit_everyone' ) ) - $return = 0; - elseif ( um_user( 'can_edit_roles' ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, um_user( 'can_edit_roles' ) ) ) <= 0 ) ) - $return = 0; + + if ( get_current_user_id() == $user_id ) { + if ( um_user( 'can_edit_profile' ) ) { + $return = 1; + } else { + $return = 0; + } + } else { + if ( ! um_user( 'can_edit_everyone' ) ) { + $return = 0; + } else { + if ( um_user( 'can_edit_roles' ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, um_user( 'can_edit_roles' ) ) ) <= 0 ) ) { + $return = 0; + } else { + $return = 1; + } + } + } + break; case 'delete':