<?php
-
/**
* StatusNet, the distributed open-source microblogging tool
*
!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.
'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);
// 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);
+ }
+ }
+ }
}
/**