Exemplo n.º 1
0
 /**
  * Set a user authentication.
  *
  * @param object $oUserData User database object.
  * @param object \PH7\UserCoreModel $oUserModel
  * @param object \PH7\Framework\Session\Session $oSession
  * @return void
  */
 public function setAuth($oUserData, UserCoreModel $oUserModel, Session $oSession)
 {
     // Is disconnected if the user is logged on as "affiliate" or "administrator".
     if (AffiliateCore::auth() || AdminCore::auth()) {
         $oSession->destroy();
     }
     // Regenerate the session ID to prevent the session fixation
     $oSession->regenerateId();
     // Now we connect the member
     $aSessionData = ['member_id' => $oUserData->profileId, 'member_email' => $oUserData->email, 'member_username' => $oUserData->username, 'member_first_name' => $oUserData->firstName, 'member_sex' => $oUserData->sex, 'member_group_id' => $oUserData->groupId, 'member_ip' => Ip::get(), 'member_http_user_agent' => (new Browser())->getUserAgent(), 'member_token' => Various::genRnd($oUserData->email)];
     $oSession->set($aSessionData);
     (new Framework\Mvc\Model\Security())->addLoginLog($oUserData->email, $oUserData->username, '*****', 'Logged in!');
     $oUserModel->setLastActivity($oUserData->profileId);
     unset($oUserModel, $oUserData);
 }