forked from GNUsocial/gnu-social
[ActivityPub] Fix some small known problems
ActivityPubPlugin: - Rework onProfileDeleteRelated to account for the tables _rsa and _pending_follow_requests - Update onEndShowAccountProfileBlock to stop creating the ap_profile if it doesn't exist (we'll handle this in a different manner) Activitypub_profile: - Remove unnecessary code from from_profile method and add return type information Explorer: - Update travel_collection to call itself instead of _lookup, that was wrong
This commit is contained in:
parent
a06b33be66
commit
a0d30b6872
@ -345,18 +345,17 @@ class ActivityPubPlugin extends Plugin
|
||||
*/
|
||||
public function onProfileDeleteRelated(Profile $profile, array &$related): void
|
||||
{
|
||||
if ($profile->isLocal()) {
|
||||
return;
|
||||
}
|
||||
$related[] = 'Activitypub_profile';
|
||||
$related[] = 'Activitypub_rsa';
|
||||
|
||||
try {
|
||||
$aprofile = Activitypub_profile::getKV('profile_id', $profile->getID());
|
||||
if ($aprofile instanceof Activitypub_profile) {
|
||||
// mark for deletion
|
||||
$related[] = 'Activitypub_profile';
|
||||
// pending_follow_requests doesn't have a profile_id column,
|
||||
// so we must handle it manually
|
||||
$follow = new Activitypub_pending_follow_requests(null, $profile->getID());
|
||||
|
||||
if ($follow->find()) {
|
||||
while ($follow->fetch()) {
|
||||
$follow->delete();
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
// nothing to do
|
||||
}
|
||||
}
|
||||
|
||||
@ -386,9 +385,9 @@ class ActivityPubPlugin extends Plugin
|
||||
if ($profile->isLocal()) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
Activitypub_profile::from_profile($profile);
|
||||
} catch (Exception $e) {
|
||||
|
||||
$aprofile = Activitypub_profile::getKV('profile_id', $profile->getID());
|
||||
if (!$aprofile instanceof Activitypub_profile) {
|
||||
// Not a remote ActivityPub_profile! Maybe some other network
|
||||
// that has imported a non-local user (e.g.: OStatus)?
|
||||
return true;
|
||||
|
@ -201,7 +201,7 @@ class Activitypub_profile extends Managed_DataObject
|
||||
* @throws Exception if no Activitypub_profile exists for given Profile
|
||||
* @author Diogo Cordeiro <diogo@fc.up.pt>
|
||||
*/
|
||||
public static function from_profile(Profile $profile)
|
||||
public static function from_profile(Profile $profile): Activitypub_profile
|
||||
{
|
||||
$profile_id = $profile->getID();
|
||||
|
||||
@ -216,8 +216,9 @@ class Activitypub_profile extends Managed_DataObject
|
||||
}
|
||||
}
|
||||
|
||||
// extend the ap_profile with some information we
|
||||
// don't store in the database
|
||||
$fields = [
|
||||
'uri' => 'profileurl',
|
||||
'nickname' => 'nickname',
|
||||
'fullname' => 'fullname',
|
||||
'bio' => 'bio'
|
||||
|
@ -450,7 +450,7 @@ class Activitypub_explorer
|
||||
}
|
||||
// Go through entire collection
|
||||
if (!is_null($res["next"])) {
|
||||
$this->_lookup($res["next"]);
|
||||
$this->travel_collection($res["next"]);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user