function ctools_export_ui::access

Menu callback to determine if an operation is accessible.

This function enforces a basic access check on the configured perm string, and then additional checks as needed.

Parameters

$op: The 'op' of the menu item, which is defined by 'allowed operations' and embedded into the arguments in the menu item.

$item: If an op that works on an item, then the item object, otherwise NULL.

Return value

TRUE if the current user has access, FALSE if not.

1 call to ctools_export_ui::access()
stylizer_ui::access in stylizer/plugins/export_ui/stylizer_ui.class.php
Menu callback to determine if an operation is accessible.
1 method overrides ctools_export_ui::access()
stylizer_ui::access in stylizer/plugins/export_ui/stylizer_ui.class.php
Menu callback to determine if an operation is accessible.

File

plugins/export_ui/ctools_export_ui.class.php, line 103

Class

ctools_export_ui
Base class for export UI.

Code

public function access($op, $item) {
    if (!user_access($this->plugin['access'])) {
        return FALSE;
    }
    // More fine-grained access control:
    if ($op == 'add' && !user_access($this->plugin['create access'])) {
        return FALSE;
    }
    // More fine-grained access control:
    if (($op == 'revert' || $op == 'delete') && !user_access($this->plugin['delete access'])) {
        return FALSE;
    }
    // If we need to do a token test, do it here.
    if (!empty($this->plugin['allowed operations'][$op]['token']) && (!isset($_GET['token']) || !drupal_valid_token($_GET['token'], $op))) {
        return FALSE;
    }
    switch ($op) {
        case 'import':
            return user_access('use ctools import');
        case 'revert':
            return $item->export_type & EXPORT_IN_DATABASE && $item->export_type & EXPORT_IN_CODE;
        case 'delete':
            return $item->export_type & EXPORT_IN_DATABASE && !($item->export_type & EXPORT_IN_CODE);
        case 'disable':
            return empty($item->disabled);
        case 'enable':
            return !empty($item->disabled);
        default:
            return TRUE;
    }
}