summaryrefslogtreecommitdiff
path: root/actions/finishopenidlogin.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/finishopenidlogin.php')
-rw-r--r--actions/finishopenidlogin.php61
1 files changed, 16 insertions, 45 deletions
diff --git a/actions/finishopenidlogin.php b/actions/finishopenidlogin.php
index 89f4ef0bd..827a4e9c7 100644
--- a/actions/finishopenidlogin.php
+++ b/actions/finishopenidlogin.php
@@ -192,64 +192,35 @@ class FinishopenidloginAction extends Action {
return;
}
- $profile = new Profile();
-
- $profile->nickname = $nickname;
-
- if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
- $profile->fullname = $sreg['fullname'];
- }
-
if ($sreg['country']) {
if ($sreg['postcode']) {
# XXX: use postcode to get city and region
# XXX: also, store postcode somewhere -- it's valuable!
- $profile->location = $sreg['postcode'] . ', ' . $sreg['country'];
+ $location = $sreg['postcode'] . ', ' . $sreg['country'];
} else {
- $profile->location = $sreg['country'];
+ $location = $sreg['country'];
}
}
-
- # XXX save language if it's passed
- # XXX save timezone if it's passed
-
- $profile->profileurl = common_profile_url($nickname);
-
- $profile->created = DB_DataObject_Cast::dateTime(); # current time
-
- $id = $profile->insert();
- if (!$id) {
- common_server_error(_('Error saving the profile.'));
- return;
+
+ if ($sreg['fullname'] && strlen($sreg['fullname']) <= 255) {
+ $fullname = $sreg['fullname'];
}
-
- $user = new User();
- $user->id = $id;
- $user->nickname = $nickname;
- $user->uri = common_user_uri($user);
-
+
if ($sreg['email'] && Validate::email($sreg['email'], true)) {
- $user->email = $sreg['email'];
+ $email = $sreg['email'];
}
- $user->created = DB_DataObject_Cast::dateTime(); # current time
-
- $result = $user->insert();
-
- if (!$result) {
- # Try to clean up...
- $profile->delete();
- }
+ # XXX: add language
+ # XXX: add timezone
+
+ $user = User::register(array('nickname' => $nickname,
+ 'email' => $email,
+ 'fullname' => $fullname,
+ 'location' => $location));
$result = oid_link_user($user->id, $canonical, $display);
-
- if (!$result) {
- # Try to clean up...
- $user->delete();
- $profile->delete();
- }
-
- oid_set_last($display);
+
+ oid_set_last($display);
common_set_user($user->nickname);
common_real_login(true);
common_redirect(common_local_url('showstream', array('nickname' => $user->nickname)));