Give Role Permission to 1 Admin Configuration area? Is there a simple way to give access to 1 panel of options within Administration Configuration? I made a custom module with settings under /admin/config/mymodule and it shows up as a block with links in the admin config area.

But I cant see how to easily say Role X can access that -- without giving global access admin configuration in Permissions, which lets them see everything there :(.

My example hook_menu is:

function predeparture_menu() {
  $items = array();
  $items['admin/config/eap-predeparture'] = array(
    'title' =&gt; 'Manage Site',
    'description' =&gt; 'upload the valid predeparture csv file from this page.',
    'position' =&gt; 'left',
    'weight' =&gt; -100,
    'page callback' =&gt; 'system_admin_menu_block_page',
    'access arguments' =&gt; array('administer site configuration'),
    'file' =&gt; 'system.admin.inc',
    'file path' =&gt; drupal_get_path('module', 'system'),
  );
  // Need at least one child item before your section will appear.
  $items['admin/config/eap-predeparture/list'] = array(
    'title' =&gt; 'Student Predeparture List',
    'description' =&gt; 'Upload, Revise or Rebuild the student perm list to administer access to the predeparture survey.',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('predeparture_csv_admin_form'),
    'access arguments' =&gt; array('administer site configuration'),
    'weight' =&gt; 10,
  );
  $items['admin/config/eap-predeparture/incomplete'] = array(
    'title' =&gt; 'Not Yet Completed Orientation Report',
    'description' =&gt; 'These students have not completed the Predeparture survey based on those in the CSV file.',
    'page callback' =&gt; 'predeparture_incomplete_listing',
    'access arguments' =&gt; array('administer site configuration'),
    'weight' =&gt; 20,
  );
  return $items;
}
you can write your own "access callback" function returning TRUE just if the current user have the role you choose. Something like this:

function predeparture_menu() {
  $items = array();
  $items['admin/config/eap-predeparture'] = array(
    'title' =&gt; 'Manage Site',
    'description' =&gt; 'upload the valid predeparture csv file from this page.',
    'position' =&gt; 'left',
    'weight' =&gt; -100,
    'page callback' =&gt; 'system_admin_menu_block_page',
    'access callback' =&gt; 'my_access_callback',
    'file' =&gt; 'system.admin.inc',
    'file path' =&gt; drupal_get_path('module', 'system'),
  );

function my_access_callback() {
  global $user;
  return in_array('the role', $user-&gt;roles);
}