From b63aa3079b624ab6bb526ec233aecb7c3f2d4061 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Wed, 2 Jun 2021 09:41:57 +0200 Subject: fix regression where authors from non zot6, activitypub networks got dismissed (e.g. relayed diaspora comments) (cherry picked from commit b3df15a3c6e017ce3858ee484c6d2d70a5f18a17) --- Zotlabs/Lib/ActivityStreams.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Lib/ActivityStreams.php b/Zotlabs/Lib/ActivityStreams.php index a5fb4a756..2324a8136 100644 --- a/Zotlabs/Lib/ActivityStreams.php +++ b/Zotlabs/Lib/ActivityStreams.php @@ -304,11 +304,12 @@ class ActivityStreams { // SECURITY: If we have already stored the actor profile, re-generate it // from cached data - don't refetch it from the network - $r = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where hubloc_network in ('zot6', 'activitypub') and hubloc_id_url = '%s'", + $r = q("select * from xchan join hubloc on xchan_hash = hubloc_hash where hubloc_id_url = '%s'", dbesc($x) ); if ($r) { - $y = Activity::encode_person($r[0]); + $r = Libzot::zot_record_preferred($r); + $y = Activity::encode_person($r); $y['cached'] = true; return $y; } -- cgit v1.2.3 From a0b788e96a0300540069e8e187f65362db8f6d67 Mon Sep 17 00:00:00 2001 From: Mario Date: Wed, 2 Jun 2021 08:31:43 +0000 Subject: fix article summary duplicated when editing - issue #1577 (cherry picked from commit 50c14d353b30d0dcd7c761884d797dc0fe90f777) --- Zotlabs/Module/Article_edit.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Module/Article_edit.php b/Zotlabs/Module/Article_edit.php index efa02e1c1..97c87f2ba 100644 --- a/Zotlabs/Module/Article_edit.php +++ b/Zotlabs/Module/Article_edit.php @@ -85,7 +85,6 @@ class Article_edit extends \Zotlabs\Web\Controller { $mimetype = $itm[0]['mimetype']; - $summary = (($itm[0]['summary']) ? '[summary]' . $itm[0]['summary'] . '[/summary]' . "\r\n" : ''); $content = $itm[0]['body']; $rp = 'articles/' . $channel['channel_address']; @@ -109,7 +108,7 @@ class Article_edit extends \Zotlabs\Web\Controller { 'ptyp' => $itm[0]['type'], 'mimeselect' => false, 'mimetype' => $itm[0]['mimetype'], - 'body' => $summary . undo_post_tagging($content), + 'body' => undo_post_tagging($content), 'post_id' => $post_id, 'visitor' => true, 'title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'), -- cgit v1.2.3 From 7d82a34538936a219a0d1977fbadbe2cf72ed74a Mon Sep 17 00:00:00 2001 From: Max Kostikov Date: Wed, 2 Jun 2021 08:33:54 +0000 Subject: Make pubstream ordering configurable --- Zotlabs/Module/Pubstream.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Module/Pubstream.php b/Zotlabs/Module/Pubstream.php index 113f0a196..9c63c735d 100644 --- a/Zotlabs/Module/Pubstream.php +++ b/Zotlabs/Module/Pubstream.php @@ -197,7 +197,7 @@ class Pubstream extends \Zotlabs\Web\Controller { if($update) { - $ordering = "commented"; + $ordering = get_config('system', 'pubstream_ordering', 'commented'); if($load) { if($mid) { -- cgit v1.2.3 From ba22d3e9b6ef7042d7129c7715c81c668fcf79b3 Mon Sep 17 00:00:00 2001 From: Mario Date: Wed, 2 Jun 2021 17:58:46 +0000 Subject: fix issue where a deleted channel will return 404 before returning zotinfo (cherry picked from commit 33463152e844f98b933401c394cc0e111893a077) --- Zotlabs/Daemon/Onedirsync.php | 4 ++-- Zotlabs/Module/Channel.php | 19 +++++++++++++++--- Zotlabs/Module/Removeme.php | 46 +++++++++++++++++++++---------------------- 3 files changed, 41 insertions(+), 28 deletions(-) (limited to 'Zotlabs') diff --git a/Zotlabs/Daemon/Onedirsync.php b/Zotlabs/Daemon/Onedirsync.php index f29fbe5b8..47904ea21 100644 --- a/Zotlabs/Daemon/Onedirsync.php +++ b/Zotlabs/Daemon/Onedirsync.php @@ -29,6 +29,7 @@ class Onedirsync { if (!$r) return; + if (($r[0]['ud_flags'] & UPDATE_FLAGS_UPDATED) || (!$r[0]['ud_addr'])) return; @@ -59,13 +60,12 @@ class Onedirsync { $h = Libzot::zot_record_preferred($h); - if (($h) && ($h['hubloc_status'] & HUBLOC_OFFLINE)) { + if (($h) && (($h['hubloc_status'] & HUBLOC_OFFLINE) || $h['hubloc_deleted'] || $h['hubloc_error']) ) { q("update updates set ud_flags = ( ud_flags | %d ) where ud_addr = '%s' and ( ud_flags & %d ) = 0 ", intval(UPDATE_FLAGS_UPDATED), dbesc($r[0]['ud_addr']), intval(UPDATE_FLAGS_UPDATED) ); - return; } diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index a7deb4f6b..20cbe0b5c 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -46,14 +46,22 @@ class Channel extends Controller { } $profile = 0; - $channel = App::get_channel(); if ((local_channel()) && (argc() > 2) && (argv(2) === 'view')) { + $channel = App::get_channel(); $which = $channel['channel_address']; $profile = argv(1); } - $channel = channelx_by_nick($which); + + // Do not use channelx_by_nick() here since it will dismiss deleted channels. + // We need to provide zotinfo for deleted channels so that directories can pick up the info. + $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_address = '%s' LIMIT 1", + dbesc($which) + ); + + $channel = $r[0]; + if (!$channel) { http_status_exit(404, 'Not found'); } @@ -83,12 +91,17 @@ class Channel extends Controller { 'Digest' => HTTPSig::generate_digest_header($data), '(request-target)' => strtolower($_SERVER['REQUEST_METHOD']) . ' ' . $_SERVER['REQUEST_URI'] ]; - $h = HTTPSig::create_sig($headers, $channel['channel_prvkey'], channel_url($channel)); + + $h = HTTPSig::create_sig($headers, $channel['channel_prvkey'], channel_url($channel)); HTTPSig::set_headers($h); echo $data; killme(); } + if ($channel['channel_removed']) { + http_status_exit(404, 'Not found'); + } + if (ActivityStreams::is_as_request($channel)) { // Somebody may attempt an ActivityStreams fetch on one of our message permalinks diff --git a/Zotlabs/Module/Removeme.php b/Zotlabs/Module/Removeme.php index 876d61ca6..a0697675b 100644 --- a/Zotlabs/Module/Removeme.php +++ b/Zotlabs/Module/Removeme.php @@ -5,54 +5,54 @@ namespace Zotlabs\Module; class Removeme extends \Zotlabs\Web\Controller { function post() { - + if(! local_channel()) return; - + if($_SESSION['delegate']) return; - + if((! x($_POST,'qxz_password')) || (! strlen(trim($_POST['qxz_password'])))) return; - + if((! x($_POST,'verify')) || (! strlen(trim($_POST['verify'])))) return; - + if($_POST['verify'] !== $_SESSION['remove_account_verify']) return; - - + + $account = \App::get_account(); - - + + $x = account_verify_password($account['account_email'],$_POST['qxz_password']); if(! ($x && $x['account'])) return; - + if($account['account_password_changed'] > NULL_DATE) { $d1 = datetime_convert('UTC','UTC','now - 48 hours'); - if($account['account_password_changed'] > d1) { + if($account['account_password_changed'] > $d1) { notice( t('Channel removals are not allowed within 48 hours of changing the account password.') . EOL); return; } } - + $global_remove = 0; //intval($_POST['global']); channel_remove(local_channel(),1 - $global_remove,true); - + } - - + + function get() { - + if(! local_channel()) goaway(z_root()); - + $hash = random_string(); - + $_SESSION['remove_account_verify'] = $hash; - + $tpl = get_markup_template('removeme.tpl'); $o .= replace_macros($tpl, array( '$basedir' => z_root(), @@ -63,9 +63,9 @@ class Removeme extends \Zotlabs\Web\Controller { // '$global' => [ 'global', t('Remove this channel and all its clones from the network'), false, t('By default only the instance of the channel located on this hub will be removed from the network'), [ t('No'),t('Yes') ] ], '$submit' => t('Remove Channel') )); - - return $o; - + + return $o; + } - + } -- cgit v1.2.3