To address this, first check the following:
1. Component in the menu
2. Access to component in the permission list
3. permission list in the role
4. the role assigned to the user profile
5. clear browser cache, close the browser, reopen browser
6. clear and reboot app server cache
If all pass, then check this
7. non-existing permission list assigned to the role.
The only way that non-existing permission list in the role is by doing a project migration from database to database. You may think the permission list in the project, but apparently not.
I do not add roles, permission lists, menu in my
project. Unless you are the sole developer for the system, I would
encourage to stay away from it.
Code Tip:
Here is a SQL to check if there is non-existed permission list which is still attached to role:
Select R.rolename , RC.classidFrom psroleuser R , psroleclass RCWhere RC.Rolename = R.Rolename And not exists (Select 'X' from psclassdefn C Where C.classid = RC.classid) And R.roleuser = '[--OPRID--]'