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;
 }
 public function loginByCustomer(Mage_Customer_Model_Customer $customer)
 {
     if ($customer->getConfirmation()) {
         $customer->setConfirmation(null);
         $customer->save();
     }
     Mage::getSingleton('customer/session')->setCustomerAsLoggedIn($customer);
 }
Beispiel #3
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;
 }
Beispiel #4
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');
         }
     }
 }
Beispiel #5
0
 /**
  * Send welcome email to customer
  *
  * @param Mage_Customer_Model_Customer $customer
  * @param array $customerData
  * @return Mage_Customer_Service_Customer
  */
 protected function _sendWelcomeEmail($customer, array $customerData)
 {
     if ($customer->getWebsiteId() && ($this->_isSendEmail($customerData) || $this->_isAutogeneratePassword($customerData))) {
         $isNewCustomer = !(bool) $customer->getOrigData($customer->getIdFieldName());
         $storeId = $customer->getSendemailStoreId();
         if ($isNewCustomer) {
             $customer->sendNewAccountEmail('registered', '', $storeId);
         } elseif (!$customer->getConfirmation()) {
             // Confirm not confirmed customer
             $customer->sendNewAccountEmail('confirmed', '', $storeId);
         }
     }
     return $this;
 }
Beispiel #6
0
 /**
  * @param Mage_Customer_Model_Customer $customer
  *
  * @return Bronto_Common_Model_Email_Template_Filter
  */
 protected function _filterCustomer(Mage_Customer_Model_Customer $customer)
 {
     if (!in_array('customer', $this->_filteredObjects)) {
         // Handle Defaults from settings
         $customerName = trim($customer->getName()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('full', 'store', $this->getStoreId()) : $customer->getName();
         $customerPrefix = trim($customer->getPrefix()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('prefix', 'store', $this->getStoreId()) : $customer->getPrefix();
         $customerFirstName = trim($customer->getFirstname()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('firstname', 'store', $this->getStoreId()) : $customer->getFirstname();
         $customerLastName = trim($customer->getLastname()) == '' ? Mage::helper('bronto_common')->getDefaultGreeting('lastname', 'store', $this->getStoreId()) : $customer->getLastname();
         $this->setField('customerName', $customerName);
         $this->setField('firstName', $customerFirstName);
         $this->setField('prefix', $customerPrefix);
         $this->setField('lastName', $customerLastName);
         $this->setField('customerEmail', $customer->getEmail());
         $this->setField('customerPassword', $customer->getPassword());
         if ($store = $customer->getStore()) {
             $this->setField('confirmationLink', $store->getUrl('customer/account/confirm', array('_query' => array('id' => $customer->getId(), 'key' => $customer->getConfirmation()))));
             if (Mage::helper('bronto_common')->isVersionMatch(Mage::getVersionInfo(), 1, array(array('>=', '6')))) {
                 $this->setField('passwordResetLink', $store->getUrl('customer/account/resetpassword', array('_query' => array('id' => $customer->getId(), 'token' => $customer->getRpToken()))));
             }
         } else {
             $this->setField('confirmationLink', Mage::getUrl('customer/account/confirm', array('_query' => array('id' => $customer->getId(), 'key' => $customer->getConfirmation()))));
             if (Mage::helper('bronto_common')->isVersionMatch(Mage::getVersionInfo(), 1, array(array('>=', '6')))) {
                 $this->setField('passwordResetLink', Mage::getUrl('customer/account/resetpassword', array('_query' => array('id' => $customer->getId(), 'token' => $customer->getRpToken()))));
             }
         }
         $this->_filteredObjects[] = 'customer';
     }
     return $this;
 }
Beispiel #7
0
 /**
  * Validate customer attributes
  *
  * @param Mage_Customer_Model_Customer $customer
  * @return bool
  */
 public function validateCustomerAttributes(Mage_Customer_Model_Customer $customer)
 {
     $errors = array();
     $customerHelper = Mage::helper('customer');
     if (!Zend_Validate::is(trim($customer->getFirstname()), 'NotEmpty')) {
         $errors[] = $customerHelper->__('The first name cannot be empty.');
     }
     /*
             if (!Zend_Validate::is( trim($customer->getLastname()) , 'NotEmpty')) {
                 $errors[] = $customerHelper->__('The last name cannot be empty.');
             }
     */
     if (!Zend_Validate::is($customer->getEmail(), 'EmailAddress')) {
         $errors[] = $customerHelper->__('Invalid email address "%s".', $customer->getEmail());
     }
     $password = $customer->getPassword();
     if (!$customer->getId() && !Zend_Validate::is($password, 'NotEmpty')) {
         $errors[] = $customerHelper->__('The password cannot be empty.');
     }
     if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) {
         $errors[] = $customerHelper->__('The minimum password length is %s', 6);
     }
     $confirmation = $customer->getConfirmation();
     if ($password != $confirmation) {
         $errors[] = $customerHelper->__('Please make sure your passwords match.');
     }
     $entityType = Mage::getSingleton('eav/config')->getEntityType('customer');
     $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'dob');
     if ($attribute->getIsRequired() && '' == trim($customer->getDob())) {
         $errors[] = $customerHelper->__('The Date of Birth is required.');
     }
     $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'taxvat');
     if ($attribute->getIsRequired() && '' == trim($customer->getTaxvat())) {
         $errors[] = $customerHelper->__('The TAX/VAT number is required.');
     }
     $attribute = Mage::getModel('customer/attribute')->loadByCode($entityType, 'gender');
     if ($attribute->getIsRequired() && '' == trim($customer->getGender())) {
         $errors[] = $customerHelper->__('Gender is required.');
     }
     return empty($errors) ? true : $errors;
 }