diff --git a/plugins/DomainStatusNetwork/DomainStatusNetworkPlugin.php b/plugins/DomainStatusNetwork/DomainStatusNetworkPlugin.php new file mode 100644 index 0000000000..0152849a05 --- /dev/null +++ b/plugins/DomainStatusNetwork/DomainStatusNetworkPlugin.php @@ -0,0 +1,86 @@ +. + * + * @category DomainStatusNetwork + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Tools to map one status_network to one email domain in a multi-site + * installation. + * + * @category DomainStatusNetwork + * @package StatusNet + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class DomainStatusNetworkPlugin extends Plugin +{ + function initialize() + { + $nickname = StatusNet::currentSite(); + + if (empty($nickname)) { + $this->log(LOG_WARNING, "No current site"); + return; + } + + $sn = Status_network::staticGet('nickname', $nickname); + + if (empty($sn)) { + $this->log(LOG_ERR, "No site for nickname $nickname"); + return; + } + + $tags = $sn->getTags(); + + foreach ($tags as $tag) { + if (strncmp($tag, 'domain=', 7) == 0) { + common_config_append('email', 'whitelist', substr($tag, 7)); + } + } + } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'DomainStatusNetwork', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:DomainStatusNetwork', + 'rawdescription' => + _m('A plugin that maps a single status_network to an email domain.')); + return true; + } +}