One solution, that I have verified as working, is to check the .htaccess file in the root Drupal folder.
As administrator, I would log in to the site, navigate to CiviCRM and find areas, such as price sets, profiles, even dashlets on the dashboard, were all coming up "access denied".
It would occur after a major Drupal update. What was happening, was I was navigating into (example) http://www.drupal.com, while the server was set up to http://drupal.com.
I could log in fine. But I would get the access denied issues. The reason is the Drupal update had overwritten my .htaccess file.
So, for whatever set up you have, ensure that your .htaccess corresponds.
From the .htaccess file, located in your root Drupal folder (use your server control panel, or an ftp client to see the file):
# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# uncomment the following:
# RewriteCond %{HTTP_HOST} .
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment the following:
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
Originally, the last two lines of the above .htaccess file were # out.
- I removed the #.
- Refreshed my browser.
- Re-logged in.
Result: all the "access denied" errors are gone.
You will have to select the correct option for your server settings.
Hope it helps!
admin/people/permissions
everything is checked under the 'civicrm' tabs for the admin user.