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 is cleared. $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.