summaryrefslogtreecommitdiff
path: root/lib/activityutils.php
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-03-22 18:54:46 -0700
committerZach Copley <zach@status.net>2010-03-22 18:54:46 -0700
commit073e3a1572d0cd5934c6578f4245c39e8376351f (patch)
treeed3d62de6faa49803f54c378d8fa2ce49365e9a5 /lib/activityutils.php
parenta0a9acb9a284910e6b7dd95c847e8226dde7732d (diff)
parent3678e7b89bd0cc683c98369e5dec3b940134532b (diff)
Merge branch 'testing' of gitorious.org:statusnet/mainline into testing
* 'testing' of gitorious.org:statusnet/mainline: OStatus remote sending test cases. Doesn't actually run within PHPUnit right now, must be run from command line -- specify base URLs to two StatusNet sites that will be able to communicate with each other. Math_BigInteger doesn't correctly handle serialization/deserialization for a value of 0, which can end up spewing notices to output and otherwise intefering with Salmon signature setup and verification when using memcached. Log backtraces for non-ClientException exceptions caught at the top-level handler. Confirm there's actually user and domain portions of acct string before assigning things from output of explode(); avoids notice message when invalid input passed to main/xrd Fixing HTTP Header LRDD parsing (sites in subdirectories need this) Replace the "give up and dump object" attachment view fallback with a client-side redirect to the target URL, which will at least be useful. ignore unrecognized object types Pull <atom:author> info as well as <activity:actor> when we have an old-style ActivityStreams feed. This fixes subscription setup for Cliqset feeds, which currently have a bogus activity:actor/atom:id but a good atom:author/atom:uri Accept 'tag' and other non-http id URIs in Ostatus_profile::getActivityObjectProfileURI().
Diffstat (limited to 'lib/activityutils.php')
-rw-r--r--lib/activityutils.php22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/activityutils.php b/lib/activityutils.php
index c85a3db55..a7e99fb11 100644
--- a/lib/activityutils.php
+++ b/lib/activityutils.php
@@ -240,4 +240,26 @@ class ActivityUtils
throw new ClientException(_("Can't handle embedded Base64 content yet."));
}
}
+
+ /**
+ * Is this a valid URI for remote profile/notice identification?
+ * Does not have to be a resolvable URL.
+ * @param string $uri
+ * @return boolean
+ */
+ static function validateUri($uri)
+ {
+ if (Validate::uri($uri)) {
+ return true;
+ }
+
+ // Possibly an upstream bug; tag: URIs aren't validated properly
+ // unless you explicitly ask for them. All other schemes are accepted
+ // for basic URI validation without asking.
+ if (Validate::uri($uri, array('allowed_scheme' => array('tag')))) {
+ return true;
+ }
+
+ return false;
+ }
}