/**
  * This static method returns a valid CurrentUser object if there is one
  * in the cookie that is not timed out. The session-ID is updated then.
  * The CurrentUser will be removed from the session, if it is
  * timed out. If there is no valid CurrentUser in the cookie or the
  * cookie is timed out, null will be returned. If the cookie is correct,
  * but there is no user found in the user table, false will be returned.
  * On success, a valid CurrentUser object is returned
  *
  * @static
  *
  * @param PMF_Configuration $config
  *
  * @return null|PMF_User_CurrentUser
  */
 public static function getFromCookie(PMF_Configuration $config)
 {
     if (!isset($_COOKIE[PMF_Session::PMF_COOKIE_NAME_REMEMBERME])) {
         return null;
     }
     // create a new CurrentUser object
     $user = new PMF_User_CurrentUser($config);
     $user->getUserByCookie($_COOKIE[PMF_Session::PMF_COOKIE_NAME_REMEMBERME]);
     if (-1 === $user->getUserId()) {
         return null;
     }
     // sessionId needs to be updated
     $user->updateSessionId(true);
     // user is now logged in
     $user->_loggedIn = true;
     // save current user to session and return the instance
     $user->saveToSession();
     // add CSRF token to session
     $user->saveCrsfTokenToSession();
     return $user;
 }