From f52f266aa849f3bca70754329582dec324199cb7 Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Fri, 23 Jun 2023 03:16:42 +0300 Subject: [PATCH] - reviewed `um_pre_profile_shortcode()`; --- includes/core/um-actions-profile.php | 60 +++++++++++++--------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php index 1376c69a..74e66ff6 100644 --- a/includes/core/um-actions-profile.php +++ b/includes/core/um-actions-profile.php @@ -1363,54 +1363,50 @@ function um_profile_header( $args ) { } add_action( 'um_profile_header', 'um_profile_header', 9 ); - /** - * Adds profile permissions to view/edit + * Adds profile permissions to view/edit. * - * @param $args + * @param array $args */ function um_pre_profile_shortcode( $args ) { - if ( ! array_key_exists( 'mode', $args ) ) { + // It handles only UM Profile forms. + if ( ! array_key_exists( 'mode', $args ) || 'profile' !== $args['mode'] ) { return; } - $mode = $args['mode']; - if ( 'profile' === $mode ) { - if ( UM()->fields()->editing ) { - if ( um_get_requested_user() ) { - if ( ! UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() ) ) { - um_redirect_home( um_get_requested_user(), um_is_myprofile() ); - } - um_fetch_user( um_get_requested_user() ); + if ( UM()->fields()->editing ) { + if ( um_get_requested_user() ) { + if ( ! UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() ) ) { + um_redirect_home( um_get_requested_user(), um_is_myprofile() ); } + um_fetch_user( um_get_requested_user() ); + } + } else { + UM()->fields()->viewing = 1; + + if ( um_get_requested_user() ) { + if ( ! um_is_myprofile() && ! um_can_view_profile( um_get_requested_user() ) ) { + um_redirect_home( um_get_requested_user(), um_is_myprofile() ); + } + + if ( ! UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() ) ) { + UM()->user()->cannot_edit = 1; + } + + um_fetch_user( um_get_requested_user() ); } else { - UM()->fields()->viewing = 1; + if ( ! is_user_logged_in() ) { + um_redirect_home( um_get_requested_user(), um_is_myprofile() ); + } - if ( um_get_requested_user() ) { - if ( ! um_can_view_profile( um_get_requested_user() ) && ! um_is_myprofile() ) { - um_redirect_home( um_get_requested_user(), um_is_myprofile() ); - } - - if ( ! UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() ) ) { - UM()->user()->cannot_edit = 1; - } - - um_fetch_user( um_get_requested_user() ); - } else { - if ( ! is_user_logged_in() ) { - um_redirect_home( um_get_requested_user(), um_is_myprofile() ); - } - - if ( ! um_user( 'can_edit_profile' ) ) { - UM()->user()->cannot_edit = 1; - } + if ( ! um_user( 'can_edit_profile' ) ) { + UM()->user()->cannot_edit = 1; } } } } add_action( 'um_pre_profile_shortcode', 'um_pre_profile_shortcode' ); - /** * Display the edit profile icon *