joomla/joomla-cms — pull request #3248 by chivitli (2014-03-06 19:35:03+00:00)
Title: Impossible to load user by username when not logged in

I wanted to load user by username, like in Example 2 at http://docs.joomla.org/JFactory/getUser.

But, due to a bug in JFactory::getUser() that is not possible.

If we pass a username, we reach this condition:

elseif ($instance->id != $id)
{
$instance = JUser::getInstance($id);
}

But $instance->id will be 0 if person viewing the site is not logged in, and because $id is string and loose comparison is used, string will evaluate to 0 as well, condition won't be satisfied, and empty user object will be returned.

The fix is simple, just making it a strict comparison instead of loose.

To test, make sure nothing broke on the user pages or anywhere where you load User object