From ad9c67663d8206315c649be3b27bf5418fb91ad3 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 6 Jan 2019 12:37:48 -0500 Subject: [PATCH] Move Contact::Page_* constants to User::PAGE_FLAGS_* --- include/enotify.php | 2 +- mod/admin.php | 10 ++--- mod/dfrn_confirm.php | 4 +- mod/dfrn_notify.php | 2 +- mod/dfrn_request.php | 6 +-- mod/hcard.php | 2 +- mod/photos.php | 4 +- mod/profile.php | 6 +-- mod/profiles.php | 2 +- mod/settings.php | 40 ++++++++--------- mod/videos.php | 2 +- mod/wall_attach.php | 2 +- mod/wall_upload.php | 2 +- src/Content/Nav.php | 2 +- src/Model/Contact.php | 55 ++++++++++++++++-------- src/Model/Item.php | 4 +- src/Model/User.php | 20 +++++++++ src/Object/Image.php | 2 +- src/Protocol/ActivityPub/Transmitter.php | 2 +- src/Protocol/DFRN.php | 22 +++++----- src/Protocol/Diaspora.php | 14 +++--- src/Util/Security.php | 3 +- update.php | 4 +- 23 files changed, 126 insertions(+), 86 deletions(-) diff --git a/include/enotify.php b/include/enotify.php index be8552ed6e..80e6782c2d 100644 --- a/include/enotify.php +++ b/include/enotify.php @@ -78,7 +78,7 @@ function notification($params) ['uid' => $params['uid']]); // There is no need to create notifications for forum accounts - if (!DBA::isResult($user) || in_array($user["page-flags"], [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP])) { + if (!DBA::isResult($user) || in_array($user["page-flags"], [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])) { return; } $nickname = $user["nickname"]; diff --git a/mod/admin.php b/mod/admin.php index e5df09d0ea..e20e9c341f 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -1988,11 +1988,11 @@ function admin_page_users(App $a) $adminlist = explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))); $_setup_users = function ($e) use ($adminlist) { $page_types = [ - Contact::PAGE_NORMAL => L10n::t('Normal Account Page'), - Contact::PAGE_SOAPBOX => L10n::t('Soapbox Page'), - Contact::PAGE_COMMUNITY => L10n::t('Public Forum'), - Contact::PAGE_FREELOVE => L10n::t('Automatic Friend Page'), - Contact::PAGE_PRVGROUP => L10n::t('Private Forum') + User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'), + User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'), + User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'), + User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'), + User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum') ]; $account_types = [ Contact::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'), diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 2059e14034..770c7070b4 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -202,11 +202,11 @@ function dfrn_confirm_post(App $a, $handsfree = null) $params['duplex'] = 1; } - if ($user['page-flags'] == Contact::PAGE_COMMUNITY) { + if ($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { $params['page'] = 1; } - if ($user['page-flags'] == Contact::PAGE_PRVGROUP) { + if ($user['page-flags'] == User::PAGE_FLAGS_PRVGROUP) { $params['page'] = 2; } diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 41b7684ac6..ac62d74534 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -351,7 +351,7 @@ function dfrn_notify_content(App $a) { $rino = $rino_remote; } - if (($importer['rel'] && ($importer['rel'] != Contact::SHARING)) || ($importer['page-flags'] == Contact::PAGE_COMMUNITY)) { + if (($importer['rel'] && ($importer['rel'] != Contact::SHARING)) || ($importer['page-flags'] == User::PAGE_FLAGS_COMMUNITY)) { $perm = 'rw'; } else { $perm = 'r'; diff --git a/mod/dfrn_request.php b/mod/dfrn_request.php index 7c76af1b6a..6142257e77 100644 --- a/mod/dfrn_request.php +++ b/mod/dfrn_request.php @@ -544,7 +544,7 @@ function dfrn_request_content(App $a) $auto_confirm = false; if (DBA::isResult($r)) { - if ($r[0]['page-flags'] != Contact::PAGE_NORMAL && $r[0]['page-flags'] != Contact::PAGE_PRVGROUP) { + if ($r[0]['page-flags'] != User::PAGE_FLAGS_NORMAL && $r[0]['page-flags'] != User::PAGE_FLAGS_PRVGROUP) { $auto_confirm = true; } @@ -572,7 +572,7 @@ function dfrn_request_content(App $a) 'node' => $r[0]['nickname'], 'dfrn_id' => $r[0]['issued-id'], 'intro_id' => $intro[0]['id'], - 'duplex' => (($r[0]['page-flags'] == Contact::PAGE_FREELOVE) ? 1 : 0), + 'duplex' => (($r[0]['page-flags'] == User::PAGE_FLAGS_FREELOVE) ? 1 : 0), ]; dfrn_confirm_post($a, $handsfree); } @@ -623,7 +623,7 @@ function dfrn_request_content(App $a) * because nobody is going to read the comments and * it doesn't matter if they know you or not. */ - if ($a->profile['page-flags'] == Contact::PAGE_NORMAL) { + if ($a->profile['page-flags'] == User::PAGE_FLAGS_NORMAL) { $tpl = Renderer::getMarkupTemplate('dfrn_request.tpl'); } else { $tpl = Renderer::getMarkupTemplate('auto_request.tpl'); diff --git a/mod/hcard.php b/mod/hcard.php index c8b6db455c..9a0c969ae4 100644 --- a/mod/hcard.php +++ b/mod/hcard.php @@ -29,7 +29,7 @@ function hcard_init(App $a) Profile::load($a, $which, $profile); - if (!empty($a->profile['page-flags']) && ($a->profile['page-flags'] == Contact::PAGE_COMMUNITY)) { + if (!empty($a->profile['page-flags']) && ($a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY)) { $a->page['htmlhead'] .= ''; } if (!empty($a->profile['openidserver'])) { diff --git a/mod/photos.php b/mod/photos.php index 31b026f899..2171309e8f 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -153,7 +153,7 @@ function photos_post(App $a) $visitor = 0; $page_owner_uid = $a->data['user']['uid']; - $community_page = $a->data['user']['page-flags'] == Contact::PAGE_COMMUNITY; + $community_page = $a->data['user']['page-flags'] == User::PAGE_FLAGS_COMMUNITY; if (local_user() && (local_user() == $page_owner_uid)) { $can_post = true; @@ -938,7 +938,7 @@ function photos_content(App $a) $owner_uid = $a->data['user']['uid']; - $community_page = (($a->data['user']['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); + $community_page = (($a->data['user']['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); if (local_user() && (local_user() == $owner_uid)) { $can_post = true; diff --git a/mod/profile.php b/mod/profile.php index 8a21e24dc1..e6b7f453c3 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -62,7 +62,7 @@ function profile_init(App $a) $blocked = !local_user() && !remote_user() && Config::get('system', 'block_public'); $userblock = !local_user() && !remote_user() && $a->profile['hidewall']; - if (!empty($a->profile['page-flags']) && $a->profile['page-flags'] == Contact::PAGE_COMMUNITY) { + if (!empty($a->profile['page-flags']) && $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { $a->page['htmlhead'] .= ''; } @@ -172,7 +172,7 @@ function profile_content(App $a, $update = 0) $o .= Widget::commonFriendsVisitor($a->profile['profile_uid']); - $commpage = $a->profile['page-flags'] == Contact::PAGE_COMMUNITY; + $commpage = $a->profile['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $commvisitor = $commpage && $remote_contact; $a->page['aside'] .= posted_date_widget(System::baseUrl(true) . '/profile/' . $a->profile['nickname'], $a->profile['profile_uid'], true); @@ -256,7 +256,7 @@ function profile_content(App $a, $update = 0) // 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' => [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP]]; + $condition = ['uid' => $a->profile['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 { diff --git a/mod/profiles.php b/mod/profiles.php index b56a7911d3..add9d50852 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -532,7 +532,7 @@ function profiles_content(App $a) { ]); $personal_account = !(in_array($a->user["page-flags"], - [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP])); + [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])); $detailled_profile = (PConfig::get(local_user(), 'system', 'detailled_profile') AND $personal_account); diff --git a/mod/settings.php b/mod/settings.php index 567270c6ea..8aba6809f2 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -474,14 +474,14 @@ function settings_post(App $a) } // Adjust the page flag if the account type doesn't fit to the page flag. - if (($account_type == Contact::ACCOUNT_TYPE_PERSON) && !in_array($page_flags, [Contact::PAGE_NORMAL, Contact::PAGE_SOAPBOX, Contact::PAGE_FREELOVE])) { - $page_flags = Contact::PAGE_NORMAL; - } elseif (($account_type == Contact::ACCOUNT_TYPE_ORGANISATION) && !in_array($page_flags, [Contact::PAGE_SOAPBOX])) { - $page_flags = Contact::PAGE_SOAPBOX; - } elseif (($account_type == Contact::ACCOUNT_TYPE_NEWS) && !in_array($page_flags, [Contact::PAGE_SOAPBOX])) { - $page_flags = Contact::PAGE_SOAPBOX; - } elseif (($account_type == Contact::ACCOUNT_TYPE_COMMUNITY) && !in_array($page_flags, [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP])) { - $page_flags = Contact::PAGE_COMMUNITY; + if (($account_type == Contact::ACCOUNT_TYPE_PERSON) && !in_array($page_flags, [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_FREELOVE])) { + $page_flags = User::PAGE_FLAGS_NORMAL; + } elseif (($account_type == Contact::ACCOUNT_TYPE_ORGANISATION) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) { + $page_flags = User::PAGE_FLAGS_SOAPBOX; + } elseif (($account_type == Contact::ACCOUNT_TYPE_NEWS) && !in_array($page_flags, [User::PAGE_FLAGS_SOAPBOX])) { + $page_flags = User::PAGE_FLAGS_SOAPBOX; + } elseif (($account_type == Contact::ACCOUNT_TYPE_COMMUNITY) && !in_array($page_flags, [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])) { + $page_flags = User::PAGE_FLAGS_COMMUNITY; } $err = ''; @@ -555,7 +555,7 @@ function settings_post(App $a) PConfig::set(local_user(), 'system', 'email_textonly', $email_textonly); PConfig::set(local_user(), 'system', 'detailed_notif', $detailed_notif); - if ($page_flags == Contact::PAGE_PRVGROUP) { + if ($page_flags == User::PAGE_FLAGS_PRVGROUP) { $hidewall = 1; if (!$str_contact_allow && !$str_group_allow && !$str_contact_deny && !$str_group_deny) { if ($def_gid) { @@ -1014,7 +1014,7 @@ function settings_content(App $a) // Set the account type to "Community" when the page is a community page but the account type doesn't fit // This is only happening on the first visit after the update - if (in_array($a->user['page-flags'], [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP]) && + if (in_array($a->user['page-flags'], [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP]) && ($a->user['account-type'] != Contact::ACCOUNT_TYPE_COMMUNITY)) $a->user['account-type'] = Contact::ACCOUNT_TYPE_COMMUNITY; @@ -1046,25 +1046,25 @@ function settings_content(App $a) L10n::t('Account for community discussions.'), ($a->user['account-type'] == Contact::ACCOUNT_TYPE_COMMUNITY)], - '$page_normal' => ['page-flags', L10n::t('Normal Account Page'), Contact::PAGE_NORMAL, + '$page_normal' => ['page-flags', L10n::t('Normal Account Page'), User::PAGE_FLAGS_NORMAL, L10n::t('Account for a regular personal profile that requires manual approval of "Friends" and "Followers".'), - ($a->user['page-flags'] == Contact::PAGE_NORMAL)], + ($a->user['page-flags'] == User::PAGE_FLAGS_NORMAL)], - '$page_soapbox' => ['page-flags', L10n::t('Soapbox Page'), Contact::PAGE_SOAPBOX, + '$page_soapbox' => ['page-flags', L10n::t('Soapbox Page'), User::PAGE_FLAGS_SOAPBOX, L10n::t('Account for a public profile that automatically approves contact requests as "Followers".'), - ($a->user['page-flags'] == Contact::PAGE_SOAPBOX)], + ($a->user['page-flags'] == User::PAGE_FLAGS_SOAPBOX)], - '$page_community' => ['page-flags', L10n::t('Public Forum'), Contact::PAGE_COMMUNITY, + '$page_community' => ['page-flags', L10n::t('Public Forum'), User::PAGE_FLAGS_COMMUNITY, L10n::t('Automatically approves all contact requests.'), - ($a->user['page-flags'] == Contact::PAGE_COMMUNITY)], + ($a->user['page-flags'] == User::PAGE_FLAGS_COMMUNITY)], - '$page_freelove' => ['page-flags', L10n::t('Automatic Friend Page'), Contact::PAGE_FREELOVE, + '$page_freelove' => ['page-flags', L10n::t('Automatic Friend Page'), User::PAGE_FLAGS_FREELOVE, L10n::t('Account for a popular profile that automatically approves contact requests as "Friends".'), - ($a->user['page-flags'] == Contact::PAGE_FREELOVE)], + ($a->user['page-flags'] == User::PAGE_FLAGS_FREELOVE)], - '$page_prvgroup' => ['page-flags', L10n::t('Private Forum [Experimental]'), Contact::PAGE_PRVGROUP, + '$page_prvgroup' => ['page-flags', L10n::t('Private Forum [Experimental]'), User::PAGE_FLAGS_PRVGROUP, L10n::t('Requires manual approval of contact requests.'), - ($a->user['page-flags'] == Contact::PAGE_PRVGROUP)], + ($a->user['page-flags'] == User::PAGE_FLAGS_PRVGROUP)], ]); diff --git a/mod/videos.php b/mod/videos.php index df0fb23756..1d37b76bd6 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -178,7 +178,7 @@ function videos_content(App $a) $owner_uid = $a->data['user']['uid']; - $community_page = (($a->data['user']['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); + $community_page = (($a->data['user']['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); if ((local_user()) && (local_user() == $owner_uid)) { $can_post = true; diff --git a/mod/wall_attach.php b/mod/wall_attach.php index fb665ac2fa..4a4d1edc53 100644 --- a/mod/wall_attach.php +++ b/mod/wall_attach.php @@ -41,7 +41,7 @@ function wall_attach_post(App $a) { $page_owner_uid = $r[0]['uid']; $page_owner_cid = $r[0]['id']; - $community_page = (($r[0]['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); + $community_page = (($r[0]['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); if ((local_user()) && (local_user() == $page_owner_uid)) { $can_post = true; diff --git a/mod/wall_upload.php b/mod/wall_upload.php index ea06b1d1c1..84da855984 100644 --- a/mod/wall_upload.php +++ b/mod/wall_upload.php @@ -69,7 +69,7 @@ function wall_upload_post(App $a, $desktopmode = true) $page_owner_uid = $r[0]['uid']; $default_cid = $r[0]['id']; $page_owner_nick = $r[0]['nickname']; - $community_page = (($r[0]['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); + $community_page = (($r[0]['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); if ((local_user()) && (local_user() == $page_owner_uid)) { $can_post = true; diff --git a/src/Content/Nav.php b/src/Content/Nav.php index 51cee03bf8..6bee0633f3 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -242,7 +242,7 @@ class Nav $nav['home'] = ['profile/' . $a->user['nickname'], L10n::t('Home'), '', L10n::t('Your posts and conversations')]; // Don't show notifications for public communities - if (defaults($_SESSION, 'page_flags', '') != Contact::PAGE_COMMUNITY) { + if (defaults($_SESSION, 'page_flags', '') != User::PAGE_FLAGS_COMMUNITY) { $nav['introductions'] = ['notifications/intros', L10n::t('Introductions'), '', L10n::t('Friend Requests')]; $nav['notifications'] = ['notifications', L10n::t('Notifications'), '', L10n::t('Notifications')]; $nav['notifications']['all'] = ['notifications/system', L10n::t('See all notifications'), '', '']; diff --git a/src/Model/Contact.php b/src/Model/Contact.php index f3448569b6..745bbacadd 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -32,15 +32,8 @@ use Friendica\Util\Strings; class Contact extends BaseObject { /** - * Page/profile types - * - * PAGE_NORMAL is a typical personal profile account - * PAGE_SOAPBOX automatically approves all friend requests as Contact::SHARING, (readonly) - * PAGE_COMMUNITY automatically approves all friend requests as Contact::SHARING, but with - * write access to wall and comments (no email and not included in page owner's ACL lists) - * PAGE_FREELOVE automatically approves all friend requests as full friends (Contact::FRIEND). - * - * @{ + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_NORMAL */ const PAGE_NORMAL = 0; const PAGE_SOAPBOX = 1; @@ -48,6 +41,32 @@ class Contact extends BaseObject const PAGE_FREELOVE = 3; const PAGE_BLOG = 4; const PAGE_PRVGROUP = 5; + const PAGE_NORMAL = User::PAGE_FLAGS_NORMAL; + /** + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_SOAPBOX + */ + const PAGE_SOAPBOX = User::PAGE_FLAGS_SOAPBOX; + /** + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_COMMUNITY + */ + const PAGE_COMMUNITY = User::PAGE_FLAGS_COMMUNITY; + /** + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_FREELOVE + */ + const PAGE_FREELOVE = User::PAGE_FLAGS_FREELOVE; + /** + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_BLOG + */ + const PAGE_BLOG = User::PAGE_FLAGS_BLOG; + /** + * @deprecated since version 2019.03 + * @see User::PAGE_FLAGS_PRVGROUP + */ + const PAGE_PRVGROUP = User::PAGE_FLAGS_PRVGROUP; /** * @} */ @@ -529,8 +548,8 @@ class Contact extends BaseObject $fields['micro'] = System::baseUrl() . '/images/person-48.jpg'; } - $fields['forum'] = $user['page-flags'] == self::PAGE_COMMUNITY; - $fields['prv'] = $user['page-flags'] == self::PAGE_PRVGROUP; + $fields['forum'] = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY; + $fields['prv'] = $user['page-flags'] == User::PAGE_FLAGS_PRVGROUP; // it seems as if ported accounts can have wrong values, so we make sure that now everything is fine. $fields['url'] = System::baseUrl() . '/profile/' . $user['nickname']; @@ -1465,10 +1484,10 @@ class Contact extends BaseObject { // There are several fields that indicate that the contact or user is a forum // "page-flags" is a field in the user table, - // "forum" and "prv" are used in the contact table. They stand for self::PAGE_COMMUNITY and self::PAGE_PRVGROUP. - // "community" is used in the gcontact table and is true if the contact is self::PAGE_COMMUNITY or self::PAGE_PRVGROUP. - if ((isset($contact['page-flags']) && (intval($contact['page-flags']) == self::PAGE_COMMUNITY)) - || (isset($contact['page-flags']) && (intval($contact['page-flags']) == self::PAGE_PRVGROUP)) + // "forum" and "prv" are used in the contact table. They stand for User::PAGE_FLAGS_COMMUNITY and User::PAGE_FLAGS_PRVGROUP. + // "community" is used in the gcontact table and is true if the contact is User::PAGE_FLAGS_COMMUNITY or User::PAGE_FLAGS_PRVGROUP. + if ((isset($contact['page-flags']) && (intval($contact['page-flags']) == User::PAGE_FLAGS_COMMUNITY)) + || (isset($contact['page-flags']) && (intval($contact['page-flags']) == User::PAGE_FLAGS_PRVGROUP)) || (isset($contact['forum']) && intval($contact['forum'])) || (isset($contact['prv']) && intval($contact['prv'])) || (isset($contact['community']) && intval($contact['community'])) @@ -1983,7 +2002,7 @@ class Contact extends BaseObject /// @TODO Encapsulate this into a function/method $fields = ['uid', 'username', 'email', 'page-flags', 'notify-flags', 'language']; $user = DBA::selectFirst('user', $fields, ['uid' => $importer['uid']]); - if (DBA::isResult($user) && !in_array($user['page-flags'], [self::PAGE_SOAPBOX, self::PAGE_FREELOVE, self::PAGE_COMMUNITY])) { + if (DBA::isResult($user) && !in_array($user['page-flags'], [User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_FREELOVE, User::PAGE_FLAGS_COMMUNITY])) { // create notification $hash = Strings::getRandomHex(); @@ -1996,7 +2015,7 @@ class Contact extends BaseObject Group::addMember(User::getDefaultGroup($importer['uid'], $contact_record["network"]), $contact_record['id']); if (($user['notify-flags'] & NOTIFY_INTRO) && - in_array($user['page-flags'], [self::PAGE_NORMAL])) { + in_array($user['page-flags'], [User::PAGE_FLAGS_NORMAL])) { notification([ 'type' => NOTIFY_INTRO, @@ -2014,7 +2033,7 @@ class Contact extends BaseObject ]); } - } elseif (DBA::isResult($user) && in_array($user['page-flags'], [self::PAGE_SOAPBOX, self::PAGE_FREELOVE, self::PAGE_COMMUNITY])) { + } elseif (DBA::isResult($user) && in_array($user['page-flags'], [User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_FREELOVE, User::PAGE_FLAGS_COMMUNITY])) { $condition = ['uid' => $importer['uid'], 'url' => $url, 'pending' => true]; DBA::update('contact', ['pending' => false], $condition); diff --git a/src/Model/Item.php b/src/Model/Item.php index f18ca088f9..cffa25397c 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -2526,8 +2526,8 @@ class Item extends BaseObject return; } - $community_page = (($user['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); - $prvgroup = (($user['page-flags'] == Contact::PAGE_PRVGROUP) ? true : false); + $community_page = (($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); + $prvgroup = (($user['page-flags'] == User::PAGE_FLAGS_PRVGROUP) ? true : false); $item = self::selectFirst(self::ITEM_FIELDLIST, ['id' => $item_id]); if (!DBA::isResult($item)) { diff --git a/src/Model/User.php b/src/Model/User.php index 80cae7b0d2..dd754fb46e 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -28,6 +28,26 @@ use LightOpenID; */ class User { + /** + * @name page/profile types + * + * PAGE_NORMAL is a typical personal profile account + * PAGE_SOAPBOX automatically approves all friend requests as Contact::SHARING, (readonly) + * PAGE_COMMUNITY automatically approves all friend requests as Contact::SHARING, but with + * write access to wall and comments (no email and not included in page owner's ACL lists) + * PAGE_FREELOVE automatically approves all friend requests as full friends (Contact::FRIEND). + * + * @{ + */ + const PAGE_FLAGS_NORMAL = 0; + const PAGE_FLAGS_SOAPBOX = 1; + const PAGE_FLAGS_COMMUNITY = 2; + const PAGE_FLAGS_FREELOVE = 3; + const PAGE_FLAGS_BLOG = 4; + const PAGE_FLAGS_PRVGROUP = 5; + /** + * @} + */ /** * Returns true if a user record exists with the provided id * diff --git a/src/Object/Image.php b/src/Object/Image.php index ae360f376d..1fe0a048b9 100644 --- a/src/Object/Image.php +++ b/src/Object/Image.php @@ -899,7 +899,7 @@ class Image /// @TODO /// $default_cid = $r[0]['id']; - /// $community_page = (($r[0]['page-flags'] == Contact::PAGE_COMMUNITY) ? true : false); + /// $community_page = (($r[0]['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? true : false); if ((strlen($imagedata) == 0) && ($url == "")) { Logger::log("No image data and no url provided", Logger::DEBUG); diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 499337acb1..44bb491813 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -232,7 +232,7 @@ class Transmitter 'vcard:region' => $profile['region'], 'vcard:locality' => $profile['locality']]; $data['summary'] = $contact['about']; $data['url'] = $contact['url']; - $data['manuallyApprovesFollowers'] = in_array($user['page-flags'], [Contact::PAGE_NORMAL, Contact::PAGE_PRVGROUP]); + $data['manuallyApprovesFollowers'] = in_array($user['page-flags'], [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_PRVGROUP]); $data['publicKey'] = ['id' => $contact['url'] . '#main-key', 'owner' => $contact['url'], 'publicKeyPem' => $user['pubkey']]; diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index e4269f38ec..550f5e07f1 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -587,14 +587,14 @@ class DFRN } // For backward compatibility we keep this element - if ($owner['page-flags'] == Contact::PAGE_COMMUNITY) { + if ($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { XML::addElement($doc, $root, "dfrn:community", 1); } // The former element is replaced by this one XML::addElement($doc, $root, "dfrn:account_type", $owner["account-type"]); - /// @todo We need a way to transmit the different page flags like "Contact::PAGE_PRVGROUP" + /// @todo We need a way to transmit the different page flags like "User::PAGE_FLAGS_PRVGROUP" XML::addElement($doc, $root, "updated", DateTimeFormat::utcNow(DateTimeFormat::ATOM)); @@ -1264,11 +1264,11 @@ class DFRN $perm = (($res->perm) ? $res->perm : null); $dfrn_version = (float) (($res->dfrn_version) ? $res->dfrn_version : 2.0); $rino_remote_version = intval($res->rino); - $page = (($owner['page-flags'] == Contact::PAGE_COMMUNITY) ? 1 : 0); + $page = (($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY) ? 1 : 0); Logger::log("Remote rino version: ".$rino_remote_version." for ".$contact["url"], Logger::DEBUG); - if ($owner['page-flags'] == Contact::PAGE_PRVGROUP) { + if ($owner['page-flags'] == User::PAGE_FLAGS_PRVGROUP) { $page = 2; } @@ -1285,7 +1285,7 @@ class DFRN } if (($contact['duplex'] && strlen($contact['pubkey'])) - || ($owner['page-flags'] == Contact::PAGE_COMMUNITY && strlen($contact['pubkey'])) + || ($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY && strlen($contact['pubkey'])) || ($contact['rel'] == Contact::SHARING && strlen($contact['pubkey'])) ) { openssl_public_decrypt($sent_dfrn_id, $final_dfrn_id, $contact['pubkey']); @@ -1314,7 +1314,7 @@ class DFRN $postvars['dissolve'] = '1'; } - if ((($contact['rel']) && ($contact['rel'] != Contact::SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == Contact::PAGE_COMMUNITY)) { + if ((($contact['rel']) && ($contact['rel'] != Contact::SHARING) && (! $contact['blocked'])) || ($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY)) { $postvars['data'] = $atom; $postvars['perm'] = 'rw'; } else { @@ -1349,7 +1349,7 @@ class DFRN if ($dfrn_version >= 2.1) { if (($contact['duplex'] && strlen($contact['pubkey'])) - || ($owner['page-flags'] == Contact::PAGE_COMMUNITY && strlen($contact['pubkey'])) + || ($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY && strlen($contact['pubkey'])) || ($contact['rel'] == Contact::SHARING && strlen($contact['pubkey'])) ) { openssl_public_encrypt($key, $postvars['key'], $contact['pubkey']); @@ -1357,7 +1357,7 @@ class DFRN openssl_private_encrypt($key, $postvars['key'], $contact['prvkey']); } } else { - if (($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == Contact::PAGE_COMMUNITY)) { + if (($contact['duplex'] && strlen($contact['prvkey'])) || ($owner['page-flags'] == User::PAGE_FLAGS_COMMUNITY)) { openssl_private_encrypt($key, $postvars['key'], $contact['prvkey']); } else { openssl_public_encrypt($key, $postvars['key'], $contact['pubkey']); @@ -2146,7 +2146,7 @@ class DFRN if ($item["parent-uri"] != $item["uri"]) { $community = false; - if ($importer["page-flags"] == Contact::PAGE_COMMUNITY || $importer["page-flags"] == Contact::PAGE_PRVGROUP) { + if ($importer["page-flags"] == User::PAGE_FLAGS_COMMUNITY || $importer["page-flags"] == User::PAGE_FLAGS_PRVGROUP) { $sql_extra = ""; $community = true; Logger::log("possible community action"); @@ -3073,8 +3073,8 @@ class DFRN return false; } - $community_page = ($user['page-flags'] == Contact::PAGE_COMMUNITY); - $prvgroup = ($user['page-flags'] == Contact::PAGE_PRVGROUP); + $community_page = ($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY); + $prvgroup = ($user['page-flags'] == User::PAGE_FLAGS_PRVGROUP); $link = Strings::normaliseLink(System::baseUrl() . '/profile/' . $user['nickname']); diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index fadf337a6a..9a29edaaf6 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -639,7 +639,7 @@ class Diaspora return false; } - $importer = ["uid" => 0, "page-flags" => Contact::PAGE_FREELOVE]; + $importer = ["uid" => 0, "page-flags" => User::PAGE_FLAGS_FREELOVE]; $success = self::dispatch($importer, $msg, $fields); return $success; @@ -1123,7 +1123,7 @@ class Diaspora */ // It is deactivated by now, due to side effects. See issue https://github.com/friendica/friendica/pull/4033 // It is not removed by now. Possibly the code is needed? - //if (!$is_comment && $contact["rel"] == Contact::FOLLOWER && in_array($importer["page-flags"], array(Contact::PAGE_FREELOVE))) { + //if (!$is_comment && $contact["rel"] == Contact::FOLLOWER && in_array($importer["page-flags"], array(User::PAGE_FLAGS_FREELOVE))) { // DBA::update( // 'contact', // array('rel' => Contact::FRIEND, 'writable' => true), @@ -1143,7 +1143,7 @@ class Diaspora // Yes, then it is fine. return true; // Is it a post to a community? - } elseif (($contact["rel"] == Contact::FOLLOWER) && in_array($importer["page-flags"], [Contact::PAGE_COMMUNITY, Contact::PAGE_PRVGROUP])) { + } elseif (($contact["rel"] == Contact::FOLLOWER) && in_array($importer["page-flags"], [User::PAGE_FLAGS_COMMUNITY, User::PAGE_FLAGS_PRVGROUP])) { // That's good return true; // Is the message a global user or a comment? @@ -2422,7 +2422,7 @@ class Diaspora } } - if (!$following && $sharing && in_array($importer["page-flags"], [Contact::PAGE_SOAPBOX, Contact::PAGE_NORMAL])) { + if (!$following && $sharing && in_array($importer["page-flags"], [User::PAGE_FLAGS_SOAPBOX, User::PAGE_FLAGS_NORMAL])) { Logger::log("Author ".$author." wants to share with us - but doesn't want to listen. Request is ignored.", Logger::DEBUG); return false; } elseif (!$following && !$sharing) { @@ -2480,7 +2480,7 @@ class Diaspora Contact::updateAvatar($ret["photo"], $importer['uid'], $contact_record["id"], true); - if (in_array($importer["page-flags"], [Contact::PAGE_NORMAL, Contact::PAGE_PRVGROUP])) { + if (in_array($importer["page-flags"], [User::PAGE_FLAGS_NORMAL, User::PAGE_FLAGS_PRVGROUP])) { Logger::log("Sending intra message for author ".$author.".", Logger::DEBUG); $hash = Strings::getRandomHex().(string)time(); // Generate a confirm_key @@ -2508,9 +2508,9 @@ class Diaspora * but if our page-type is Profile::PAGE_COMMUNITY or Profile::PAGE_SOAPBOX * we are going to change the relationship and make them a follower. */ - if (($importer["page-flags"] == Contact::PAGE_FREELOVE) && $sharing && $following) { + if (($importer["page-flags"] == User::PAGE_FLAGS_FREELOVE) && $sharing && $following) { $new_relation = Contact::FRIEND; - } elseif (($importer["page-flags"] == Contact::PAGE_FREELOVE) && $sharing) { + } elseif (($importer["page-flags"] == User::PAGE_FLAGS_FREELOVE) && $sharing) { $new_relation = Contact::SHARING; } else { $new_relation = Contact::FOLLOWER; diff --git a/src/Util/Security.php b/src/Util/Security.php index 2ad12cebae..d1e668e0d8 100644 --- a/src/Util/Security.php +++ b/src/Util/Security.php @@ -9,6 +9,7 @@ use Friendica\BaseObject; use Friendica\Database\DBA; use Friendica\Model\Contact; use Friendica\Model\Group; +use Friendica\Model\User; /** * Secures that User is allow to do requests @@ -65,7 +66,7 @@ class Security extends BaseObject intval($cid), intval(Contact::SHARING), intval(Contact::FRIEND), - intval(Contact::PAGE_COMMUNITY) + intval(User::PAGE_FLAGS_COMMUNITY) ); if (DBA::isResult($r)) { diff --git a/update.php b/update.php index 2ed1a81997..4b0b2f2b6a 100644 --- a/update.php +++ b/update.php @@ -162,8 +162,8 @@ function update_1203() { $r = q("UPDATE `user` SET `account-type` = %d WHERE `page-flags` IN (%d, %d)", DBA::escape(Contact::ACCOUNT_TYPE_COMMUNITY), - DBA::escape(Contact::PAGE_COMMUNITY), - DBA::escape(Contact::PAGE_PRVGROUP) + DBA::escape(User::PAGE_FLAGS_COMMUNITY), + DBA::escape(User::PAGE_FLAGS_PRVGROUP) ); }