Exemplo n.º 1
0
 public function alreadyActive($attribute, $params)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 'email_id=:email && status=:status';
     $criteria->params = array(':email' => $this->email, ':status' => 'EMAIL_NOT_VERIFIED');
     if (!UserCredentials::model()->find($criteria)) {
         $this->addError('email', 'Your account is already active !');
     }
 }
Exemplo n.º 2
0
 public function exists($attribute, $params)
 {
     $criteria = new CDbCriteria();
     $criteria->condition = 'email_id=:email';
     $criteria->params = array(':email' => $this->email);
     if (!UserCredentials::model()->find($criteria)) {
         $this->addError('email', 'An account by that email does not exist !');
     }
 }
Exemplo n.º 3
0
 protected function afterLogin($fromCookie)
 {
     if (!$fromCookie) {
         $user = UserCredentials::model()->findByPK(Yii::app()->user->id);
         $user->last_login_time = new CDbExpression('NOW()');
         $user->last_login_ip = SecurityUtils::getRealIp();
         $user->save();
     }
 }
Exemplo n.º 4
0
 public function exists($attribute, $params)
 {
     if ($this->id) {
         $user = UserCredentials::model()->findByPk($this->id);
         if ($user) {
             $password = SecurityUtils::encryptPassword($this->currentPassword, $user->salt);
             $criteria = new CDbCriteria();
             $criteria->condition = 'password=:password';
             $criteria->params = array(':password' => $password);
             if (!UserCredentials::model()->find($criteria)) {
                 $this->addError('currentPassword', 'Please enter your current password !');
             }
         } else {
             $this->addError('currentPassword', 'Sorry, could not process your password modification request at this time !');
         }
     } else {
         $this->addError('currentPassword', 'Sorry, could not process your password modification request at this time !');
     }
 }
Exemplo n.º 5
0
 public function authenticate()
 {
     $user = UserCredentials::model()->findByAttributes(array('email_id' => $this->username));
     if ($user === null) {
         $this->errorCode = self::ERROR_USERNAME_INVALID;
     } else {
         if ($user->status != 'ACTIVE') {
             $this->errorCode = self::ERROR_USERNAME_INACTIVE;
         } else {
             if (!SecurityUtils::comparePasswords($this->password, $user->salt, $user->password)) {
                 $this->errorCode = self::ERROR_PASSWORD_INVALID;
             } else {
                 $this->_username = $user->email_id;
                 $this->setState('id', $user->id);
                 $this->setState('emailId', $user->email_id);
                 $this->setState('last_login_time', $user->last_login_time);
                 $this->errorCode = self::ERROR_NONE;
             }
         }
     }
     return !$this->errorCode;
 }
Exemplo n.º 6
0
 public function actionForgotPassword()
 {
     if (!Yii::app()->user->isGuest) {
         $this->redirect('/home');
     }
     $model = new ForgotPasswordForm();
     if (isset($_POST) && isset($_POST['ForgotPasswordForm'])) {
         $model->attributes = $_POST['ForgotPasswordForm'];
         if ($model->validate()) {
             // Generate Password here and redirect
             $tempPass = SecurityUtils::generateRandomString(8);
             $user = UserCredentials::model()->find('email_id=:email', array(':email' => $model->email));
             if ($user) {
                 $user->salt = SecurityUtils::generateSalt($user->email_id);
                 $user->password = SecurityUtils::encryptPassword($tempPass, $user->salt);
                 if ($user->save()) {
                     $data['temp_password'] = $tempPass;
                     $data['user'] = $user->id;
                     EmailApi::sendEmail($model->email, "ACCOUNT.RESET.PASSWORD", $data);
                     Yii::app()->user->setFlash('success', "We have sent you a new password to your email.\n\t\t\t\t\t\t<br/> Please add " . Yii::app()->params['adminEmail'] . " to your whitelist.");
                     $this->redirect('/home');
                 }
             }
         }
     }
     $this->render('forgotPassword', array('model' => $model));
 }
Exemplo n.º 7
0
 public static function searchBuilders($data)
 {
     $criteria = new CDbCriteria();
     $criteria->alias = 'uc';
     $criteria->join = 'LEFT JOIN user_profiles up on uc.id=up.user_id';
     $condition = null;
     $params = null;
     if (isset($data['country_id']) && $data['country_id'] != "") {
         if ($condition != '') {
             $condition .= ' && ';
         }
         $condition .= 'up.country_id=:country_id';
         $params[':country_id'] = $data['country_id'];
     }
     if (isset($data['state_id']) && $data['state_id'] != "") {
         if ($condition != '') {
             $condition .= ' && ';
         }
         $condition .= 'up.state_id=:state_id';
         $params[':state_id'] = $data['state_id'];
     }
     if (isset($data['city_id']) && $data['city_id'] != "") {
         if ($condition != '') {
             $condition .= ' && ';
         }
         $condition .= 'up.city_id=:city_id';
         $params[':city_id'] = $data['city_id'];
     }
     if (isset($data['keyword']) && $data['keyword'] != "") {
         if ($condition != '') {
             $condition .= ' && ';
         }
         $condition .= '(up.first_name like :keyword || up.last_name like :keyword || up.gender like :keyword || up.address_line1 like :keyword || up.address_line2 like :keyword || uc.email_id like :keyword)';
         $params[':keyword'] = '%' . $data['keyword'] . '%';
     }
     if ($data['user_type'] == "builder" && isset($data['property_type_id']) && $data['property_type_id'] != null) {
         $criteria->join .= ' LEFT JOIN property p on p.user_id=uc.id';
         if ($condition != '') {
             $condition .= ' && ';
         }
         $condition .= '(';
         $propertyTypes = $data['property_type_id'];
         foreach ($propertyTypes as $i => $propertyType) {
             if ($i != 0) {
                 $condition .= ' || ';
             }
             $condition .= 'p.property_type_id=' . $propertyType;
         }
         $condition .= ')';
     }
     if ($condition != '') {
         $condition .= ' && ';
     }
     if ($data['user_type'] == "builder") {
         $condition .= 'uc.id IN (SELECT user_id FROM user_builder_profile)';
     }
     if ($condition != null) {
         $criteria->condition = $condition;
         $criteria->params = $params;
     }
     $users = UserCredentials::model()->findAll($criteria);
     return $users;
 }
Exemplo n.º 8
0
 /**
  * Manages all models.
  */
 public function actionAll()
 {
     $dependency = new CDbCacheDependency('SELECT MAX(updated_time) FROM user_credentials');
     $models = UserCredentials::model()->cache(1000, $dependency)->findAll();
     $this->render('all', array('models' => $models));
 }
Exemplo n.º 9
0
 public static function getUserById($id)
 {
     return UserCredentials::model()->findByPk($id);
 }
Exemplo n.º 10
0
 public static function searchAgentWithCriteria($criteria)
 {
     $users = UserCredentials::model()->findAll($criteria);
     return $users;
 }
Exemplo n.º 11
0
 public function actionPeople()
 {
     Yii::beginProfile('search_people');
     $session = new CHttpSession();
     $session->open();
     //$session->destroy();
     // Initiate the entities.
     $users = null;
     $data = null;
     $modelUser = new UserCredentials();
     $modelProfile = new UserProfiles();
     $modelSpecialistType = new UserSpecialistType();
     $modelState = new GeoState();
     $modelCity = new GeoCity();
     $modelLocality = new GeoLocality();
     if (isset($_POST['GeoCity'])) {
         $modelCity->attributes = $_POST['GeoCity'];
     }
     if (isset($_POST['user_type'])) {
         //$data = $_POST['UserProfiles'];
         $data['user_type'] = $_POST['user_type'];
         $data['property_type_id'] = isset($_POST['property_type_id']) ? $_POST['property_type_id'] : null;
         $data['state_id'] = isset($_POST['GeoState']['state']) ? $_POST['GeoState']['state'] : null;
         $data['city_id'] = isset($_POST['GeoCity']['city']) ? $_POST['GeoCity']['city'] : null;
         $data['keyword'] = isset($_POST['keyword']) ? $_POST['keyword'] : null;
         $data['specialist_type_id'] = isset($_POST['specialist_type_id']) ? $_POST['specialist_type_id'] : null;
         $data['locality_id'] = isset($_POST['GeoLocality']['locality']) ? $_POST['GeoLocality']['locality'] : '';
         if ($data['specialist_type_id'][0] == '') {
             $data['specialist_type_id'] = null;
         }
         if ($data['locality_id'] != '') {
             $locality = GeoLocality::model()->find('locality=:locality', array(':locality' => $data['locality_id']));
             if ($locality) {
                 $data['locality_id'] = $locality->id;
             }
         }
         $totalResults = 0;
         if ($_POST['user_type'] == "agent") {
             $criteria = AgentProfileApi::getCriteriaObject($data);
             $totalResults = UserCredentials::model()->count($criteria);
             $pages = new CPagination($totalResults);
             $pages->pageSize = Yii::app()->params['resultsPerPage'];
             $pages->applyLimit($criteria);
             $users = AgentProfileApi::searchAgentWithCriteria($criteria);
             if (isset($_SERVER['HTTP_REFERER'])) {
                 unset($session['search-criteria-user-type']);
             }
             $session['search-criteria-user-type'] = 'agent';
         }
         if ($_POST['user_type'] == "builder") {
             $criteria = BuilderProfileApi::getCriteriaObject($data);
             $totalResults = UserCredentials::model()->count($criteria);
             $pages = new CPagination($totalResults);
             $pages->pageSize = Yii::app()->params['resultsPerPage'];
             $pages->applyLimit($criteria);
             $users = BuilderProfileApi::searchBuilderWithCriteria($criteria);
             if (isset($_SERVER['HTTP_REFERER'])) {
                 unset($session['search-criteria-user-type']);
             }
             $session['search-criteria-user-type'] = 'builder';
         }
         if ($_POST['user_type'] == "specialist") {
             $criteria = SpecialistProfileApi::getCriteriaObject($data);
             $totalResults = UserCredentials::model()->count($criteria);
             $pages = new CPagination($totalResults);
             $pages->pageSize = Yii::app()->params['resultsPerPage'];
             $pages->applyLimit($criteria);
             $users = SpecialistProfileApi::searchSpecialistsWithCriteria($criteria);
             if (isset($_SERVER['HTTP_REFERER'])) {
                 unset($session['search-criteria-user-type']);
             }
             $session['search-criteria-user-type'] = 'specialist';
         }
         $session['search-criteria-user'] = $criteria;
         $session['results-page'] = $totalResults;
     } else {
         if (isset($_SERVER['HTTP_REFERER'])) {
             unset($session['search-criteria-user-type']);
             unset($session['search-criteria-user']);
         }
         if (isset($session['search-criteria-user']) && isset($session['search-criteria-user-type'])) {
             $criteria = $session['search-criteria-user'];
             $userType = $session['search-criteria-user-type'];
             if ($userType == "agent") {
                 $data['user_type'] = 'agent';
                 $totalResults = UserCredentials::model()->count($criteria);
                 $pages = new CPagination($totalResults);
                 $pages->pageSize = Yii::app()->params['resultsPerPage'];
                 $pages->applyLimit($criteria);
                 $users = AgentProfileApi::searchAgentWithCriteria($criteria);
             } elseif ($userType == "builder") {
                 $data['user_type'] = 'builder';
                 $totalResults = UserCredentials::model()->count($criteria);
                 $pages = new CPagination($totalResults);
                 $pages->pageSize = Yii::app()->params['resultsPerPage'];
                 $pages->applyLimit($criteria);
                 $users = BuilderProfileApi::searchBuilderWithCriteria($criteria);
             } else {
                 $data['user_type'] = 'specialist';
                 $totalResults = UserCredentials::model()->count($criteria);
                 $pages = new CPagination($totalResults);
                 $pages->pageSize = Yii::app()->params['resultsPerPage'];
                 $pages->applyLimit($criteria);
                 $users = SpecialistProfileApi::searchSpecialistsWithCriteria($criteria);
             }
         } else {
             $data['user_type'] = 'agent';
             $criteria = AgentProfileApi::getCriteriaObject($data);
             $totalResults = UserCredentials::model()->count($criteria);
             $pages = new CPagination($totalResults);
             $pages->pageSize = Yii::app()->params['resultsPerPage'];
             $pages->applyLimit($criteria);
             $users = AgentProfileApi::searchAgentWithCriteria($criteria);
         }
     }
     $this->render('people', array('pages' => $pages, 'modelState' => $modelState, 'modelUser' => $modelUser, 'modelProfile' => $modelProfile, 'modelCity' => $modelCity, 'modelLocality' => $modelLocality, 'modelSpecialistType' => $modelSpecialistType, 'users' => $users, 'totalResults' => $totalResults, 'userType' => $data['user_type']));
     Yii::endProfile('search_people');
 }