/**
  * Extra account validation beyond parent::isValid()
  *
  * @param $data Array of form data
  * @return bool
  */
 public function isValid($data)
 {
     $validationResult = parent::isValid($data);
     // Perform login validation
     $auth = Zend_Auth::getInstance();
     $auth->setStorage(new Zend_Auth_Storage_Session('homelet_customer'));
     $loginSubForm = $this->getSubForm('subform_login');
     if (isset($loginSubForm) && $data['email'] != '' && $data['password'] != '') {
         // Process login
         $customerManager = new Manager_Core_Customer();
         $adapter = $customerManager->getAuthAdapter(array('email' => $data['email'], 'password' => $data['password']));
         $result = $auth->authenticate($adapter);
         if ($result->isValid()) {
             $email = $loginSubForm->getElement('email');
             $newCustomer = $customerManager->getCustomerByEmailAddress($email->getValue());
             if ($newCustomer->getEmailValidated() !== true) {
                 $auth->clearIdentity();
                 $email->addError("Unfortunately you haven't validated your email address yet. We've sent you an email which includes a link to validate your My HomeLet account. You'll need to validate your account to continue. If you've not received your validation email or if you're unable to access your account, please call us on 0845 117 6000.");
                 return false;
             }
             $storage = $auth->getStorage();
             $storage->write($adapter->getResultRowObject(array('title', 'first_name', 'last_name', 'email_address', 'id')));
         } else {
             $password = $loginSubForm->getElement('password');
             $password->addError('Your password is incorrect, please try again');
             return false;
         }
     }
     // All valid above, return parents validation result
     return $validationResult;
 }
Example #2
0
 public function isValid($postData)
 {
     $contacts = new LettingAgents_Manager_Contacts();
     $pageSession = new Zend_Session_Namespace('letting_agents_application');
     if ($contacts->fetchByAgencyUid($this->_agent_uid)) {
         switch ($this->_organisationId) {
             case LettingAgents_Object_CompanyTypes::LimitedCompany:
                 $this->getSubForm('subform_limited-company-contacts')->getElement('contact_name')->setRequired(false);
                 break;
             case LettingAgents_Object_CompanyTypes::LimitedLiabilityPartnership:
                 if ($postData['postcode'] != "") {
                     $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->setRequired(true);
                 } elseif ($postData['contact_name'] != "") {
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(true);
                 } else {
                     $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRegisterInArrayValidator(false);
                 }
                 break;
             case LettingAgents_Object_CompanyTypes::Partnership:
                 if ($postData['postcode'] != "" || $postData['contact_name'] != "") {
                     $this->getSubForm('subform_partnership')->getElement('contact_name')->setRequired(true);
                 } else {
                     $this->getSubForm('subform_partnership')->getElement('contact_name')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('postcode')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRequired(false);
                     $this->getSubForm('subform_address')->getElement('address')->setRegisterInArrayValidator(false);
                 }
                 break;
         }
     } elseif ($postData['contact_name'] != '') {
         $agent_id = $this->_agent_uid;
         $db = Zend_Registry::get('db_letting_agents');
         //die($clause);
         $validator = new Zend_Validate_Db_RecordExists(array('table' => 'contact', 'field' => 'agency_id', 'value' => $agent_id, 'adapter' => $db));
         $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Director'));
         switch ($this->_organisationId) {
             case LettingAgents_Object_CompanyTypes::LimitedCompany:
                 $this->getSubForm('subform_limited-company-contacts')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Director'));
                 break;
             case LettingAgents_Object_CompanyTypes::LimitedLiabilityPartnership:
                 $this->getSubForm('subform_limited-liability-partnership')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Partner'));
                 break;
             case LettingAgents_Object_CompanyTypes::Partnership:
                 $this->getSubForm('subform_partnership')->getElement('contact_name')->addValidator($validator);
                 $validator->setMessages(array(Zend_Validate_Db_RecordExists::ERROR_NO_RECORD_FOUND => 'Please Click Add Partner'));
                 break;
         }
     }
     return parent::isValid($postData);
 }
 public function __construct($role = Model_Core_Agent_UserRole::BASIC)
 {
     $this->_role = $role;
     return parent::__construct();
 }
 /**
  * Overridden isValid() method for pre-validation code.
  *
  * @param array $formData data typically from a POST or GET request.
  *
  * @return bool
  */
 public function isValid($formData = array())
 {
     // Call original isValid()
     return parent::isValid($formData);
 }