From cc76ce5674280885097049dbe3a6199195d00a4a Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Fri, 20 Jan 2017 23:19:49 +0800 Subject: [PATCH] Fix field view and edit restriction --- core/um-fields.php | 11 ++++++++++- core/um-short-functions.php | 11 +++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/core/um-fields.php b/core/um-fields.php index 56374aa7..2a8fb690 100644 --- a/core/um-fields.php +++ b/core/um-fields.php @@ -1110,13 +1110,22 @@ class UM_Fields { if ( ( $visibility == 'view' && $this->set_mode == 'register' ) || ( isset( $data['editable'] ) && $data['editable'] == 0 && $this->set_mode == 'profile' ) ){ - $disabled = ' disabled="disabled" '; + + $disabled = ' disabled="disabled" '; + + if ( $data['public'] == '-2' && $data['roles'] ){ + if ( in_array( $ultimatemember->query->get_role_by_userid( get_current_user_id() ), $data['roles'] ) ){ + $disabled = ''; + } + } + } if( ! isset( $data['autocomplete'] ) ){ $autocomplete = 'off'; } + if ( !um_can_view_field( $data ) ) return; if ( !um_can_edit_field( $data ) ) return; diff --git a/core/um-short-functions.php b/core/um-short-functions.php index 129f285b..b680ef40 100644 --- a/core/um-short-functions.php +++ b/core/um-short-functions.php @@ -1056,11 +1056,18 @@ if ( is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0 ) { - if ( um_is_user_himself() && !um_user('can_edit_everyone') ) + if( $data['public'] == "-2"){ return true; + } - if ( !um_is_user_himself() && !um_user_can('can_edit_everyone') ) + if ( um_is_user_himself() && !um_user('can_edit_everyone') ){ + return true; + } + + + if ( !um_is_user_himself() && !um_user_can('can_edit_everyone') ){ return false; + } }