Exemplo n.º 1
0
 function loginUser($username)
 {
     global $database, $form, $lang;
     $userinfo = $database->getUserInfo($username);
     if (!$userinfo) {
         return false;
     }
     $active = $database->confirmLenderActive($userinfo['userid']);
     if ($userinfo['userlevel'] != BORROWER_LEVEL) {
         if (!$userinfo['emailVerified']) {
             $form->setError("username", $lang['error']['not_verified_email']);
         }
     }
     /* Don't allow inactive lenders to login */
     if ($userinfo['userlevel'] == LENDER_LEVEL && !$active) {
         $form->setError("username", $lang['error']['inactive_account']);
     }
     if ($form->num_errors > 0) {
         return false;
     }
     /* Register session variables */
     $this->userinfo = $userinfo;
     $this->username = $_SESSION['username'] = $this->userinfo['username'];
     $this->fullname = $this->userinfo['name'];
     $this->userid = $_SESSION['userid'] = $this->userinfo['userid'];
     $this->userlevel = $this->userinfo['userlevel'];
     $this->usersublevel = $_SESSION['sublevel'] = $this->userinfo['sublevel'];
     $language = $userinfo['lang'];
     if ($language != 'en') {
         $_SESSION['language'] = $language;
     }
     /* Insert userid into database and update active users table */
     if ($this->usersublevel != READ_ONLY_LEVEL) {
         $database->setLoginTime($this->userid, $this->time);
     }
     /**** Integration with shift science on date 24-12-2013******/
     $this->getLoginSiftData('login_event', $this->userid);
     if ($this->userlevel == LENDER_LEVEL && !$userinfo['mixpanel_aliased']) {
         $distinct_id = Mixpanel::getDistinctId();
         $isUserId = $database->isUserId($distinct_id);
         if (!$isUserId) {
             Mixpanel::alias($this->userid);
         }
         $database->updateMixpanelAliased($this->userid);
     }
     Mixpanel::identify($this->userid, array('username' => $this->username, 'userlevel' => $this->userlevel_to_string($this->userlevel), 'name' => $userinfo['name'], 'email' => $userinfo['email']));
     if ($this->userlevel == LENDER_LEVEL) {
         $created = $userinfo['regdate'];
         $last_login = $this->time;
         Mixpanel::peopleSet(array('$first_name' => $userinfo['firstname'], '$last_name' => $userinfo['lastname'], '$username' => $userinfo['username'], '$email' => $userinfo['email'], '$created' => date('D, d M Y H:i:s Z', $created), '$last_login' => date('D, d M Y H:i:s Z', $last_login), 'userlevel' => $this->userlevel_to_string($this->userlevel), 'user_id' => $this->userid));
     }
     Mixpanel::track('Logged in');
     return $userinfo;
 }