Example #1
0
 /**
  * @return User
  *
  * Fetches the session user if one is logged in.
  * Otherwise returns null.
  */
 public static function getUser()
 {
     if (!Session::$sessionUser) {
         if (!Session::getSessionCookie()) {
             return null;
         }
         $sessionToken = Session::getSessionCookie();
         $session = UserSession::findByToken($sessionToken);
         if (!$session) {
             return null;
         }
         // increase expire date
         $session->updateExpireDate(time() + 15 * 60);
         $session->save();
         Session::$sessionUser = $session->getUser();
         AccessLog::create(Session::$sessionUser->id, $session->id);
     }
     return Session::$sessionUser;
 }
Example #2
0
 private static function setSessionUser()
 {
     // Set sessionUser
     if (!Config::get('loginEnabled')) {
         Session::$sessionUser = false;
     } else {
         $ifc = new InterfaceObject('SessionUser');
         $session = new Atom(session_id(), 'SESSION');
         $sessionUsers = array_keys((array) $session->getContent($ifc, true));
         if (count($sessionUsers) > 1) {
             throw new Exception('Multiple session users found. This is not allowed.', 500);
         }
         if (empty($sessionUsers)) {
             Session::$sessionUser = false;
         } else {
             Session::$sessionUser = current($sessionUsers);
             Notifications::addLog("Session user set to '{$sessionUser}'", 'SESSION');
         }
     }
 }