$USER->lastIP is sometimes not set properly during login, fetch it if we can
or error out clearly -- we won't be able to login the user to the chat if
we don't have an IP address to match him/her against.
$chatuser->lastping = time();
$chatuser->lang = current_language();
+ // Sometimes $USER->lastIP is not setup properly
+ // during login. Update with current value if possible
+ // or error out clearly.
+ if (empty($chatuser->ip)) {
+ $chatuser->ip = getremoteaddr();
+ if (empty($chatuser->ip)) {
+ error("Cannot determine the IP address of the user!");
+ }
+ }
+
if (($chatuser->course != $course->id)
or ($chatuser->userid != $USER->id)) {
return false;