--- contributions/modules/node_privacy_byrole/node_privacy_byrole.module	2005-12-17 12:14:19.000000000 +0800
+++ modules/node_privacy_byrole/node_privacy_byrole.module	2006-07-13 12:24:41.275014400 +0800
@@ -154,6 +154,13 @@ function node_privacy_byrole_node_grants
 }
 
 function node_privacy_byrole_form_alter($form_id, &$form) {
+  global $user;
+  
+  if (isset($form['type'])) {
+    $permitted_roles = _node_privacy_byrole_meta_permitted_roles($form['type']['#value']);
+    
+    $user_has_meta_perm = ($user->uid == 1 || count(array_intersect(_node_privacy_byrole_meta_permitted_roles($form['type']['#value']), array_keys(is_array($user->roles) ? $user->roles : array()))) ? TRUE : FALSE);
+  };
   if (isset($form['type']) && $form['type']['#value'] .'_node_settings' == $form_id) {
     $type = $form['type']['#value'];
     $roles_array = user_roles();
@@ -221,7 +228,9 @@ function node_privacy_byrole_form_alter(
     }
   }
   elseif (isset($form['type']) && $form['type']['#value'] .'_node_form' == $form_id) {
-    node_privacy_byrole_formitems($form);
+    if ($user_has_meta_perm) {
+      node_privacy_byrole_formitems($form);
+    }
   }
 }
 
