Index: update_status.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/update_status/update_status.module,v
retrieving revision 1.91
diff -u -r1.91 update_status.module
--- update_status.module	30 Jan 2008 21:40:51 -0000	1.91
+++ update_status.module	11 Nov 2008 17:07:55 -0000
@@ -60,6 +60,9 @@
       include_once './includes/install.inc';
       $status = update_status_requirements('runtime');
       $types = array('update_status_core', 'update_status_contrib');
+      if (!user_access('view update status message')) {
+        return;
+      }
       foreach ($types as $type) {
         if (isset($status[$type]['severity'])) {
           if ($status[$type]['severity'] == REQUIREMENT_ERROR) {
@@ -97,12 +100,19 @@
 }
 
 /** 
+ * Implementation of hook_perm().
+ */
+function update_status_perm() {
+  return array('view available module updates', 'view update status messages', 'administer update status settings');
+}
+
+/** 
  * Implementation of hook_menu().
  */
 function update_status_menu($may_cache) {
   $items = array();
   if ($may_cache) {
-    $admin_access = user_access('administer site configuration');
+    $admin_access = user_access('view available module updates');
     $items[] = array(
       'path' => 'admin/logs/updates',
       'title' => t('Available updates'),
@@ -123,7 +133,7 @@
       'title' => t('Settings'),
       'callback' => 'drupal_get_form',
       'callback arguments' => array('update_status_settings'),
-      'access' => $admin_access,
+      'access' => $admin_access && user_access('administer update status settings'),
       'type' => MENU_LOCAL_TASK,
     );
     $items[] = array(
