/** * 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; }
/** * 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; }
/** * 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'); } } }