From 206376cf1019ba54adcf7b174e23fd74bc8257d7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 18 Apr 2011 06:46:16 -0400 Subject: [PATCH] use Start/EndRegistrationTry events for email registration --- plugins/EmailRegistration/emailregister.php | 71 ++++++++++++--------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/plugins/EmailRegistration/emailregister.php b/plugins/EmailRegistration/emailregister.php index c50cedd1f8..a41b126669 100644 --- a/plugins/EmailRegistration/emailregister.php +++ b/plugins/EmailRegistration/emailregister.php @@ -252,44 +252,55 @@ class EmailregisterAction extends Action function setPassword() { - if (!empty($this->invitation)) { - $email = $this->invitation->address; - } else if (!empty($this->confirmation)) { - $email = $this->confirmation->address; - } else { - throw new Exception('No confirmation thing.'); - } + if (Event::handle('StartRegistrationTry', array($this))) { + if (!empty($this->invitation)) { + $email = $this->invitation->address; + } else if (!empty($this->confirmation)) { + $email = $this->confirmation->address; + } else { + throw new Exception('No confirmation thing.'); + } + + if (!$this->tos) { + $this->error = _('You must accept the terms of service and privacy policy to register.'); + $nickname = $this->nicknameFromEmail($email); + $this->form = new ConfirmRegistrationForm($this, $nickname, $this->email, $this->code); + $this->showPage(); + return; + } - if (!$this->tos) { - $this->error = _('You must accept the terms of service and privacy policy to register.'); $nickname = $this->nicknameFromEmail($email); - $this->form = new ConfirmRegistrationForm($this, $nickname, $this->email, $this->code); - $this->showPage(); - return; - } - $nickname = $this->nicknameFromEmail($email); + $this->user = User::register(array('nickname' => $nickname, + 'email' => $email, + 'email_confirmed' => true)); + + if (empty($this->user)) { + throw new Exception("Failed to register user."); + } - $this->user = User::register(array('nickname' => $nickname, - 'email' => $email, - 'email_confirmed' => true)); + common_set_user($this->user); + // this is a real login + common_real_login(true); - if (empty($this->user)) { - throw new Exception("Failed to register user."); - } + // Re-init language env in case it changed (not yet, but soon) + common_init_language(); - if (!empty($this->invitation)) { - $inviter = User::staticGet('id', $this->invitation->user_id); - if (!empty($inviter)) { - Subscription::start($inviter->getProfile(), - $user->getProfile()); + if (!empty($this->invitation)) { + $inviter = User::staticGet('id', $this->invitation->user_id); + if (!empty($inviter)) { + Subscription::start($inviter->getProfile(), + $user->getProfile()); + } + + $this->invitation->delete(); + } else if (!empty($this->confirmation)) { + $this->confirmation->delete(); + } else { + throw new Exception('No confirmation thing.'); } - $this->invitation->delete(); - } else if (!empty($this->confirmation)) { - $this->confirmation->delete(); - } else { - throw new Exception('No confirmation thing.'); + Event::handle('EndRegistrationTry', array($this)); } common_redirect(common_local_url('doc', array('title' => 'welcome')), -- 2.39.5