Browse Source

Fix for issue #474

Stephen Ficklin 6 years ago
parent
commit
348eb35fd2
1 changed files with 18 additions and 2 deletions
  1. 18 2
      tripal/tripal.module

+ 18 - 2
tripal/tripal.module

@@ -348,7 +348,8 @@ function tripal_menu() {
   foreach ($importers as $class_name) {
     tripal_load_include_importer_class($class_name);
     if (class_exists($class_name)) {
-      $menu_path = 'admin/tripal/loaders/' . $class_name::$machine_name;
+      $machine_name = $class_name::$machine_name;
+      $menu_path = 'admin/tripal/loaders/' . $machine_name;
       if ($class_name::$menu_path) {
         $menu_path = $class_name::$menu_path;
       }
@@ -357,7 +358,7 @@ function tripal_menu() {
         'description' =>  $class_name::$description,
         'page callback' => 'drupal_get_form',
         'page arguments' => array('tripal_get_importer_form', $class_name),
-        'access arguments' => array('load tripal data'),
+        'access arguments' => array('use ' . $machine_name . ' importer'),
         'type' => MENU_NORMAL_ITEM,
         'file' => 'includes/tripal.importer.inc',
         'file path' => drupal_get_path('module', 'tripal'),
@@ -746,6 +747,21 @@ function tripal_permission() {
       'restrict access' => TRUE,
     );
   }
+  
+  // Add permissions for each Importer
+  $importers = tripal_get_importers();
+  foreach ($importers as $class_name) {
+    tripal_load_include_importer_class($class_name);
+    if (class_exists($class_name)) {
+      $machine_name = $class_name::$machine_name;
+      $name = $class_name::$name;
+      $permissions['use ' . $machine_name . ' importer'] = array(
+        'title' => t('Importer: Use the %label', array('%label' => $name)),
+        'description' => t('Allow the user to import data using the  %label', array('%label' => $name)),
+        'restrict access' => TRUE,
+      );
+    }
+  }
   return $permissions;
 }