Пример #1
0
 function registerNewUser($values)
 {
     JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/tables');
     //  Register an User
     Tienda::load('TiendaHelperUser', 'helpers.user');
     $userHelper = TiendaHelperUser::getInstance('User', 'TiendaHelper');
     $response = array();
     $response['msg'] = '';
     $response['error'] = '';
     if ($userHelper->emailExists($values['email_address'])) {
         // TODO user already exists
         $response['error'] = '1';
         $response['msg'] = JText::_('COM_TIENDA_EMAIL_ALREADY_EXIST');
         $response['key'] = 'email_address';
         return $response;
     } else {
         Tienda::load('TiendaHelperUser', 'helpers.user');
         $userHelper = TiendaHelperUser::getInstance('User', 'TiendaHelper');
         $details = array('email' => $values['email_address'], 'name' => $values['name'], 'username' => $values['username'], 'password' => $values['password'], 'password2' => $values['password2']);
         // create the new user
         $msg = $this->getError();
         $user = $userHelper->createNewUser($details, isset($values['guest']));
         if (empty($user->id)) {
             // TODO what to do if creating new user failed?
         }
         // save the real user's info in the userinfo table also
         JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/tables');
         $userinfo = JTable::getInstance('UserInfo', 'TiendaTable');
         $userinfo->load(array('user_id' => $user->id));
         $userinfo->user_id = $user->id;
         if (isset($values['billing_input_first_name'])) {
             $userinfo->first_name = $values['billing_input_first_name'];
         }
         if (isset($values['billing_input_last_name'])) {
             $userinfo->last_name = $values['billing_input_last_name'];
         }
         if (isset($values['billing_input_company'])) {
             $userinfo->company = $values['billing_input_company'];
         }
         if (isset($values['billing_input_middle_name'])) {
             $userinfo->middle_name = $values['billing_input_middle_name'];
         }
         if (isset($values['billing_input_phone_1'])) {
             $userinfo->phone_1 = $values['billing_input_phone_1'];
         }
         if (isset($values['email_address'])) {
             $userinfo->email = $values['email_address'];
         }
         $userinfo->save();
         // login the user
         $userHelper->login(array('username' => $user->username, 'password' => $details['password']));
         return true;
     }
 }
Пример #2
0
 /**
  * Method to set values in the session from the post
  * @return unknown_type
  */
 function saveStep1()
 {
     $post = JRequest::get('post');
     // store the values in the session
     $session = JFactory::getSession();
     if ($post['user_type'] != 'existing') {
         $email = '';
         // Create user
         Tienda::load('TiendaHelperUser', 'helpers.user');
         $userHelper = TiendaHelperUser::getInstance('User', 'TiendaHelper');
         if ($post['user_type'] == 'new') {
             $text = JText::_('COM_TIENDA_USERNAME');
             $email = $post['new_email'];
             $username = !empty($post['new_username_create']) ? $email : $post['new_username'];
             $details = array('email' => $post['new_email'], 'name' => $post['new_name'], 'username' => $username);
             // create password here?
             jimport('joomla.user.helper');
             $details['password'] = JUserHelper::genRandomPassword();
             $details['password2'] = $details['password'];
             $user = $userHelper->createNewUser($details);
         } elseif ($post['user_type'] == 'anonymous') {
             $email = $post['anon_email'];
             // create a guest email address to be stored in the __users table
             //get the domain from the uri
             $uri = JURI::getInstance();
             $domain = $uri->gethost();
             $guestId = time();
             // send the guest user credentials to the user's real email address
             $details = array('email' => $post['anon_email'], 'name' => "guest_" . $guestId, 'username' => "guest_" . $guestId);
             // use a random password, and send password2 for the email
             jimport('joomla.user.helper');
             $details['password'] = JUserHelper::genRandomPassword();
             $details['password2'] = $details['password'];
             $user = $userHelper->createNewUser($details, true);
             // but don't save the user's real email in the __users db table
             if (Tienda::getInstance()->get('obfuscate_guest_email', '0')) {
                 $lastUserId = $userHelper->getLastUserId();
                 $guestId = $lastUserId + 1;
                 // format: guest_[id]@domain.com
                 $guest_email = "guest_" . $guestId . "@" . $domain;
                 $userEmailUpdate = $userHelper->updateUserEmail($user->id, $guest_email);
             }
         }
         // save the real user's info in the userinfo table
         JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_tienda/tables');
         $userinfo = JTable::getInstance('UserInfo', 'TiendaTable');
         $userinfo->load(array('user_id' => $user->id));
         $userinfo->user_id = $user->id;
         $userinfo->email = $email;
         $userinfo->save();
         // overide the userid in the post
         $user_id = $user->id;
         $session->set('user_id', $user->id, 'tienda_pos');
     } else {
         $session->set('user_id', $post['user_id'], 'tienda_pos');
     }
     $session->set('user_type', $post['user_type'], 'tienda_pos');
     $session->set('new_email', $post['new_email'], 'tienda_pos');
     $session->set('new_name', $post['new_name'], 'tienda_pos');
     $session->set('new_username_create', !empty($post['new_username_create']), 'tienda_pos');
     $session->set('new_username', $post['new_username'], 'tienda_pos');
     $session->set('anon_emails', !empty($post['anon_emails']), 'tienda_pos');
     $session->set('anon_email', $post['anon_email'], 'tienda_pos');
     $session->set('subtask', 'shipping', 'tienda_pos');
     $this->setRedirect("index.php?option=com_tienda&view=pos&nextstep=step2");
 }