From d577108707a970cff9f98518ba0ddc577c082a68 Mon Sep 17 00:00:00 2001 From: nikitasinelnikov Date: Wed, 7 Apr 2021 02:43:33 +0300 Subject: [PATCH] - fixed field's privacy settings on the profile page when view mode; - fixed "Edit" button visibility in the member directory grid; --- includes/core/class-member-directory.php | 2 +- includes/core/um-actions-form.php | 6 +++++- includes/um-short-functions.php | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 9c64dc34..3aceb388 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -2211,7 +2211,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $dropdown_actions = $this->build_user_actions_list( $user_id ); $actions = array(); - $can_edit = UM()->roles()->um_current_user_can( 'edit', $user_id ) || UM()->roles()->um_user_can( 'can_edit_everyone' ); + $can_edit = UM()->roles()->um_current_user_can( 'edit', $user_id ); // Replace hook 'um_members_just_after_name' ob_start(); diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php index b5ce2608..40214488 100644 --- a/includes/core/um-actions-form.php +++ b/includes/core/um-actions-form.php @@ -428,8 +428,12 @@ function um_submit_form_errors_hook_( $args ) { if ( ! empty( $fields ) ) { + $can_edit = false; $current_user_roles = []; if ( is_user_logged_in() ) { + + $can_edit = UM()->roles()->um_current_user_can( 'edit', $args['user_id'] ); + um_fetch_user( get_current_user_id() ); $current_user_roles = um_user( 'roles' ); um_reset_user(); @@ -458,7 +462,7 @@ function um_submit_form_errors_hook_( $args ) { case '-1': // Only visible to profile owner and admins if ( ! is_user_logged_in() ) { $can_view = false; - } elseif ( $args['user_id'] != get_current_user_id() && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) { + } elseif ( $args['user_id'] != get_current_user_id() && ! $can_edit ) { $can_view = false; } break; diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index b4d26837..81c9bb62 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1514,8 +1514,12 @@ function um_can_view_field( $data ) { if ( isset( $data['public'] ) && UM()->fields()->set_mode != 'register' ) { + $can_edit = false; $current_user_roles = []; if ( is_user_logged_in() ) { + + $can_edit = UM()->roles()->um_current_user_can( 'edit', um_user( 'ID' ) ); + $previous_user = um_user( 'ID' ); um_fetch_user( get_current_user_id() ); @@ -1534,7 +1538,7 @@ function um_can_view_field( $data ) { case '-1': // Only visible to profile owner and users who can edit other member accounts if ( ! is_user_logged_in() ) { $can_view = false; - } elseif ( ! um_is_user_himself() && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) { + } elseif ( ! um_is_user_himself() && ! $can_edit ) { $can_view = false; } break;