]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/apiaccountregister.php
New domain regexp for WebFinger matching.
[quix0rs-gnu-social.git] / actions / apiaccountregister.php
index b5481df1cba369e239fb9564ab75c85711d359e8..4a785998292b0c13c260f61620ab65ddedc43d04 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-        
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
@@ -132,9 +131,6 @@ class ApiAccountRegisterAction extends ApiAction
                    !common_valid_http_url($homepage)) {
             // TRANS: Form validation error displayed when trying to register with an invalid homepage URL.
                $this->clientError(_('Homepage is not a valid URL.'), 400);
-        } else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
-            // TRANS: Form validation error displayed when trying to register with a too long full name.
-               $this->clientError(_('Full name is too long (maximum 255 characters).'), 400);
         } else if (Profile::bioTooLong($bio)) {
             // TRANS: Form validation error on registration page when providing too long a bio text.
             // TRANS: %d is the maximum number of characters for bio; used for plural.
@@ -142,9 +138,6 @@ class ApiAccountRegisterAction extends ApiAction
                                        'Bio is too long (maximum %d characters).',
                                        Profile::maxBio()),
                                        Profile::maxBio()), 400);
-        } else if (!is_null($location) && mb_strlen($location) > 255) {
-            // TRANS: Form validation error displayed when trying to register with a too long location.
-               $this->clientError(_('Location is too long (maximum 255 characters).'), 400);
         } else if (strlen($password) < 6) {
             // TRANS: Form validation error displayed when trying to register with too short a password.
                $this->clientError(_('Password must be 6 or more characters.'), 400);
@@ -152,34 +145,31 @@ class ApiAccountRegisterAction extends ApiAction
             // TRANS: Form validation error displayed when trying to register with non-matching passwords.
                $this->clientError(_('Passwords do not match.'), 400);
         } else {
-           
-               // annoy spammers
-               sleep(7);
-           
-               if ($user = User::register(array('nickname' => $nickname,
-                                                       'password' => $password,
-                                                       'email' => $email,
-                                                       'fullname' => $fullname,
-                                                       'homepage' => $homepage,
-                                                       'bio' => $bio,
-                                                       'location' => $location,
-                                                       'code' => $this->code))) {
-                   if (!$user instanceof User) {
-                       // TRANS: Form validation error displayed when trying to register with an invalid username or password.
-                       $this->clientError(_('Invalid username or password.'), 400);
-                   }
-
-                   Event::handle('EndRegistrationTry', array($this));
-
-                   $this->initDocument('json');
-                   $this->showJsonObjects($this->twitterUserArray($user->getProfile()));
-                   $this->endDocument('json');
-
-               } else {
-                   // TRANS: Form validation error displayed when trying to register with an invalid username or password.
-                       $this->clientError(_('Invalid username or password.'), 400);
-               }                   
-        } 
+
+            // annoy spammers
+            sleep(7);
+            
+                       if (Event::handle('APIStartRegistrationTry', array($this))) { 
+                               try {
+                                       $user = User::register(array('nickname' => $nickname,
+                                                                                                               'password' => $password,
+                                                                                                               'email' => $email,
+                                                                                                               'fullname' => $fullname,
+                                                                                                               'homepage' => $homepage,
+                                                                                                               'bio' => $bio,
+                                                                                                               'location' => $location,
+                                                                                                               'code' => $this->code));
+                                       Event::handle('EndRegistrationTry', array($this));
+
+                                       $this->initDocument('json');
+                                       $this->showJsonObjects($this->twitterUserArray($user->getProfile()));
+                                       $this->endDocument('json');
+
+                               } catch (Exception $e) {
+                                       $this->clientError($e->getMessage(), 400);
+                               }                       
+                       }
+        }
     }
 
     /**