aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Nordfeldth <mmn@hethane.se>2016-01-09 14:36:47 +0100
committerMikael Nordfeldth <mmn@hethane.se>2016-01-09 14:36:47 +0100
commitc3c5a9974d6959cf92bc501ebe6b37860a57694a (patch)
treee858cd239651f7c915c29a97e7ff9738b7dfadc3
parent55aa68b9418e407c2894b55289a9d384706f9c59 (diff)
downloadgnu-social-c3c5a9974d6959cf92bc501ebe6b37860a57694a.tar
gnu-social-c3c5a9974d6959cf92bc501ebe6b37860a57694a.zip
Do proper fromUri lookup on groups too
-rw-r--r--classes/Notice.php4
-rw-r--r--classes/Profile.php5
-rw-r--r--plugins/OStatus/OStatusPlugin.php14
3 files changed, 16 insertions, 7 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 6781918be4..b7378711f5 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -974,8 +974,6 @@ class Notice extends Managed_DataObject
// reasonably handle notifications themselves.
if (ActivityUtils::compareVerbs($stored->verb, array(ActivityVerb::POST))) {
- $stored->saveAttentions($act->context->attention);
-
if (!empty($tags)) {
$stored->saveKnownTags($tags);
} else {
@@ -984,7 +982,7 @@ class Notice extends Managed_DataObject
// Note: groups may save tags, so must be run after tags are saved
// to avoid errors on duplicates.
- // Note: groups should always be set.
+ $stored->saveAttentions($act->context->attention);
if (!empty($urls)) {
$stored->saveKnownUrls($urls);
diff --git a/classes/Profile.php b/classes/Profile.php
index e8470d96c5..9c334fd923 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -1555,6 +1555,11 @@ class Profile extends Managed_DataObject
$user = User::getKV('uri', $uri);
if ($user instanceof User) {
$profile = $user->getProfile();
+ } else {
+ $group = User_group::getKV('uri', $uri);
+ if ($group instanceof User_group) {
+ $profile = $group->getProfile();
+ }
}
Event::handle('EndGetProfileFromURI', array($uri, $profile));
}
diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php
index c3307f23cb..7c509f0641 100644
--- a/plugins/OStatus/OStatusPlugin.php
+++ b/plugins/OStatus/OStatusPlugin.php
@@ -1265,17 +1265,23 @@ class OStatusPlugin extends Plugin
function onStartGetProfileFromURI($uri, &$profile)
{
// Don't want to do Web-based discovery on our own server,
- // so we check locally first.
+ // so we check locally first. This duplicates the functionality
+ // in the Profile class, since the plugin always runs before
+ // that local lookup, but since we return false it won't run double.
$user = User::getKV('uri', $uri);
-
- if (!empty($user)) {
+ if ($user instanceof User) {
$profile = $user->getProfile();
return false;
+ } else {
+ $group = User_group::getKV('uri', $uri);
+ if ($group instanceof User_group) {
+ $profile = $group->getProfile();
+ return false;
+ }
}
// Now, check remotely
-
try {
$oprofile = Ostatus_profile::ensureProfileURI($uri);
$profile = $oprofile->localProfile();