From 6d7f0a6fd8b596263636e55fc9281ad764c95ff6 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 2 Nov 2019 21:19:42 -0400 Subject: [PATCH] Remove duplicate profile_uid key in App->profile array --- include/conversation.php | 4 ++-- mod/cal.php | 19 +++------------ mod/display.php | 19 +++++++-------- src/BaseModule.php | 3 +-- src/Content/Widget.php | 4 ++-- src/Model/Profile.php | 34 +++++++++++++------------- src/Module/Profile.php | 42 ++++++++++++++++----------------- src/Module/Profile/Contacts.php | 2 +- src/Object/Thread.php | 2 +- view/theme/vier/theme.php | 4 ++-- 10 files changed, 59 insertions(+), 74 deletions(-) diff --git a/include/conversation.php b/include/conversation.php index 264fa6ceb..ed273a52c 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -494,7 +494,7 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ } } elseif ($mode === 'profile') { $items = conversation_add_children($items, false, $order, $uid); - $profile_owner = $a->profile['profile_uid']; + $profile_owner = $a->profile['uid']; if (!$update) { $tab = 'posts'; @@ -508,7 +508,7 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ */ $live_update_div = '
' . "\r\n" - . "\r\n"; } } diff --git a/mod/cal.php b/mod/cal.php index cf0e498d5..e6570018b 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -101,27 +101,14 @@ function cal_content(App $a) } // Setup permissions structures - $remote_contact = false; - $contact_id = 0; - $owner_uid = intval($a->data['user']['uid']); $nick = $a->data['user']['nickname']; - if (!empty(Session::getRemoteContactID($a->profile['profile_uid']))) { - $contact_id = Session::getRemoteContactID($a->profile['profile_uid']); - } + $contact_id = Session::getRemoteContactID($a->profile['uid']); - if ($contact_id) { - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval($a->profile['profile_uid']) - ); - if (DBA::isResult($r)) { - $remote_contact = true; - } - } + $remote_contact = $contact_id && DBA::exists('contact', ['id' => $contact_id, 'uid' => $a->profile['uid']]); - $is_owner = local_user() == $a->profile['profile_uid']; + $is_owner = local_user() == $a->profile['uid']; if ($a->profile['hidewall'] && !$is_owner && !$remote_contact) { notice(DI::l10n()->t('Access to this profile has been restricted.') . EOL); diff --git a/mod/display.php b/mod/display.php index f06b98dd4..b5edafc5f 100644 --- a/mod/display.php +++ b/mod/display.php @@ -100,7 +100,7 @@ function display_init(App $a) $nickname = str_replace(Strings::normaliseLink(DI::baseUrl())."/profile/", "", Strings::normaliseLink($profiledata["url"])); if ($nickname != $a->user["nickname"]) { - $profile = DBA::fetchFirst("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` + $profile = DBA::fetchFirst("SELECT `profile`.* , `contact`.`avatar-date` AS picdate, `user`.* FROM `profile` INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid` WHERE `user`.`nickname` = ? AND `profile`.`is-default` AND `contact`.`self` LIMIT 1", $nickname @@ -175,9 +175,9 @@ function display_content(App $a, $update = false, $update_uid = 0) $item_id = $_REQUEST['item_id']; $item = Item::selectFirst(['uid', 'parent', 'parent-uri'], ['id' => $item_id]); if ($item['uid'] != 0) { - $a->profile = ['uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])]; + $a->profile = ['uid' => intval($item['uid'])]; } else { - $a->profile = ['uid' => intval($update_uid), 'profile_uid' => intval($update_uid)]; + $a->profile = ['uid' => intval($update_uid)]; } $item_parent = $item['parent']; $item_parent_uri = $item['parent-uri']; @@ -249,13 +249,12 @@ function display_content(App $a, $update = false, $update_uid = 0) if (DBA::isResult($parent)) { $a->profile['uid'] = ($a->profile['uid'] ?? 0) ?: $parent['uid']; - $a->profile['profile_uid'] = ($a->profile['profile_uid'] ?? 0) ?: $parent['uid']; - $is_remote_contact = Session::getRemoteContactID($a->profile['profile_uid']); + $is_remote_contact = Session::getRemoteContactID($a->profile['uid']); if ($is_remote_contact) { $item_uid = $parent['uid']; } } else { - $a->profile = ['uid' => intval($item['uid']), 'profile_uid' => intval($item['uid'])]; + $a->profile = ['uid' => intval($item['uid'])]; } $page_contact = DBA::selectFirst('contact', [], ['self' => true, 'uid' => $a->profile['uid']]); @@ -263,7 +262,7 @@ function display_content(App $a, $update = false, $update_uid = 0) $a->page_contact = $page_contact; } - $is_owner = (local_user() && (in_array($a->profile['profile_uid'], [local_user(), 0])) ? true : false); + $is_owner = (local_user() && (in_array($a->profile['uid'], [local_user(), 0])) ? true : false); if (!empty($a->profile['hidewall']) && !$is_owner && !$is_remote_contact) { throw new HTTPException\ForbiddenException(DI::l10n()->t('Access to this profile has been restricted.')); @@ -284,9 +283,9 @@ function display_content(App $a, $update = false, $update_uid = 0) ]; $o .= status_editor($a, $x, 0, true); } - $sql_extra = Item::getPermissionsSQLByUserId($a->profile['profile_uid']); + $sql_extra = Item::getPermissionsSQLByUserId($a->profile['uid']); - if (local_user() && (local_user() == $a->profile['profile_uid'])) { + if (local_user() && (local_user() == $a->profile['uid'])) { $condition = ['parent-uri' => $item_parent_uri, 'uid' => local_user(), 'unseen' => true]; $unseen = Item::exists($condition); } else { @@ -299,7 +298,7 @@ function display_content(App $a, $update = false, $update_uid = 0) $condition = ["`id` = ? AND `item`.`uid` IN (0, ?) " . $sql_extra, $item_id, $item_uid]; $fields = ['parent-uri', 'body', 'title', 'author-name', 'author-avatar', 'plink', 'author-id', 'owner-id', 'contact-id']; - $item = Item::selectFirstForUser($a->profile['profile_uid'], $fields, $condition); + $item = Item::selectFirstForUser($a->profile['uid'], $fields, $condition); if (!DBA::isResult($item)) { throw new HTTPException\NotFoundException(DI::l10n()->t('The requested item doesn\'t exist or has been deleted.')); diff --git a/src/BaseModule.php b/src/BaseModule.php index 2250f22bb..96ec2e9f1 100644 --- a/src/BaseModule.php +++ b/src/BaseModule.php @@ -61,8 +61,7 @@ abstract class BaseModule */ public static function post(array $parameters = []) { - // $a = self::getApp(); - // $a->internalRedirect('module'); + // DI::baseurl()->redirect('module'); } /** diff --git a/src/Content/Widget.php b/src/Content/Widget.php index a38b9a305..8fa09ee8a 100644 --- a/src/Content/Widget.php +++ b/src/Content/Widget.php @@ -301,7 +301,7 @@ class Widget { $a = DI::app(); - $uid = intval($a->profile['profile_uid']); + $uid = intval($a->profile['uid']); if (!Feature::isEnabled($uid, 'categories')) { return ''; @@ -418,7 +418,7 @@ class Widget { $a = DI::app(); - $uid = intval($a->profile['profile_uid']); + $uid = intval($a->profile['uid']); if (!$uid || !$a->profile['url']) { return ''; diff --git a/src/Model/Profile.php b/src/Model/Profile.php index d9524a739..4546229f7 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -126,13 +126,13 @@ class Profile * * @param App $a * @param string $nickname string - * @param int $profile int + * @param int $profile_id int * @param array $profiledata array * @param boolean $show_connect Show connect link * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \ImagickException */ - public static function load(App $a, $nickname, $profile = 0, array $profiledata = [], $show_connect = true) + public static function load(App $a, $nickname, $profile_id = 0, array $profiledata = [], $show_connect = true) { $user = DBA::selectFirst('user', ['uid'], ['nickname' => $nickname, 'account_removed' => false]); @@ -155,31 +155,31 @@ class Profile } } - $pdata = self::getByNickname($nickname, $user['uid'], $profile); + $profile = self::getByNickname($nickname, $user['uid'], $profile_id); - if (empty($pdata) && empty($profiledata)) { + if (empty($profile) && empty($profiledata)) { Logger::log('profile error: ' . DI::args()->getQueryString(), Logger::DEBUG); return; } - if (empty($pdata)) { - $pdata = ['uid' => 0, 'profile_uid' => 0, 'is-default' => false,'name' => $nickname]; + if (empty($profile)) { + $profile = ['uid' => 0, 'is-default' => false,'name' => $nickname]; } // fetch user tags if this isn't the default profile - if (!$pdata['is-default']) { - $condition = ['uid' => $pdata['profile_uid'], 'is-default' => true]; - $profile = DBA::selectFirst('profile', ['pub_keywords'], $condition); - if (DBA::isResult($profile)) { - $pdata['pub_keywords'] = $profile['pub_keywords']; + if (!$profile['is-default']) { + $condition = ['uid' => $profile['uid'], 'is-default' => true]; + $profile_id = DBA::selectFirst('profile', ['pub_keywords'], $condition); + if (DBA::isResult($profile_id)) { + $profile['pub_keywords'] = $profile_id['pub_keywords']; } } - $a->profile = $pdata; - $a->profile_uid = $pdata['profile_uid']; + $a->profile = $profile; + $a->profile_uid = $profile['uid']; - $a->profile['mobile-theme'] = DI::pConfig()->get($a->profile['profile_uid'], 'system', 'mobile_theme'); + $a->profile['mobile-theme'] = DI::pConfig()->get($a->profile['uid'], 'system', 'mobile_theme'); $a->profile['network'] = Protocol::DFRN; DI::page()['title'] = $a->profile['name'] . ' @ ' . DI::config()->get('config', 'sitename'); @@ -255,7 +255,7 @@ class Profile $profile = DBA::fetchFirst( "SELECT `contact`.`id` AS `contact_id`, `contact`.`photo` AS `contact_photo`, `contact`.`thumb` AS `contact_thumb`, `contact`.`micro` AS `contact_micro`, - `profile`.`uid` AS `profile_uid`, `profile`.*, + `profile`.*, `contact`.`avatar-date` AS picdate, `contact`.`addr`, `contact`.`url`, `user`.* FROM `profile` INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` AND `contact`.`self` @@ -269,7 +269,7 @@ class Profile $profile = DBA::fetchFirst( "SELECT `contact`.`id` AS `contact_id`, `contact`.`photo` as `contact_photo`, `contact`.`thumb` AS `contact_thumb`, `contact`.`micro` AS `contact_micro`, - `profile`.`uid` AS `profile_uid`, `profile`.*, + `profile`.*, `contact`.`avatar-date` AS picdate, `contact`.`addr`, `contact`.`url`, `user`.* FROM `profile` INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` AND `contact`.`self` @@ -350,7 +350,7 @@ class Profile $profile_is_dfrn = $profile['network'] == Protocol::DFRN; $profile_is_native = in_array($profile['network'], Protocol::NATIVE_SUPPORT); - $local_user_is_self = local_user() && local_user() == ($profile['profile_uid'] ?? 0); + $local_user_is_self = local_user() && local_user() == ($profile['uid'] ?? 0); $visitor_is_authenticated = (bool)self::getMyURL(); $visitor_is_following = in_array($visitor_contact['rel'] ?? 0, [Contact::FOLLOWER, Contact::FRIEND]) diff --git a/src/Module/Profile.php b/src/Module/Profile.php index 97c108841..e3ae7b3f5 100644 --- a/src/Module/Profile.php +++ b/src/Module/Profile.php @@ -82,8 +82,8 @@ class Profile extends BaseModule $page['htmlhead'] .= "\n"; - $blocked = !local_user() && !Session::getRemoteContactID($a->profile['profile_uid']) && DI::config()->get('system', 'block_public'); - $userblock = !local_user() && !Session::getRemoteContactID($a->profile['profile_uid']) && $a->profile['hidewall']; + $blocked = !local_user() && !Session::getRemoteContactID($a->profile['uid']) && DI::config()->get('system', 'block_public'); + $userblock = !local_user() && !Session::getRemoteContactID($a->profile['uid']) && $a->profile['hidewall']; if (!empty($a->profile['page-flags']) && $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { $page['htmlhead'] .= '' . "\n"; @@ -149,7 +149,7 @@ class Profile extends BaseModule $hashtags = $_GET['tag'] ?? ''; - if (DI::config()->get('system', 'block_public') && !local_user() && !Session::getRemoteContactID($a->profile['profile_uid'])) { + if (DI::config()->get('system', 'block_public') && !local_user() && !Session::getRemoteContactID($a->profile['uid'])) { return Login::form(); } @@ -157,14 +157,14 @@ class Profile extends BaseModule if ($update) { // Ensure we've got a profile owner if updating. - $a->profile['profile_uid'] = $update; - } elseif ($a->profile['profile_uid'] == local_user()) { + $a->profile['uid'] = $update; + } elseif ($a->profile['uid'] == local_user()) { Nav::setSelected('home'); } - $remote_contact = Session::getRemoteContactID($a->profile['profile_uid']); - $is_owner = local_user() == $a->profile['profile_uid']; - $last_updated_key = "profile:" . $a->profile['profile_uid'] . ":" . local_user() . ":" . $remote_contact; + $remote_contact = Session::getRemoteContactID($a->profile['uid']); + $is_owner = local_user() == $a->profile['uid']; + $last_updated_key = "profile:" . $a->profile['uid'] . ":" . local_user() . ":" . $remote_contact; if (!empty($a->profile['hidewall']) && !$is_owner && !$remote_contact) { notice(DI::l10n()->t('Access to this profile has been restricted.') . EOL); @@ -182,16 +182,16 @@ class Profile extends BaseModule return $o; } - $o .= Widget::commonFriendsVisitor($a->profile['profile_uid']); + $o .= Widget::commonFriendsVisitor($a->profile['uid']); $commpage = $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $commvisitor = $commpage && $remote_contact; - DI::page()['aside'] .= Widget::postedByYear(DI::baseUrl()->get(true) . '/profile/' . $a->profile['nickname'], $a->profile['profile_uid'] ?? 0, true); + DI::page()['aside'] .= Widget::postedByYear(DI::baseUrl()->get(true) . '/profile/' . $a->profile['nickname'], $a->profile['uid'] ?? 0, true); DI::page()['aside'] .= Widget::categories(DI::baseUrl()->get(true) . '/profile/' . $a->profile['nickname'], XML::escape($category)); DI::page()['aside'] .= Widget::tagCloud(); - if (Security::canWriteToUserWall($a->profile['profile_uid'])) { + if (Security::canWriteToUserWall($a->profile['uid'])) { $x = [ 'is_owner' => $is_owner, 'allow_location' => ($is_owner || $commvisitor) && $a->profile['allow_location'], @@ -206,7 +206,7 @@ class Profile extends BaseModule 'acl' => $is_owner ? ACL::getFullSelectorHTML(DI::page(), $a->user, true) : '', 'bang' => '', 'visitor' => $is_owner || $commvisitor ? 'block' : 'none', - 'profile_uid' => $a->profile['profile_uid'], + 'profile_uid' => $a->profile['uid'], ]; $o .= status_editor($a, $x); @@ -214,7 +214,7 @@ class Profile extends BaseModule } // Get permissions SQL - if $remote_contact is true, our remote user has been pre-verified and we already have fetched his/her groups - $sql_extra = Item::getPermissionsSQLByUserId($a->profile['profile_uid']); + $sql_extra = Item::getPermissionsSQLByUserId($a->profile['uid']); $sql_extra2 = ''; $last_updated_array = Session::get('last_updated', []); @@ -246,7 +246,7 @@ class Profile extends BaseModule $sql_extra4 $sql_extra ORDER BY `item`.`received` DESC", - $a->profile['profile_uid'], + $a->profile['uid'], GRAVITY_ACTIVITY ); @@ -260,12 +260,12 @@ class Profile extends BaseModule if (!empty($category)) { $sql_post_table = sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", - DBA::escape(Strings::protectSprintf($category)), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), intval($a->profile['profile_uid'])); + DBA::escape(Strings::protectSprintf($category)), intval(TERM_OBJ_POST), intval(TERM_CATEGORY), intval($a->profile['uid'])); } if (!empty($hashtags)) { $sql_post_table .= sprintf("INNER JOIN (SELECT `oid` FROM `term` WHERE `term` = '%s' AND `otype` = %d AND `type` = %d AND `uid` = %d ORDER BY `tid` DESC) AS `term` ON `item`.`id` = `term`.`oid` ", - DBA::escape(Strings::protectSprintf($hashtags)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), intval($a->profile['profile_uid'])); + DBA::escape(Strings::protectSprintf($hashtags)), intval(TERM_OBJ_POST), intval(TERM_HASHTAG), intval($a->profile['uid'])); } if (!empty($datequery)) { @@ -277,7 +277,7 @@ class Profile extends BaseModule // Does the profile page belong to a forum? // If not then we can improve the performance with an additional condition - $condition = ['uid' => $a->profile['profile_uid'], 'page-flags' => [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP]]; + $condition = ['uid' => $a->profile['uid'], 'page-flags' => [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP]]; if (!DBA::exists('user', $condition)) { $sql_extra3 = sprintf(" AND `thread`.`contact-id` = %d ", intval(intval($a->profile['contact_id']))); } else { @@ -321,7 +321,7 @@ class Profile extends BaseModule $sql_extra2 ORDER BY `thread`.`received` DESC $pager_sql", - $a->profile['profile_uid'] + $a->profile['uid'] ); } @@ -344,13 +344,13 @@ class Profile extends BaseModule $items = DBA::toArray($items_stmt); - if ($pager->getStart() == 0 && !empty($a->profile['profile_uid'])) { - $pinned_items = Item::selectPinned($a->profile['profile_uid'], ['uri', 'pinned'], ['true' . $sql_extra]); + if ($pager->getStart() == 0 && !empty($a->profile['uid'])) { + $pinned_items = Item::selectPinned($a->profile['uid'], ['uri', 'pinned'], ['true' . $sql_extra]); $pinned = Item::inArray($pinned_items); $items = array_merge($items, $pinned); } - $o .= conversation($a, $items, $pager, 'profile', $update, false, 'pinned_received', $a->profile['profile_uid']); + $o .= conversation($a, $items, $pager, 'profile', $update, false, 'pinned_received', $a->profile['uid']); if (!$update) { $o .= $pager->renderMinimal(count($items)); diff --git a/src/Module/Profile/Contacts.php b/src/Module/Profile/Contacts.php index 09691100a..1a21df0ec 100644 --- a/src/Module/Profile/Contacts.php +++ b/src/Module/Profile/Contacts.php @@ -40,7 +40,7 @@ class Contacts extends BaseModule Profile::load($a, $nickname); - $is_owner = $a->profile['profile_uid'] == local_user(); + $is_owner = $a->profile['uid'] == local_user(); // tabs $o = Profile::getTabs($a, 'contacts', $is_owner, $nickname); diff --git a/src/Object/Thread.php b/src/Object/Thread.php index f88dee2c4..0d0def061 100644 --- a/src/Object/Thread.php +++ b/src/Object/Thread.php @@ -61,7 +61,7 @@ class Thread $this->writable = true; break; case 'profile': - $this->profile_owner = $a->profile['profile_uid']; + $this->profile_owner = $a->profile['uid']; $this->writable = Security::canWriteToUserWall($this->profile_owner); break; case 'display': diff --git a/view/theme/vier/theme.php b/view/theme/vier/theme.php index d4bdc6e31..9188bcbc9 100644 --- a/view/theme/vier/theme.php +++ b/view/theme/vier/theme.php @@ -145,7 +145,7 @@ function vier_community_info() $tpl = Renderer::getMarkupTemplate('ch_directory_item.tpl'); - $r = q("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname` + $r = q("SELECT `profile`.*, `user`.`nickname` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` = 1 $publish AND `user`.`blocked` = 0 $order LIMIT %d , %d ", 0, @@ -157,7 +157,7 @@ function vier_community_info() $aside['$lastusers_items'] = []; foreach ($r as $rr) { - $profile_link = 'profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['profile_uid']); + $profile_link = 'profile/' . ((strlen($rr['nickname'])) ? $rr['nickname'] : $rr['uid']); $entry = Renderer::replaceMacros($tpl, [ '$id' => $rr['id'], '$profile_link' => $profile_link,