Is it possible to add permissions to a Ctools content type plugin? Is it possible to add permissions to a Ctools content type plugin, similar to a node entity?  I want to be able to check if a user has permission to add a certain content pane to a panels page through the IPE.
It should be possible using a ctools access plugin.  From the linked site:


  Firstly, just like during work with Сtools content type, for the web developer it is necessary to call hook_ctools_plugin_directory() to indicate that we have ctools plugins of specific type in our module:


/*
 * Implements hook_ctools_plugin_directory().
 */
function access_example_ctools_plugin_directory($owner, $plugin_type) {
  if ($owner == 'ctools' &amp;&amp; !empty($plugin_type)) {
   return "plugins/{$plugin_type}";
  }
}



  Then in module folder we need to create "plugins" folder and "access" folder inside of “plugins” folder. Create plugin file with the name "access_example_plugin.inc" inside of "access" folder. Write the access rule by array in this file:


/**
 * Plugins are described by creating a $plugin array which will be used
 * by the system that includes this file.
 */
$plugin = array(
  // Plugin user-friendly name.
  'title' =&gt; t('Eldership rule'),
  // Plugin description.
  'description' =&gt; t('Controls access depends on eldership'),
  // Without required context plugin will now be shown in Panels UI.
  'required context' =&gt; array(new ctools_context_required(t('User'), 'user')),
  // Function which will allow or restrict access.
  'callback' =&gt; 'access_example_who_elder_access',
  // Plugin settings form.
  'settings form' =&gt; 'access_example_who_elder_access_settings_form',
  // Provides a summary descriptions depends on settings selected.
  'summary' =&gt; 'access_example_who_elder_access_summary',
);


It goes on to explain how to create the various callbacks but that's beyond the scope of this question I think.