]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/RegisterThrottle/RegisterThrottlePlugin.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / RegisterThrottle / RegisterThrottlePlugin.php
index e3982427da5053b5400aa7bce0e38a8095339a78..d09642a6330872d0206d5a00406674c87ae4a3ee 100644 (file)
@@ -28,9 +28,7 @@
  * @link      http://status.net/
  */
 
-if (!defined('STATUSNET')) {
-    exit(1);
-}
+if (!defined('GNUSOCIAL')) { exit(1); }
 
 /**
  * Throttle registration by IP address
@@ -52,7 +50,6 @@ class RegisterThrottlePlugin extends Plugin
      *
      * Default is 3 registrations per hour, 5 per day, 10 per week.
      */
-
     public $regLimits = array(604800 => 10, // per week
                               86400 => 5, // per day
                               3600 => 3); // per hour
@@ -61,13 +58,11 @@ class RegisterThrottlePlugin extends Plugin
      * Disallow registration if a silenced user has registered from
      * this IP address.
      */
-
     public $silenced = true;
 
     /**
      * Whether we're enabled; prevents recursion.
      */
-
     static private $enabled = true;
 
     /**
@@ -77,44 +72,15 @@ class RegisterThrottlePlugin extends Plugin
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-
-    function onCheckSchema()
+    public function onCheckSchema()
     {
         $schema = Schema::get();
 
         // For storing user-submitted flags on profiles
-
-        $schema->ensureTable('registration_ip',
-                             array(new ColumnDef('user_id', 'integer', null,
-                                                 false, 'PRI'),
-                                   new ColumnDef('ipaddress', 'varchar', 15, false, 'MUL'),
-                                   new ColumnDef('created', 'timestamp', null, false, 'MUL')));
-
+        $schema->ensureTable('registration_ip', Registration_ip::schemaDef());
         return true;
     }
 
-    /**
-     * Load related modules when needed
-     *
-     * @param string $cls Name of the class to be loaded
-     *
-     * @return boolean hook value; true means continue processing, false means stop.
-     */
-
-    function onAutoload($cls)
-    {
-        $dir = dirname(__FILE__);
-
-        switch ($cls)
-        {
-        case 'Registration_ip':
-            include_once $dir . '/'.$cls.'.php';
-            return false;
-        default:
-            return true;
-        }
-    }
-
     /**
      * Called when someone tries to register.
      *
@@ -124,13 +90,13 @@ class RegisterThrottlePlugin extends Plugin
      * @param Action $action Action that is being executed
      *
      * @return boolean hook value
-     *
      */
-    function onStartRegistrationTry($action)
+    public function onStartRegistrationTry(Action $action)
     {
         $ipaddress = $this->_getIpAddress();
 
         if (empty($ipaddress)) {
+            // TRANS: Server exception thrown when no IP address can be found for a registation attempt.
             throw new ServerException(_m('Cannot find IP address.'));
         }
 
@@ -146,7 +112,8 @@ class RegisterThrottlePlugin extends Plugin
                 $now     = time();
                 $this->debug("Comparing {$regtime} to {$now}");
                 if ($now - $regtime < $seconds) {
-                    throw new Exception(_m("Too many registrations. Take a break and try again later."));
+                    // TRANS: Exception thrown when too many user have registered from one IP address within a given time frame.
+                    throw new Exception(_m('Too many registrations. Take a break and try again later.'));
                 }
             }
         }
@@ -156,9 +123,10 @@ class RegisterThrottlePlugin extends Plugin
         if ($this->silenced) {
             $ids = Registration_ip::usersByIP($ipaddress);
             foreach ($ids as $id) {
-                $profile = Profile::staticGet('id', $id);
+                $profile = Profile::getKV('id', $id);
                 if ($profile && $profile->isSilenced()) {
-                    throw new Exception(_m("A banned user has registered from this address."));
+                    // TRANS: Exception thrown when attempting to register from an IP address from which silenced users have registered.
+                    throw new Exception(_m('A banned user has registered from this address.'));
                 }
             }
         }
@@ -172,13 +140,10 @@ class RegisterThrottlePlugin extends Plugin
      * We record the successful registration and IP address.
      *
      * @param Profile $profile new user's profile
-     * @param User $user new user
      *
      * @return boolean hook value
-     *
      */
-
-    function onEndUserRegister($profile, $user)
+    public function onEndUserRegister(Profile $profile)
     {
         $ipaddress = $this->_getIpAddress();
 
@@ -189,12 +154,13 @@ class RegisterThrottlePlugin extends Plugin
 
         $reg = new Registration_ip();
 
-        $reg->user_id   = $user->id;
+        $reg->user_id   = $profile->id;
         $reg->ipaddress = $ipaddress;
+        $reg->created   = common_sql_now();
 
         $result = $reg->insert();
 
-        if (!$result) {
+        if ($result === false) {
             common_log_db_error($reg, 'INSERT', __FILE__);
             // @todo throw an exception?
         }
@@ -209,14 +175,14 @@ class RegisterThrottlePlugin extends Plugin
      *
      * @return boolean hook value
      */
-
-    function onPluginVersion(&$versions)
+    public function onPluginVersion(array &$versions)
     {
         $versions[] = array('name' => 'RegisterThrottle',
-                            'version' => STATUSNET_VERSION,
+                            'version' => GNUSOCIAL_VERSION,
                             'author' => 'Evan Prodromou',
                             'homepage' => 'http://status.net/wiki/Plugin:RegisterThrottle',
                             'description' =>
+                            // TRANS: Plugin description.
                             _m('Throttles excessive registration from a single IP address.'));
         return true;
     }
@@ -226,10 +192,10 @@ class RegisterThrottlePlugin extends Plugin
      *
      * @return string IP address or null if not found.
      */
-
     private function _getIpAddress()
     {
         $keys = array('HTTP_X_FORWARDED_FOR',
+                      'HTTP_X_CLIENT',
                       'CLIENT-IP',
                       'REMOTE_ADDR');
 
@@ -250,7 +216,6 @@ class RegisterThrottlePlugin extends Plugin
      *
      * @return Registration_ip nth registration or null if not found.
      */
-
     private function _getNthReg($ipaddress, $n)
     {
         $reg = new Registration_ip();
@@ -276,8 +241,7 @@ class RegisterThrottlePlugin extends Plugin
      *
      * @return boolean hook value
      */
-
-    function onEndGrantRole($profile, $role)
+    public function onEndGrantRole(Profile $profile, $role)
     {
         if (!self::$enabled) {
             return true;
@@ -291,7 +255,7 @@ class RegisterThrottlePlugin extends Plugin
             return true;
         }
 
-        $ri = Registration_ip::staticGet('user_id', $profile->id);
+        $ri = Registration_ip::getKV('user_id', $profile->id);
 
         if (empty($ri)) {
             return true;
@@ -300,12 +264,11 @@ class RegisterThrottlePlugin extends Plugin
         $ids = Registration_ip::usersByIP($ri->ipaddress);
 
         foreach ($ids as $id) {
-
             if ($id == $profile->id) {
                 continue;
             }
 
-            $other = Profile::staticGet('id', $id);
+            $other = Profile::getKV('id', $id);
 
             if (empty($other)) {
                 continue;