openid registration
This commit is contained in:
parent
38eff190ea
commit
90b601c3dd
|
@ -11,6 +11,37 @@ function openid_content(&$a) {
|
||||||
|
|
||||||
if($openid->validate()) {
|
if($openid->validate()) {
|
||||||
|
|
||||||
|
if(x($_SESSION,'register')) {
|
||||||
|
unset($_SESSION['register']);
|
||||||
|
$args = '';
|
||||||
|
$attr = $openid->getAttributes();
|
||||||
|
if(is_array($attr) && count($attr)) {
|
||||||
|
foreach($attr as $k => $v) {
|
||||||
|
if($k === 'namePerson/friendly')
|
||||||
|
$nick = notags(trim($v));
|
||||||
|
if($k === 'namePerson/first')
|
||||||
|
$first = notags(trim($v));
|
||||||
|
if($k === 'namePerson')
|
||||||
|
$args .= '&username=' . notags(trim($v));
|
||||||
|
if($k === 'contact/email')
|
||||||
|
$args .= '&email=' . notags(trim($v));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($nick)
|
||||||
|
$args .= '&nickname=' . $nick;
|
||||||
|
elseif($first)
|
||||||
|
$args .= '&nickname=' . $first;
|
||||||
|
|
||||||
|
$args .= '&openid_url=' . notags(trim($_SESSION['openid']));
|
||||||
|
if($a->config['register_policy'] != REGISTER_CLOSED)
|
||||||
|
goaway($a->get_baseurl() . '/register' . $args);
|
||||||
|
else
|
||||||
|
goaway($a->get_baseurl());
|
||||||
|
|
||||||
|
// NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `openid` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `openid` = '%s' AND `blocked` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
dbesc($_SESSION['openid'])
|
dbesc($_SESSION['openid'])
|
||||||
);
|
);
|
||||||
|
|
|
@ -36,8 +36,24 @@ function register_post(&$a) {
|
||||||
$nickname = notags(trim($_POST['nickname']));
|
$nickname = notags(trim($_POST['nickname']));
|
||||||
if(x($_POST,'email'))
|
if(x($_POST,'email'))
|
||||||
$email = notags(trim($_POST['email']));
|
$email = notags(trim($_POST['email']));
|
||||||
|
if(x($_POST,'openid_url'))
|
||||||
|
$openid_url = notags(trim($_POST['openid_url']));
|
||||||
|
|
||||||
|
|
||||||
if((! x($username)) || (! x($email)) || (! x($nickname))) {
|
if((! x($username)) || (! x($email)) || (! x($nickname))) {
|
||||||
|
if($openid_url) {
|
||||||
|
$_SESSION['register'] = 1;
|
||||||
|
$_SESSION['openid'] = $openid_url;
|
||||||
|
require_once('library/openid.php');
|
||||||
|
$openid = new LightOpenID;
|
||||||
|
$openid->identity = $openid_url;
|
||||||
|
$openid->returnUrl = $a->get_baseurl() . '/openid';
|
||||||
|
$openid->required = array('namePerson/friendly', 'contact/email', 'namePerson');
|
||||||
|
$openid->optional = array('namePerson/first');
|
||||||
|
goaway($openid->authUrl());
|
||||||
|
// NOTREACHED
|
||||||
|
}
|
||||||
|
|
||||||
notice( t('Please enter the required information.') . EOL );
|
notice( t('Please enter the required information.') . EOL );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -118,12 +134,13 @@ function register_post(&$a) {
|
||||||
$spkey = openssl_pkey_get_details($sres);
|
$spkey = openssl_pkey_get_details($sres);
|
||||||
$spubkey = $spkey["key"];
|
$spubkey = $spkey["key"];
|
||||||
|
|
||||||
$r = q("INSERT INTO `user` ( `username`, `password`, `email`, `nickname`,
|
$r = q("INSERT INTO `user` ( `username`, `password`, `email`, `openid`, `nickname`,
|
||||||
`pubkey`, `prvkey`, `spubkey`, `sprvkey`, `verified`, `blocked` )
|
`pubkey`, `prvkey`, `spubkey`, `sprvkey`, `verified`, `blocked` )
|
||||||
VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d )",
|
VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d )",
|
||||||
dbesc($username),
|
dbesc($username),
|
||||||
dbesc($new_password_encoded),
|
dbesc($new_password_encoded),
|
||||||
dbesc($email),
|
dbesc($email),
|
||||||
|
dbesc($openid_url),
|
||||||
dbesc($nickname),
|
dbesc($nickname),
|
||||||
dbesc($pubkey),
|
dbesc($pubkey),
|
||||||
dbesc($prvkey),
|
dbesc($prvkey),
|
||||||
|
@ -307,9 +324,10 @@ function register_content(&$a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : ''));
|
$username = ((x($_POST,'username')) ? $_POST['username'] : ((x($_GET,'username')) ? $_GET['username'] : ''));
|
||||||
$email = ((x($_POST,'email')) ? $_POST['email'] : ((x($_GET,'email')) ? $_GET['email'] : ''));
|
$email = ((x($_POST,'email')) ? $_POST['email'] : ((x($_GET,'email')) ? $_GET['email'] : ''));
|
||||||
$nickname = ((x($_POST,'nickname')) ? $_POST['nickname'] : ((x($_GET,'nickname')) ? $_GET['nickname'] : ''));
|
$openid_url = ((x($_POST,'openid_url')) ? $_POST['openid_url'] : ((x($_GET,'openid_url')) ? $_GET['openid_url'] : ''));
|
||||||
|
$nickname = ((x($_POST,'nickname')) ? $_POST['nickname'] : ((x($_GET,'nickname')) ? $_GET['nickname'] : ''));
|
||||||
|
|
||||||
$o = load_view_file("view/register.tpl");
|
$o = load_view_file("view/register.tpl");
|
||||||
$o = replace_macros($o, array(
|
$o = replace_macros($o, array(
|
||||||
|
@ -317,6 +335,10 @@ function register_content(&$a) {
|
||||||
'$registertext' =>((x($a->config,'register_text'))
|
'$registertext' =>((x($a->config,'register_text'))
|
||||||
? '<div class="error-message">' . $a->config['register_text'] . '</div>'
|
? '<div class="error-message">' . $a->config['register_text'] . '</div>'
|
||||||
: "" ),
|
: "" ),
|
||||||
|
'$fillwith' => t('You may ' . "\x28" . 'optionally' . "\x29" . ' fill in this form via OpenID by supplying your OpenID and clicking ') . "'" . t('Register') . "'",
|
||||||
|
'$fillext' => t('If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items.'),
|
||||||
|
'$oidlabel' => t('Your OpenID ' . "\x28" . 'optional' . "\x29" . ': '),
|
||||||
|
'$openid' => $openid_url,
|
||||||
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
|
'$namelabel' => t('Your Full Name ' . "\x28" . 'e.g. Joe Smith' . "\x29" . ': '),
|
||||||
'$addrlabel' => t('Your Email Address: '),
|
'$addrlabel' => t('Your Email Address: '),
|
||||||
'$nickdesc' => t('Choose a profile nickname. This must begin with a text character. Your global profile locator will then be \'<strong>nickname@$sitename</strong>\'.'),
|
'$nickdesc' => t('Choose a profile nickname. This must begin with a text character. Your global profile locator will then be \'<strong>nickname@$sitename</strong>\'.'),
|
||||||
|
|
|
@ -4,6 +4,17 @@
|
||||||
|
|
||||||
$registertext
|
$registertext
|
||||||
|
|
||||||
|
|
||||||
|
<p id="register-fill-desc">$fillwith</p>
|
||||||
|
<p id="register-fill-ext">$fillext</p>
|
||||||
|
|
||||||
|
<div id="register-openid-wrapper" >
|
||||||
|
<label for="register-openid" id="label-register-openid" >$oidlabel</label>
|
||||||
|
<input type="text" maxlength="60" size="32" name="openid_url" class="openid" id="register-openid" value="$openid" >
|
||||||
|
</div>
|
||||||
|
<div id="register-openid-end" ></div>
|
||||||
|
|
||||||
|
|
||||||
<div id="register-name-wrapper" >
|
<div id="register-name-wrapper" >
|
||||||
<label for="register-name" id="label-register-name" >$namelabel</label>
|
<label for="register-name" id="label-register-name" >$namelabel</label>
|
||||||
<input type="text" maxlength="60" size="32" name="username" id="register-name" value="$username" >
|
<input type="text" maxlength="60" size="32" name="username" id="register-name" value="$username" >
|
||||||
|
|
|
@ -47,6 +47,9 @@ input:hover {
|
||||||
background-position: 0 50%;
|
background-position: 0 50%;
|
||||||
padding-left: 18px;
|
padding-left: 18px;
|
||||||
}
|
}
|
||||||
|
.openid:hover {
|
||||||
|
background-color: #0CBEFE !important;
|
||||||
|
}
|
||||||
|
|
||||||
option {
|
option {
|
||||||
background-color: #ECD6D2;
|
background-color: #ECD6D2;
|
||||||
|
@ -334,8 +337,11 @@ footer {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
#register-fill-ext {
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
#label-register-name, #label-register-email, #label-register-nickname {
|
#label-register-name, #label-register-email, #label-register-nickname, #label-register-openid {
|
||||||
float: left;
|
float: left;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
@ -347,9 +353,16 @@ footer {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end {
|
#register-openid {
|
||||||
|
float: left;
|
||||||
|
margin-top: 10px;
|
||||||
|
width: 130px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#register-name-end, #register-email-end, #register-nickname-end, #register-submit-end, #register-openid-end {
|
||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
#register-nickname-desc {
|
#register-nickname-desc {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
width: 650px;
|
width: 650px;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user