コード例 #1
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 public function executeAddNewSubscriber(sfWebRequest $request)
 {
     $this->minyan = Utils::extractDomainObjectFromRequest($request, 'Minyan', 'minyanId', true);
     $this->form = new SignupForm();
     unset($this->form['password']);
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('signup'));
         if ($this->form->isValid()) {
             $fields = $this->form->getValues();
             $con = Doctrine::getConnectionByTableName('SfGuardUser');
             try {
                 $con->beginTransaction();
                 $this->logMessage("Executing signup for new user for minyan {$this->minyan->getName()}: {$fields['email']}", 'notice');
                 $sgu = new SfGuardUser();
                 $sgu->setFirstName($fields['first_name']);
                 $sgu->setLastName($fields['last_name']);
                 $sgu->setUsername($fields['email']);
                 $sgu->setEmailAddress($fields['email']);
                 $sgu->setPhone($fields['phone']);
                 $sgu->setPassword(sfConfig::get('app_temp_password'));
                 $sgu->setIsActive(true);
                 $sgu->save();
                 $contactMethods = $request->getParameter('contact_method');
                 foreach ($contactMethods as $name => $method) {
                     $contactMethods[$name] = Utils::toBoolean($method);
                 }
                 $minyanUser = new MinyanUser();
                 $minyanUser->setMinyanId($this->minyan->getId());
                 $minyanUser->setUserId($sgu->getId());
                 $minyanUser->setUsePhone($contactMethods['phone']);
                 $minyanUser->setUseSms($contactMethods['text']);
                 $minyanUser->setUseEmail($contactMethods['email']);
                 $minyanUser->save();
                 $con->commit();
             } catch (Exception $e) {
                 $con->rollback();
                 $this->logMessage("Problem when signing up user {$fields['email']}: {$e->getMessage()}", 'notice');
                 throw $e;
             }
             MAMUtils::sendInternalEmail("New Make a Minyan User Alert for minyan {$this->minyan->getName()}! - {$sgu->getFullName()}", "");
             //send email
             $options = array();
             $options['template'] = 'welcomeToMinyan';
             $options['subject'] = 'Welcome!';
             $options['minyan'] = $this->minyan;
             $options['user'] = $sgu;
             $options['minyanUser'] = $minyanUser;
             $options['first_name'] = $sgu->getFirstName();
             $options['to'] = $sgu->getUsername();
             EmailUtils::send($options);
             $this->logMessage('Welcome email sent to ' . $sgu->getUsername(), 'notice');
             $this->getUser()->setFlash('subscribersSuccess', 'Added ' . $sgu->getUsername() . ' successfully!');
             echo Utils::ajaxResponse(true, $this->minyan->getId());
             return sfView::NONE;
         }
     }
 }
コード例 #2
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $this->form = new SignupForm();
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('signup'));
         if ($this->form->isValid()) {
             $fields = $this->form->getValues();
             $con = Doctrine::getConnectionByTableName('SfGuardUser');
             try {
                 $con->beginTransaction();
                 $this->logMessage("Executing signup for new user: {$fields['email']}", 'notice');
                 $sgu = new SfGuardUser();
                 $sgu->setFirstName($fields['first_name']);
                 $sgu->setLastName($fields['last_name']);
                 $sgu->setUsername($fields['email']);
                 $sgu->setEmailAddress($fields['email']);
                 $sgu->setPhone($fields['phone']);
                 $sgu->setPassword($fields['password']);
                 $sgu->setIsActive(true);
                 $sgu->save();
                 $con->commit();
             } catch (Exception $e) {
                 $con->rollback();
                 $this->logMessage("Problem when signing up user {$fields['email']}: {$e->getMessage()}", 'notice');
                 throw $e;
             }
             MAMUtils::sendInternalEmail("New Make a Minyan User Alert! - {$sgu->getFullName()}, Plan: {$this->plan['name']}", "");
             //send email
             $options = array();
             $options['template'] = 'welcome';
             $options['subject'] = 'Welcome!';
             $options['first_name'] = $sgu->getFirstName();
             $options['to'] = $sgu->getUsername();
             EmailUtils::send($options);
             $this->logMessage('Welcome email sent to ' . $sgu->getUsername(), 'notice');
             $this->redirect('signup/thanks');
         }
     }
 }
コード例 #3
0
 public function executeRegister()
 {
     if ($this->getRequest()->getMethod() != sfRequest::POST) {
         return sfView::SUCCESS;
     }
     $user = new SfGuardUser();
     $user->setUsername($this->getRequestParameter('username'));
     $user->setPassword($this->getRequestParameter('password'));
     $user->setIsActive(false);
     $profile = new UserProfile();
     $profile->setEmail($this->getRequestParameter('email'));
     $profile->setFirstName($this->getRequestParameter('first_name'));
     $profile->setLastName($this->getRequestParameter('last_name'));
     $profile->setGender($this->getRequestParameter('gender') ? $this->getRequestParameter('gender') : null);
     $profile->setBirthday($this->getRequestParameter('birthday') ? $this->getRequestParameter('birthday') : null);
     $user->addUserProfile($profile);
     $user->save();
     $this->getRequest()->setAttribute('email', $profile->getEmail());
     $this->getRequest()->setAttribute('full_name', $profile->getFullName());
     $this->getRequest()->setAttribute('activation_key', $profile->getConfirmation());
     $raw_email = $this->sendEmail('mail', 'register');
     $this->logMessage($raw_email, 'debug');
     $this->setFlash('info', 'We sent a confirmation email to your email address.');
     $this->forward('site', 'message');
 }