summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-10-26 11:48:27 -0400
committerEvan Prodromou <evan@status.net>2010-10-26 11:48:27 -0400
commit22633a5af6b1f0211f2437bd586811053e66037b (patch)
tree47fb534400f9ce75068205e9eae066dea1203538
parentbec00094a7447df2f2cc831083f7dd2edc904ff7 (diff)
can't subscribe to blacklisted domains/users
-rw-r--r--plugins/Blacklist/BlacklistPlugin.php34
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php
index 60b59168f..d4a4c9626 100644
--- a/plugins/Blacklist/BlacklistPlugin.php
+++ b/plugins/Blacklist/BlacklistPlugin.php
@@ -504,4 +504,38 @@ class BlacklistPlugin extends Plugin
return true;
}
+
+ /**
+ * Check URLs and homepages for blacklisted users.
+ */
+
+ function onStartSubscribe($subscriber, $other)
+ {
+ foreach (array($other->profileurl, $other->homepage) as $url) {
+
+ if (empty($url)) {
+ continue;
+ }
+
+ $url = strtolower($url);
+
+ if (!$this->_checkUrl($url)) {
+ $msg = sprintf(_m("Users from '%s' blocked."),
+ $url);
+ throw new ClientException($msg);
+ }
+ }
+
+ $nickname = $other->nickname;
+
+ if (!empty($nickname)) {
+ if (!$this->_checkNickname($nickname)) {
+ $msg = sprintf(_m("Can't subscribe to nickname '%s'."),
+ $nickname);
+ throw new ClientException($msg);
+ }
+ }
+
+ return true;
+ }
}