Re: email of quotes
In includes/session.inc, outside of the class definition, in the function login_timeout() line 402 is:
$_SESSION["wa_current_user"] = new current_user();
Class current_user is defined in includes/current_user.inc, having class variables $loginname, $name and $username all set to empty strings in the constructor at line 42.
current_user::login() method on successful authorisation at line 81:
$myrow = get_user_by_login($loginname);
and sets the current_user class variables
$this->name = $myrow["real_name"];
$this->pos = $myrow["pos"];
$this->loginname = $loginname;
$this->username = $this->loginname;
$this->prefs = new user_prefs($myrow);
$this->user = @$myrow["id"];
If the session variable user is available, ordinarily from the above code, the session variable name should also be available.
When a login timeout occurs, this may not get executed fully and some session variables may get unset (needs to be checked).
Somewhere the session variablenameis getting set to an empty string after having been logged in, if it is empty.
Hence check by replacing the line 269 in reporting/includes/pdf_report.inc with any of the following:
$this->user = $_SESSION["wa_current_user"]->loginname;
// or
$this->user = $_SESSION["wa_current_user"]->username;
and see what happens!