Last modified: 2010-05-15 15:48:29 UTC
In the first call of isAllowed(), the user object is loaded with the
loadDefaults() method, but the mGroups field remains empty.
The problem is in the code below. The mGroups field is loaded by the setToken() method but afterwards it
$this->setToken(); # Random
$this->mEmailAuthenticated = null;
$this->mEmailToken = '';
$this->mEmailTokenExpires = null;
$this->mRegistration = wfTimestamp( TS_MW );
$this->mGroups = array();
First call of what?
Nothing should be getting set by that setToken() call except for $this->mToken;
$this->mDataLoaded will have already been set before the call to loadDefaults(),
so the $this->load() call in setToken() won't change anything.
Can you give an example of how the described behavior is triggered?
I could not reproduce again with the original User.php. An extension I have
used (canAccessNamespace() extension) should have caused the problem.
I am invalidating the bug.