summaryrefslogtreecommitdiff
path: root/plugins/OpenID/finishopenidlogin.php
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/OpenID/finishopenidlogin.php')
-rw-r--r--plugins/OpenID/finishopenidlogin.php32
1 files changed, 21 insertions, 11 deletions
diff --git a/plugins/OpenID/finishopenidlogin.php b/plugins/OpenID/finishopenidlogin.php
index 01dd61edb..0053a7f1d 100644
--- a/plugins/OpenID/finishopenidlogin.php
+++ b/plugins/OpenID/finishopenidlogin.php
@@ -100,8 +100,15 @@ class FinishopenidloginAction extends Action
return;
}
+ // We don't recognize this OpenID, so we're going to give the user
+ // two options, each in its own mini-form.
+ //
+ // First, they can create a new account using their OpenID auth
+ // info. The profile will be pre-populated with whatever name,
+ // email, and location we can get from the OpenID provider, so
+ // all we ask for is the license confirmation.
$this->elementStart('form', array('method' => 'post',
- 'id' => 'account_connect',
+ 'id' => 'account_create',
'class' => 'form_settings',
'action' => common_local_url('finishopenidlogin')));
$this->hidden('token', common_session_token());
@@ -141,7 +148,15 @@ class FinishopenidloginAction extends Action
// TRANS: Button label in form in which to create a new user on the site for an OpenID.
$this->submit('create', _m('BUTTON', 'Create'));
$this->elementEnd('fieldset');
+ $this->elementEnd('form');
+ // The second option is to attach this OpenID to an existing account
+ // on the local system, which they need to provide a password for.
+ $this->elementStart('form', array('method' => 'post',
+ 'id' => 'account_connect',
+ 'class' => 'form_settings',
+ 'action' => common_local_url('finishopenidlogin')));
+ $this->hidden('token', common_session_token());
$this->elementStart('fieldset', array('id' => 'form_openid_createaccount'));
$this->element('legend', null,
// TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.
@@ -272,13 +287,10 @@ class FinishopenidloginAction extends Action
}
}
- $nickname = $this->trimmed('newname');
-
- if (!Validate::string($nickname, array('min_length' => 1,
- 'max_length' => 64,
- 'format' => NICKNAME_FMT))) {
- // TRANS: OpenID plugin message. The entered new user name did not conform to the requirements.
- $this->showForm(_m('Nickname must have only lowercase letters and numbers and no spaces.'));
+ try {
+ $nickname = Nickname::normalize($this->trimmed('newname'));
+ } catch (NicknameException $e) {
+ $this->showForm($e->getMessage());
return;
}
@@ -463,9 +475,7 @@ class FinishopenidloginAction extends Action
function isNewNickname($str)
{
- if (!Validate::string($str, array('min_length' => 1,
- 'max_length' => 64,
- 'format' => NICKNAME_FMT))) {
+ if (!Nickname::isValid($str)) {
return false;
}
if (!User::allowed_nickname($str)) {