Usually we write about a recurring Joomla problem immediately – but for some reason we didn’t write about this error before, although we have seen it so many times before. But this afternoon, we got a call from a system administrator at a Fortune 500 company (a well known company making computer processors) saying that she’s not able to login as an administrator to Joomla. So, VPN’d to her machine and then to the Joomla website (the Joomla website was internal for the company), and we tried to login, and true enough, we saw this error: “You do not have access to the administrator section of this site”. Those who are inexperienced with Joomla will do one of the following when they see this error:
- Check if the user is blocked in Joomla.
-
Reset the Joomla password of the user.
Both methods above are irrelevant in this scenario because this error happens after checking if the password is OK and after checking if the user is blocked. In other words, a wrong password or a blocked user will break the login process earlier and will result in a different error.
Here are the steps that we, at itoctopus, follow in order to solve the problem:
- Step 1: Check if the user is really an administrator: In many cases, this error happens when the person is trying to login with a user who’s not an administrator (usually this happens when the person has two users on the website, and he’s logging in with the wrong user) or who’s no longer an administrator (someone might have revoked administrative access for that user). Checking if the user is an administrator is easy – all you need to do is to check if the id of the user is assigned to the right group in the table jos_user_usergroup_map (replace jos with your table prefix). If all is OK (the user is assigned to the right group) then we move to the next step… (If not then we fix the problem)
-
Step 2: Check if the ACL tables are not corrupt: This is where it gets tricky since Joomla’s ACL tables are not that easy to understand. However, if the login problem is because of ACL corruption, then in 99% of the cases the error lies somewhere in the jos_viewlevels and/or the jos_usergroups tables. We suggest that you look at a clean Joomla database and compare the two tables of that database with those in your website’s database. If the ACL tables are corrupt, then we manually fix them (fixing these tables should only be done by an expert) – if not, then (you’ve guessed it!) we move to the next step.
-
Step 3: Check the jos_assets table: If all else fails, then (sadly) the problem almost certainly lies in the jos_assets table (which is, by far, the scariest table in Joomla – because a simple mistake in that table can cause a total collapse of the website). The two most common causes in the jos_assets table that might lead to this problem are:
- Missing entry for the com_admin row. (By the way, that was the reason why the system administrator at that chip maker company wasn’t able to login to the website)
-
Wrong rules field for the com_admin row. The rules field for that row should just contain “{}”. (two curly brackets)
If you are seeing the “You do not have access to the administrator section of this site” error when you try to login to the backend of your Joomla website, and if you are positive that you have administrative access to the website – then unless you’re a very technical person, we suggest that you contact some Joomla experts to fix the problem for you! Step 2 and Step 3 above are rather complicated and delicate and if done incorrectly then they may break the whole website – and not just login functionality. By the way, we are the Joomla experts, so feel free to contact us and we promise you that we’ll solve your login problem in no time and that we won’t charge you much!
You can fix this issue if you DELETE the jos_session field. I was trying changing admin password, creating a new super admin user, but nothing worked. At the end I decided to delete this field and it worked! Hope this helps!
Yes it is the session problem. I deleted the session rows and it is working now.
I too rebuilt the user into the tables and remapped it to the Super User group.
Deleting the rows contained in jos_session cleared it up for me after attempting to fix user access to the backend.
Thanks for saving me time from rebuilding the assets tables too!