/** * Determine the current user(s) */ public function determineUser() { global $ilUser; // a valid user session is found if ($_SESSION["AccountId"]) { $this->check_users = array($_SESSION["AccountId"]); return; } elseif ($GLOBALS['WEB_ACCESS_WITHOUT_SESSION'] and $this->getCheckIp()) { $this->check_users = ilSession::_getUsersWithIp($_SERVER['REMOTE_ADDR']); if (count($this->check_users) == 0) { // no user was found for the ip address $this->check_users = array(ANONYMOUS_USER_ID); $_SESSION["AccountId"] = ANONYMOUS_USER_ID; $ilUser->setId(ANONYMOUS_USER_ID); $ilUser->read(); } elseif (count($this->check_users) == 1) { // exactly one user is found with an active session $_SESSION["AccountId"] = current($this->check_users); $ilUser->setId(current($this->check_users)); $ilUser->read(); } else { // more than one user found for the ip address // take the anonymous user for the session $_SESSION["AccountId"] = ANONYMOUS_USER_ID; $ilUser->setId(ANONYMOUS_USER_ID); $ilUser->read(); } return; } else { $this->check_users = array(ANONYMOUS_USER_ID); $_SESSION["AccountId"] = ANONYMOUS_USER_ID; $ilUser->setId(ANONYMOUS_USER_ID); $ilUser->read(); return; } }