X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FRegisterThrottle%2FRegisterThrottlePlugin.php;h=dc9d8b8627dcb688c4cde14423ecb7bd526419ac;hb=d063afe10ecf85b31cc49a454ec8e664927c9e26;hp=9d3be3b8a26bdea267a036133e3cce4b0973e090;hpb=d4e76bc25b5bdcb47d8d267fcb7b9f3b9f0b9585;p=quix0rs-gnu-social.git diff --git a/plugins/RegisterThrottle/RegisterThrottlePlugin.php b/plugins/RegisterThrottle/RegisterThrottlePlugin.php index 9d3be3b8a2..dc9d8b8627 100644 --- a/plugins/RegisterThrottle/RegisterThrottlePlugin.php +++ b/plugins/RegisterThrottle/RegisterThrottlePlugin.php @@ -81,6 +81,13 @@ class RegisterThrottlePlugin extends Plugin return true; } + public function onRouterInitialized(URLMapper $m) + { + $m->connect('main/ipregistrations/:ipaddress', + array('action' => 'ipregistrations'), + array('ipaddress' => '[0-9a-f\.\:]+')); + } + /** * Called when someone tries to register. * @@ -91,7 +98,7 @@ class RegisterThrottlePlugin extends Plugin * * @return boolean hook value */ - public function onStartRegistrationTry($action) + public function onStartRegistrationTry(Action $action) { $ipaddress = $this->_getIpAddress(); @@ -134,6 +141,52 @@ class RegisterThrottlePlugin extends Plugin return true; } + function onEndShowSections(Action $action) + { + if (!$action instanceof ShowstreamAction) { + // early return for actions we're not interested in + return true; + } + + $target = $action->getTarget(); + if (!$target->isSilenced()) { + // Only show the IP of users who are not silenced. + return true; + } + + $scoped = $action->getScoped(); + if (!$scoped->hasRight(Right::SILENCEUSER)) { + // only show registration IP if we have the right to silence users + return true; + } + + $ri = Registration_ip::getKV('user_id', $target->getID()); + $ipaddress = null; + if ($ri instanceof Registration_ip) { + $ipaddress = $ri->ipaddress; + unset($ri); + } + + $action->elementStart('div', array('id' => 'entity_mod_log', + 'class' => 'section')); + + $action->element('h2', null, _('Registration IP')); + + // TRANS: Label for the information about which IP a users registered from. + $action->element('strong', null, _('Registered from:')); + $el = 'span'; + $attrs = ['class'=>'ipaddress']; + if (!is_null($ipaddress)) { + $el = 'a'; + $attrs['href'] = common_local_url('ipregistrations', array('ipaddress'=>$ipaddress)); + } + $action->element($el, $attrs, + // TRANS: Unknown IP address. + $ipaddress ?: _('unknown')); + + $action->elementEnd('div'); + } + /** * Called after someone registers, by any means. * @@ -154,8 +207,8 @@ class RegisterThrottlePlugin extends Plugin $reg = new Registration_ip(); - $reg->user_id = $profile->id; - $reg->ipaddress = $ipaddress; + $reg->user_id = $profile->getID(); + $reg->ipaddress = mb_strtolower($ipaddress); $reg->created = common_sql_now(); $result = $reg->insert(); @@ -241,7 +294,7 @@ class RegisterThrottlePlugin extends Plugin * * @return boolean hook value */ - public function onEndGrantRole($profile, $role) + public function onEndGrantRole(Profile $profile, $role) { if (!self::$enabled) { return true;