7 common.inc drupal_access_denied()
4.6 common.inc drupal_access_denied()
4.7 common.inc drupal_access_denied()
5 common.inc drupal_access_denied()
6 common.inc drupal_access_denied()

Delivers an "access denied" error to the browser.

Page callback functions wanting to report an "access denied" message should return MENU_ACCESS_DENIED instead of calling drupal_access_denied(). However, functions that are invoked in contexts where that return value might not bubble up to menu_execute_active_handler() should call drupal_access_denied().

Related topics

7 calls to drupal_access_denied()
book_export_html in modules/book/book.pages.inc
Generates HTML for export when invoked by book_export().
contact_personal_form in modules/contact/contact.pages.inc
Form constructor for the personal contact form.
contact_site_form in modules/contact/contact.pages.inc
Form constructor for the site-wide contact form.
cron.php in ./cron.php
Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
file_download in includes/file.inc
Menu handler for private file transfers.

... See full list


includes/common.inc, line 739
Common functions that many Drupal modules will need to reference.


function drupal_access_denied() {


When calling this from THEME_preprocess_page it appears that it's necessary to add in:


Taken from this comment about the D6 version: http://api.drupal.org/comment/43643#comment-43643

Thank you, really useful!

For anyone else stumbling upon this, drupal_exit() is what you want here.

Thank you very much. I stucked in recursion using drupal_access_denied. Your solution solved problem.

For some reason when I'm trying to check some parameters and show an access denied from the hook_init() and then using exit; (or drupal_exit) I seem to be loosing some JS.

if (is_object($term) && ($term -> vid == $tag -> vid || $term -> vid == $type -> vid)) {
if (!user_is_logged_in()) {