Beispiel #1
0
 /**
  * Set customer object and setting customer id in session
  *
  * @param   Mage_Customer_Model_Customer $customer
  * @return  Mage_Customer_Model_Session
  */
 public function setCustomer(Mage_Customer_Model_Customer $customer)
 {
     // check if customer is not confirmed
     if ($customer->isConfirmationRequired()) {
         if ($customer->getConfirmation()) {
             throw new Exception('This customer is not confirmed and cannot log in.', Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED);
         }
     }
     $this->_customer = $customer;
     $this->setId($customer->getId());
     // save customer as confirmed, if it is not
     if (!$customer->isConfirmationRequired() && $customer->getConfirmation()) {
         $customer->setConfirmation(null)->save();
         $customer->setIsJustConfirmed(true);
     }
     return $this;
 }
Beispiel #2
0
 /**
  * Set customer object and setting customer id in session
  *
  * @param   Mage_Customer_Model_Customer $customer
  * @return  Mage_Customer_Model_Session
  */
 public function setCustomer(Mage_Customer_Model_Customer $customer)
 {
     // check if customer is not confirmed
     if ($customer->isConfirmationRequired()) {
         if ($customer->getConfirmation()) {
             return $this->_logout();
         }
     }
     $this->_customer = $customer;
     $this->setId($customer->getId());
     // save customer as confirmed, if it is not
     if (!$customer->isConfirmationRequired() && $customer->getConfirmation()) {
         $customer->setConfirmation(null)->save();
         $customer->setIsJustConfirmed(true);
     }
     return $this;
 }
 /**
  * Success Registration
  *
  * @param Mage_Customer_Model_Customer $customer
  * @return Mage_Customer_AccountController
  */
 protected function _successProcessRegistration(Mage_Customer_Model_Customer $customer)
 {
     $session = $this->_getSession();
     if ($customer->isConfirmationRequired()) {
         /** @var $app Mage_Core_Model_App */
         $app = $this->_getApp();
         /** @var $store  Mage_Core_Model_Store*/
         $store = $app->getStore();
         $customer->sendNewAccountEmail('confirmation', $session->getBeforeAuthUrl(), $store->getId());
         $customerHelper = $this->_getHelper('customer');
         $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.', $customerHelper->getEmailConfirmationUrl($customer->getEmail())));
         $url = $this->_getUrl('*/*/index', array('_secure' => true));
     } else {
         $session->setCustomerAsLoggedIn($customer);
         $url = $this->_welcomeCustomer($customer);
     }
     $this->_redirectSuccess($url);
     return $this;
 }
 protected function getCustomerIsConfirmedStatus(Mage_Customer_Model_Customer $customer)
 {
     // TODO: Verify this
     if (!$customer->getData('confirmation')) {
         return true;
     }
     if ($customer->isConfirmationRequired()) {
         return false;
     }
     return null;
 }
Beispiel #5
0
 /**
  * Edit/View Existing Customer form fields
  *
  * @param Varien_Data_Form $form
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Mage_Customer_Model_Customer $customer
  */
 protected function _addEditCustomerFormFields($form, $fieldset, $customer)
 {
     $form->getElement('created_in')->setDisabled('disabled');
     if (!Mage::app()->isSingleStoreMode()) {
         $form->getElement('website_id')->setDisabled('disabled');
         $renderer = $this->getLayout()->createBlock('Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element');
         $form->getElement('website_id')->setRenderer($renderer);
     } else {
         $fieldset->removeField('website_id');
     }
     if ($customer->isReadonly()) {
         return;
     }
     $this->_addPasswordManagementFieldset($form, 'New Password', true);
     // Prepare customer confirmation control (only for existing customers)
     $confirmationKey = $customer->getConfirmation();
     if ($confirmationKey || $customer->isConfirmationRequired()) {
         $confirmationAttr = $customer->getAttribute('confirmation');
         if (!$confirmationKey) {
             $confirmationKey = $customer->getRandomConfirmationKey();
         }
         $element = $fieldset->addField('confirmation', 'select', array('name' => 'confirmation', 'label' => Mage::helper('Mage_Customer_Helper_Data')->__($confirmationAttr->getFrontendLabel())));
         $element->setEntityAttribute($confirmationAttr);
         $element->setValues(array('' => 'Confirmed', $confirmationKey => 'Not confirmed'));
         // Prepare send welcome email checkbox if customer is not confirmed
         // no need to add it, if website ID is empty
         if ($customer->getConfirmation() && $customer->getWebsiteId()) {
             $fieldset->addField('sendemail', 'checkbox', array('name' => 'sendemail', 'label' => Mage::helper('Mage_Customer_Helper_Data')->__('Send Welcome Email after Confirmation')));
             $customer->setData('sendemail', '1');
         }
     }
 }