Ver código fonte

Update permission checks

ccheng 13 anos atrás
pai
commit
9e1584f598

+ 1 - 35
tripal_analysis/tripal_analysis.module

@@ -301,25 +301,7 @@ function chado_analysis_update($node){
 			//Construct node title as "program (version)
 			//Construct node title as "program (version)
 			$record->title = "$node->program ($node->programversion)";
 			$record->title = "$node->program ($node->programversion)";
 		}
 		}
-		if ($node->files) {
-			$files = $node->files;
-			$type_id = tripal_get_cvterm_id('additional_files');
-			$sql = "SELECT * FROM {analysisprop} WHERE type_id = $type_id AND analysis_id = $analysis_id";
-			$result = db_result(chado_query($sql));
-			if (!$result) {
-				$sql = "INSERT INTO {analysisprop} (analysis_id, type_id, value, rank)
-	   				 VALUES ($analysis_id, $type_id, '$files', 0)";
-				chado_query($sql);
-			} else {
-				$sql = "UPDATE {analysisprop}
-								  SET rank = 0,
-								  value = '$node->files' 
-								  WHERE analysis_id = $analysis_id 
-								  AND type_id =$type_id";
-				chado_query($sql);
-			}
-		}
-		
+
 		if($node->setpermissions) {
 		if($node->setpermissions) {
 			$job_args[0] = $analysis_id;
 			$job_args[0] = $analysis_id;
 			$job_args[1] = $node->nid;
 			$job_args[1] = $node->nid;
@@ -387,10 +369,6 @@ function chado_analysis_form ($node){
    $description = $node->description;
    $description = $node->description;
    if(!$description){
    if(!$description){
       $description = $analysis->description;
       $description = $analysis->description;
-   }
-   $files = $node->files;
-   if(!$files){
-      $files = $analysis->files;
    }
    }
 	$form = array();
 	$form = array();
 	$form['title']= array(
 	$form['title']= array(
@@ -487,15 +465,6 @@ function chado_analysis_form ($node){
          someone to recreate the analysis, including materials and methods
          someone to recreate the analysis, including materials and methods
          for collection of the source data and performing the analysis'),
          for collection of the source data and performing the analysis'),
 	);
 	);
-	$form['files']= array(
-      '#type' => 'textarea',
-      '#rows' => 5,
-      '#title' => t('Additional Files for Download'),
-	  '#description' => t('Separate each file with a bar \'|\' and include a description for each file using semicolon. e.g. Description1; File1 | Description2; File2'),
-      '#required' => FALSE,
-      '#default_value' => check_plain($files),
-      '#weight' => 12
-	);
 	/* Set permissions for all features associated with this analysis */
 	/* Set permissions for all features associated with this analysis */
 	if (module_exists('node_privacy_byrole')) {
 	if (module_exists('node_privacy_byrole')) {
 		$form['setpermissions'] = array(
 		$form['setpermissions'] = array(
@@ -523,9 +492,6 @@ function chado_analysis_load($node){
    $values = array('analysis_id' => $analysis_id);
    $values = array('analysis_id' => $analysis_id);
    $analysis = tripal_core_generate_chado_var('analysis',$values);
    $analysis = tripal_core_generate_chado_var('analysis',$values);
 
 
-   $files = tripal_analysis_get_property($analysis_id,'additional_files');
-   $analysis->files = $files->value;
-      
    $additions->analysis = $analysis;
    $additions->analysis = $analysis;
    return $additions;
    return $additions;
 }
 }

+ 11 - 9
tripal_analysis_blast/tripal_analysis_blast.module

@@ -820,25 +820,27 @@ function tripal_analysis_blast_perm(){
  */
  */
 function chado_analysis_blast_access($op, $node, $account){
 function chado_analysis_blast_access($op, $node, $account){
 	if ($op == 'create') {
 	if ($op == 'create') {
-		return user_access('create chado_analysis_blast content', $account);
+		if(!user_access('create chado_analysis_blast content', $account)){
+			return FALSE;
+      }
 	}
 	}
 
 
 	if ($op == 'update') {
 	if ($op == 'update') {
-		if (user_access('edit chado_analysis_blast content', $account)) {
-			return TRUE;
+		if (!user_access('edit chado_analysis_blast content', $account)) {
+			return FALSE;
 		}
 		}
 	}
 	}
 	if ($op == 'delete') {
 	if ($op == 'delete') {
-		if (user_access('delete chado_analysis_blast content', $account)) {
-			return TRUE;
+		if (!user_access('delete chado_analysis_blast content', $account)) {
+			return FALSE;
 		}
 		}
 	}
 	}
 	if ($op == 'view') {
 	if ($op == 'view') {
-		if (user_access('access chado_analysis_blast content', $account) && tripal_check_permission_by_node_id($node->nid)) {
-			return TRUE;
-		}
+		if(!user_access('access chado_analysis_blast content', $account)){
+         return FALSE;
+      }
 	}
 	}
-	return FALSE;
+   return NULL;
 }
 }
 
 
 /**
 /**

+ 1 - 22
tripal_analysis_go/tripal_analysis_go.module

@@ -48,13 +48,6 @@ function tripal_analysis_go_menu() {
      'access arguments' => array('access administration pages'),
      'access arguments' => array('access administration pages'),
      'type' => MENU_NORMAL_ITEM,
      'type' => MENU_NORMAL_ITEM,
    );
    );
-   $items['node/%/goterms'] = array(
-     'title' => t('GO Analysis'),
-     'page callback' => 'tripal_analysis_go_organism_goterms',
-     'page arguments' => array(1,3),
-     'access arguments' =>  array('access chado_analysis_go content'),
-     'type' => MENU_CALLBACK
-   );
 
 
    return $items;
    return $items;
 }
 }
@@ -267,9 +260,7 @@ function tripal_analysis_go_select_form(&$form_state = NULL,$node){
    $analyses = array();
    $analyses = array();
    $analyses[''] = '';
    $analyses[''] = '';
    while($analysis = db_fetch_object($results)){
    while($analysis = db_fetch_object($results)){
-   	if (tripal_analysis_check_permission($analysis->analysis_id)) {
    		$analyses[$analysis->analysis_id."-".$analysis->organism_id] = "$analysis->name";
    		$analyses[$analysis->analysis_id."-".$analysis->organism_id] = "$analysis->name";
-   	}
    }
    }
   
   
    # create the select box
    # create the select box
@@ -388,7 +379,7 @@ function tripal_analysis_go_cv_chart($chart_id){
         )
         )
      ",
      ",
      type             => 'p',
      type             => 'p',
-     size             => '650x280',
+     size             => '550x175',
      title            => $title,
      title            => $title,
   );
   );
   return $options;
   return $options;
@@ -603,16 +594,4 @@ function tripal_analysis_go_job_describe_args($callback,$args){
 
 
    }
    }
    return $new_args;
    return $new_args;
-}
-
-/************************************************************************
-*/
-function tripal_analysis_go_organism_goterms($node, $ana_id_org_id = NULL) {
-	$content = "";
-	if ($ana_id_org_id) {
-		$content .= "<input type=\"hidden\" id=\"analysis_id_for_go_report\" value=\"$ana_id_org_id\">";
-	}
-   $node = node_load($node);
-   $content .= theme('tripal_organism_go_summary', $node);
-   return $content;
 }
 }

+ 20 - 18
tripal_analysis_interpro/tripal_analysis_interpro.module

@@ -635,26 +635,28 @@ function tripal_analysis_interpro_perm(){
  *  perform actions on data managed by this module
  *  perform actions on data managed by this module
  */
  */
 function chado_analysis_interpro_access($op, $node, $account){
 function chado_analysis_interpro_access($op, $node, $account){
-   if ($op == 'create') {
-      return user_access('create chado_analysis_interpro content', $account);
-   }
-
-   if ($op == 'update') {
-      if (user_access('edit chado_analysis_interpro content', $account)) {
-         return TRUE;
-      }
-   }
-   if ($op == 'delete') {
-      if (user_access('delete chado_analysis_interpro content', $account)) {
-         return TRUE;
+	if ($op == 'create') {
+		if(!user_access('create chado_analysis_interpro content', $account)){
+			return FALSE;
       }
       }
-   }
-   if ($op == 'view') {
-      if (user_access('access chado_analysis_interpro content', $account) && tripal_check_permission_by_node_id($node->nid)) {
-         return TRUE;
+	}
+
+	if ($op == 'update') {
+		if (!user_access('edit chado_analysis_interpro content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'delete') {
+		if (!user_access('delete chado_analysis_interpro content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'view') {
+		if(!user_access('access chado_analysis_interpro content', $account)){
+         return FALSE;
       }
       }
-   }
-   return FALSE;
+	}
+   return NULL;
 }
 }
 
 
 /**
 /**

+ 24 - 36
tripal_analysis_kegg/tripal_analysis_kegg.module

@@ -54,13 +54,6 @@ function tripal_analysis_kegg_menu() {
       'access arguments' => array('access chado_analysis_kegg content'),
       'access arguments' => array('access chado_analysis_kegg content'),
       'type' => MENU_CALLBACK
       'type' => MENU_CALLBACK
    );
    );
-   $items['node/%/kegg'] = array(
-     'title' => t('KEGG'),
-     'page callback' => 'tripal_analysis_kegg_organism_results',
-     'page arguments' => array(1,3),
-     'access arguments' => array('access chado_analysis_kegg content'),
-     'type' => MENU_CALLBACK
-   );
    return $items;
    return $items;
 }
 }
 /*******************************************************************************
 /*******************************************************************************
@@ -82,26 +75,28 @@ function tripal_analysis_kegg_perm(){
  *  perform actions on data managed by this module
  *  perform actions on data managed by this module
  */
  */
 function chado_analysis_kegg_access($op, $node, $account){
 function chado_analysis_kegg_access($op, $node, $account){
-   if ($op == 'create') {
-      return user_access('create chado_analysis_kegg content', $account);
-   }
-
-   if ($op == 'update') {
-      if (user_access('edit chado_analysis_kegg content', $account)) {
-         return TRUE;
-      }
-   }
-   if ($op == 'delete') {
-      if (user_access('delete chado_analysis_kegg content', $account)) {
-         return TRUE;
+	if ($op == 'create') {
+		if(!user_access('create chado_analysis_kegg content', $account)){
+			return FALSE;
       }
       }
-   }
-   if ($op == 'view') {
-      if (user_access('access chado_analysis_kegg content', $account) && tripal_check_permission_by_node_id($node->nid)) {
-         return TRUE;
+	}
+
+	if ($op == 'update') {
+		if (!user_access('edit chado_analysis_kegg content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'delete') {
+		if (!user_access('delete chado_analysis_kegg content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'view') {
+		if(!user_access('access chado_analysis_kegg content', $account)){
+         return FALSE;
       }
       }
-   }
-   return FALSE;
+	}
+   return NULL;
 }
 }
 
 
 /*******************************************************************************
 /*******************************************************************************
@@ -249,12 +244,12 @@ function chado_analysis_kegg_form ($node){
                           'results that cannot be linked to a feature will be '.
                           'results that cannot be linked to a feature will be '.
                           'discarded.'),
                           'discarded.'),
    );
    );
-   $form['kegg']['keggkeywordjob'] = array(
+/*   $form['kegg']['keggkeywordjob'] = array(
       '#type' => 'checkbox',
       '#type' => 'checkbox',
       '#title' => t('Submit a job to extract keywords from the KEGG html output'),
       '#title' => t('Submit a job to extract keywords from the KEGG html output'),
       '#description' => t('Note: KEGG results are only searchable after keywords are extracted.'),
       '#description' => t('Note: KEGG results are only searchable after keywords are extracted.'),
 	);
 	);
-
+*/
    return $form;
    return $form;
 }
 }
 /**
 /**
@@ -1108,14 +1103,9 @@ function tripal_analysis_kegg_get_settings() {
 }
 }
 /************************************************************************
 /************************************************************************
 */
 */
-function tripal_analysis_kegg_organism_results($node, $ana_id = NULL) {
-	$content = "";
-	if ($ana_id) {
-		$content .= "<input type=\"hidden\" id=\"analysis_id_for_kegg_report\" value=\"$ana_id\">";
-	}
+function tripal_analysis_kegg_organism_results($node) {
    $node = node_load($node);
    $node = node_load($node);
-   $content .= theme('tripal_organism_kegg_summary', $node);
-   return $content;
+   return tripal_analysis_kegg_organism_add($node);
 }
 }
 /************************************************************************
 /************************************************************************
 */
 */
@@ -1198,9 +1188,7 @@ function tripal_analysis_kegg_select_form(&$form_state = NULL,$node){
    $analyses = array();
    $analyses = array();
    $analyses[''] = '';
    $analyses[''] = '';
    while($analysis = db_fetch_object($results)){
    while($analysis = db_fetch_object($results)){
-   	if (tripal_analysis_check_permission($analysis->analysis_id)) {
    		$analyses[$analysis->analysis_id] = "$analysis->analysis_name";
    		$analyses[$analysis->analysis_id] = "$analysis->analysis_name";
-   	}
    }
    }
   
   
    global $base_url;
    global $base_url;

+ 21 - 23
tripal_analysis_unigene/tripal_analysis_unigene.module

@@ -40,26 +40,28 @@ function tripal_analysis_unigene_perm(){
  *  perform actions on data managed by this module
  *  perform actions on data managed by this module
  */
  */
 function chado_analysis_unigene_access($op, $node, $account){
 function chado_analysis_unigene_access($op, $node, $account){
-   if ($op == 'create') {
-      return user_access('create chado_analysis_unigene content', $account);
-   }
-
-   if ($op == 'update') {
-      if (user_access('edit chado_analysis_unigene content', $account)) {
-         return TRUE;
-      }
-   }
-   if ($op == 'delete') {
-      if (user_access('delete chado_analysis_unigene content', $account)) {
-         return TRUE;
+	if ($op == 'create') {
+		if(!user_access('create chado_analysis_unigene content', $account)){
+			return FALSE;
       }
       }
-   }
-   if ($op == 'view') {
-      if (user_access('access chado_analysis_unigene content', $account) && tripal_check_permission_by_node_id($node->nid)) {
-         return TRUE;
+	}
+
+	if ($op == 'update') {
+		if (!user_access('edit chado_analysis_unigene content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'delete') {
+		if (!user_access('delete chado_analysis_unigene content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'view') {
+		if(!user_access('access chado_analysis_unigene content', $account)){
+         return FALSE;
       }
       }
-   }
-   return FALSE;
+	}
+   return NULL;
 }
 }
 /**
 /**
 *
 *
@@ -827,11 +829,7 @@ function tripal_analysis_unigene_load_organism_unigenes($organism){
       $unigene->num_clusters = $num_clusters->value;
       $unigene->num_clusters = $num_clusters->value;
       $unigene->num_contigs = $num_contigs->value;     
       $unigene->num_contigs = $num_contigs->value;     
       $unigene->num_singlets = $num_singlets->value;
       $unigene->num_singlets = $num_singlets->value;
-      
-		// add in unigene number using the materialized view
-		$sql_u = "SELECT unigene_no FROM {unigene_basic_stats} WHERE analysis_id = %d";
-		$unigene->num_unigenes = db_result(chado_query($sql_u, $analysis_id));
-		
+
       $unigenes[$i++] = $unigene;
       $unigenes[$i++] = $unigene;
    }
    }
    return $unigenes;
    return $unigenes;

+ 0 - 28
tripal_core/privacy.php

@@ -1,28 +0,0 @@
-<?php
-/*
- *  Perform permission check by node_id only if 'node_privacy_byrole' module is enabled
- */
-function tripal_check_permission_by_node_id ($nid) {
-	if (module_exists('node_privacy_byrole')) {
-		global $user;
-		$roles = $user->roles;
-		$node_access = 0;
-		foreach ($roles AS $rid => $role) {
-			$p_sql = "SELECT grant_view FROM {node_access} WHERE nid=%d AND gid = %d";
-			$access = db_result(db_query($p_sql,$nid, $rid));
-			if ($access == 1) {
-				$node_access = 1;
-				break;
-			}
-		}
-		if ($node_access == 1 || $user->uid == 1) {
-			return TRUE;
-		} else {
-			return FALSE;
-		}
-	
-	// If 'node_privacy_byrole' module is not enabled, return TRUE;
-	} else {
-		return TRUE;
-	}
-}

+ 0 - 1
tripal_core/tripal_core.module

@@ -4,7 +4,6 @@ require_once "jobs.php";
 require_once "mviews.php";
 require_once "mviews.php";
 require_once "cvterms.php";
 require_once "cvterms.php";
 require_once "chado_install.php";
 require_once "chado_install.php";
-require_once "privacy.php";
 
 
 require_once "tripal_core.api.inc";
 require_once "tripal_core.api.inc";
 
 

+ 20 - 18
tripal_feature/tripal_feature.module

@@ -120,26 +120,28 @@ function tripal_feature_perm(){
  * @ingroup tripal_feature
  * @ingroup tripal_feature
  */
  */
 function chado_feature_access($op, $node, $account) {
 function chado_feature_access($op, $node, $account) {
-   if ($op == 'create') {
-      return user_access('create chado_feature content', $account);
-   }
-
-   if ($op == 'update') {
-      if (user_access('edit chado_feature content', $account)) {
-         return TRUE;
-      }
-   }
-   if ($op == 'delete') {
-      if (user_access('delete chado_feature content', $account)) {
-         return TRUE;
+	if ($op == 'create') {
+		if(!user_access('create chado_feature content', $account)){
+			return FALSE;
       }
       }
-   }
-   if ($op == 'view') {
-      if (user_access('access chado_feature content', $account) && tripal_check_permission_by_node_id($node->nid)) {
-         return TRUE;
+	}
+
+	if ($op == 'update') {
+		if (!user_access('edit chado_feature content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'delete') {
+		if (!user_access('delete chado_feature content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'view') {
+		if(!user_access('access chado_feature content', $account)){
+         return FALSE;
       }
       }
-   }
-   return FALSE;
+	}
+   return NULL;
 }
 }
 /**
 /**
  *  Menu items are automatically added for the new node types created
  *  Menu items are automatically added for the new node types created

+ 22 - 10
tripal_organism/tripal_organism.module

@@ -130,16 +130,28 @@ function tripal_organism_menu() {
  * @ingroup tripal_organism
  * @ingroup tripal_organism
  */
  */
 function chado_organism_access($op, $node, $account){
 function chado_organism_access($op, $node, $account){
-   switch ($op){
-      case 'create': 
-        return user_access('create chado_organism content', $account);
-      case 'update':
-        return user_access('edit chado_organism content', $account);
-      case 'delete':
-        return user_access('delete chado_organism content', $account);
-      case 'view' :
-        return (user_access('access chado_organism content', $account) && tripal_check_permission_by_node_id($node->nid));
-   }
+	if ($op == 'create') {
+		if(!user_access('create chado_organism content', $account)){
+			return FALSE;
+      }
+	}
+
+	if ($op == 'update') {
+		if (!user_access('edit chado_organism content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'delete') {
+		if (!user_access('delete chado_organism content', $account)) {
+			return FALSE;
+		}
+	}
+	if ($op == 'view') {
+		if(!user_access('access chado_organism content', $account)){
+         return FALSE;
+      }
+	}
+   return NULL;
 }
 }
 /**
 /**
 *  Set the permission types that the chado module uses.  Essentially we
 *  Set the permission types that the chado module uses.  Essentially we