You are here

function panels_ajax_tab_ctools_access in Panels Ajax Tabs 7

Determine if the current user has access via plugin.

2 calls to panels_ajax_tab_ctools_access()
panels_ajax_tab_container_render in plugins/content_types/panels_ajax_tab_container.inc
Rendering function for the 'panels_ajax_tab_container' content type.
panels_ajax_tab_tabs_render in plugins/content_types/panels_ajax_tab_tabs.inc
Rendering function for the 'panels_ajax_tab_tabs' content type.

File

./panels_ajax_tab.module, line 628
Allows users to create and manage Panels Ajax Tabs.

Code

function panels_ajax_tab_ctools_access($mini_panel, $visibility_settings, $contexts) {
  if (empty($contexts) || empty($visibility_settings)) {
    return TRUE;
  }
  $panels_ajax_tab_access =& drupal_static(__FUNCTION__);
  $cache_arg = array(
    $mini_panel,
    $visibility_settings,
    $contexts,
  );
  $cache_key = __FUNCTION__ . '_' . md5(serialize($cache_arg));
  if (!isset($panels_ajax_tab_access[$cache_key])) {
    $panels_ajax_tab_access[$cache_key] = TRUE;
    $contexts = !is_array($contexts) ? array(
      $contexts,
    ) : $contexts;
    $new_contexts = array();
    foreach ($contexts as $key => $context) {
      $new_contexts[$context->id] = $context;
    }
    if (isset($visibility_settings[$mini_panel])) {
      $visibility_setting = $visibility_settings[$mini_panel];
      if (!empty($visibility_setting['visibility_rule']) && $visibility_setting['visibility_rule'] != 'none') {
        $setting = array();
        $setting['name'] = $visibility_setting['visibility_rule'];
        $setting['settings'] = $visibility_setting['visibility_settings'];
        $setting['not'] = $visibility_setting['visibility_settings']['not'];
        $setting['context'] = $context->id;
        $settings['plugins'] = array(
          $setting,
        );
        ctools_include('context');
        $panels_ajax_tab_access[$cache_key] = ctools_access($settings, $new_contexts);
      }
    }
  }
  return $panels_ajax_tab_access[$cache_key];
}