diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 27315af0..29c9d67e 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -1172,7 +1172,7 @@ if ( ! class_exists( 'Fields' ) ) { um_fetch_user( $_um_profile_id ); if ( isset( $data['public'] ) && $data['public'] == '-2' && $data['roles'] ) { $current_user_roles = um_user( 'roles' ); - if ( count( array_intersect( $current_user_roles, $data['roles'] ) ) > 0 ) { + if ( ! empty( $current_user_roles ) && count( array_intersect( $current_user_roles, $data['roles'] ) ) > 0 ) { $disabled = ''; } } diff --git a/includes/core/class-roles-capabilities.php b/includes/core/class-roles-capabilities.php index f9b181dd..0d8e2613 100644 --- a/includes/core/class-roles-capabilities.php +++ b/includes/core/class-roles-capabilities.php @@ -440,14 +440,14 @@ if ( ! class_exists( 'Roles_Capabilities' ) ) { $return = 0; elseif ( get_current_user_id() == $user_id && ! um_user( 'can_edit_profile') ) $return = 0; - elseif ( um_user( 'can_edit_roles' ) && count( array_intersect( $current_user_roles, um_user( 'can_edit_roles' ) ) ) <= 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; break; case 'delete': if ( ! um_user( 'can_delete_everyone' ) ) $return = 0; - elseif ( um_user( 'can_delete_roles' ) && count( array_intersect( $current_user_roles, um_user( 'can_delete_roles' ) ) ) <= 0 ) + elseif ( um_user( 'can_delete_roles' ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, um_user( 'can_delete_roles' ) ) ) <= 0 ) ) $return = 0; break; diff --git a/includes/core/class-shortcodes.php b/includes/core/class-shortcodes.php index 38a3a27f..7614caca 100644 --- a/includes/core/class-shortcodes.php +++ b/includes/core/class-shortcodes.php @@ -671,13 +671,13 @@ if ( ! class_exists( 'Shortcodes' ) ) { if ( ! empty( $a['not'] ) ) { $not_in_roles = explode( ",", $a['not'] ); - if ( is_array( $not_in_roles ) && count( array_intersect( $current_user_roles, $not_in_roles ) ) <= 0 ) { + if ( is_array( $not_in_roles ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $not_in_roles ) ) <= 0 ) ) { return do_shortcode( $this->convert_locker_tags( $content ) ); } } else { $roles = explode( ",", $a['roles'] ); - if ( is_array( $roles ) && count( array_intersect( $current_user_roles, $roles ) ) > 0 ) { + if ( ! empty( $current_user_roles ) && is_array( $roles ) && count( array_intersect( $current_user_roles, $roles ) ) > 0 ) { return do_shortcode( $this->convert_locker_tags( $content ) ); } } diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php index ebc14652..6f17116b 100644 --- a/includes/core/um-actions-form.php +++ b/includes/core/um-actions-form.php @@ -143,7 +143,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; if ( isset( $array['public'] ) && -2 == $array['public'] && ! empty( $array['roles'] ) && is_user_logged_in() ) { $current_user_roles = um_user( 'roles' ); - if ( count( array_intersect( $current_user_roles, $array['roles'] ) ) <= 0 ) { + if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $array['roles'] ) ) <= 0 ) { continue; } } diff --git a/includes/core/um-actions-members.php b/includes/core/um-actions-members.php index 7c2b16fa..4e21386d 100644 --- a/includes/core/um-actions-members.php +++ b/includes/core/um-actions-members.php @@ -23,7 +23,7 @@ if ( ! defined( 'ABSPATH' ) ) exit; if ( $args['search'] == 1 && is_array( $search_filters ) ) { // search on $current_user_roles = um_user( 'roles' ); - if ( ! empty( $args['roles_can_search'] ) && count( array_intersect( $current_user_roles, $args['roles_can_search'] ) ) <= 0 ) { + if ( ! empty( $args['roles_can_search'] ) && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $args['roles_can_search'] ) ) <= 0 ) ) { return; } diff --git a/includes/core/um-filters-navmenu.php b/includes/core/um-filters-navmenu.php index e439fd01..137643e6 100644 --- a/includes/core/um-filters-navmenu.php +++ b/includes/core/um-filters-navmenu.php @@ -58,6 +58,9 @@ if ( ! is_admin() ) { case 2: if ( is_user_logged_in() && ! empty( $roles ) ) { $current_user_roles = um_user( 'roles' ); + if ( empty( $current_user_roles ) ) { + return false; + } $visible = ( count( array_intersect( $current_user_roles, (array)$roles ) ) > 0 ) ? true : false; } else { $visible = is_user_logged_in() ? true : false; diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index 8206f28e..cc56842c 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1009,14 +1009,14 @@ function um_can_view_field( $data ) { if ( is_user_logged_in() ) { $current_user_roles = um_user( 'roles' ); - if ( $data['public'] == '-3' && ! um_is_user_himself() && count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) + if ( $data['public'] == '-3' && ! um_is_user_himself() && ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) ) return false; if ( ! um_is_user_himself() && $data['public'] == '-1' && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) return false; if ( $data['public'] == '-2' && $data['roles'] ) - if ( count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) + if ( empty( $current_user_roles ) || count( array_intersect( $current_user_roles, $data['roles'] ) ) <= 0 ) return false; }