? convert_nodes_with_perms.diff
Index: node_convert.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/node_convert/node_convert.module,v
retrieving revision 1.1.2.4.2.3
diff -u -p -r1.1.2.4.2.3 node_convert.module
--- node_convert.module	8 Aug 2008 13:38:55 -0000	1.1.2.4.2.3
+++ node_convert.module	13 Apr 2009 20:16:01 -0000
@@ -45,7 +45,8 @@ function node_convert_menu() {
     'title' => 'Convert',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('node_convert_conversion_form', 1),
-    'access arguments' => array('administer content types'),
+		'access callback' => 'user_convert_node',
+    'access arguments' => array(1),
     'weight' => 6,
     'type' => MENU_LOCAL_TASK,
   );
@@ -610,4 +611,20 @@ function node_convert_node_convert_chang
       }
     }
   }
-}
\ No newline at end of file
+}
+
+function user_convert_node($node) {
+	$type = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
+	return user_access('convert '. $type .' content to something else');
+}
+
+/* Implementation of hook_perm */
+function node_convert_perm() {
+	foreach (node_get_types() as $type) {
+		if ($type->module == 'node') {
+			$name = check_plain($type->type);
+			$perms[] = 'convert '. $name .' content to something else';
+		}
+	}
+	return $perms;
+}
