--- original/gallery_assist.module 2010-02-16 15:15:54.000000000 +0100 +++ patched/gallery_assist.module 2010-02-16 15:16:42.000000000 +0100 @@ -1529,6 +1529,9 @@ function gallery_assist_insert(&$node) { * Implementation of hook_update(). */ function gallery_assist_update($node) { + if (arg(2) == 'revisions' && (arg(4) == 'revert' || arg(4) == 'delete')) { + return; + } //if(!gallery_assist_invalidate_cache($node->nid, 'cache_gallery_assist_data', TRUE)) { // drupal_set_message('konnte cache nicht leeren für dieses Artikels', 'error'); //} @@ -1958,24 +1961,31 @@ function gallery_assist_save(&$node, $u */ function gallery_assist_delete(&$node) { global $user; - - $galleries = db_result(db_query("SELECT count(*) FROM {gallery_assist} WHERE ref = %d", $node->ref)); - - if ($galleries == 1 and count($node->gallitems) > 0) { - foreach ($node->gallitems as $pid => $item) { - db_query("DELETE FROM {files} WHERE fid = %d", $item->fid); - db_query("DELETE FROM {gallery_assist_item} WHERE pid = %d", $pid); - db_query("DELETE FROM {gallery_assist_translated} WHERE pid = %d", $pid); - gallery_assist_delete_items($item); - } - - gallery_assist_delete_directory(variable_get('gallery_assist_directory', file_directory_path() .'/gallery_assist') .'/'. $node->uid .'/'. $node->ganame); + if (arg(2) == 'revisions' && (arg(4) == 'revert' || arg(4) == 'delete')) { + return; } else { - db_query("DELETE FROM {gallery_assist_translated} WHERE gref = %d and lang = '%s'", $node->gref, $node->language); + if (user_access('delete own gallery_assist content', $user) || + user_access('delete any gallery_assist content', $user) || + user_access('delete own gallery_assist_'. $node->type .' content', $user) || + user_access('delete any gallery_assist_'. $node->type .' content', $user)) { + if ($galleries == 1 and count($node->gallitems) > 0) { + foreach ($node->gallitems as $pid => $item) { + db_query("DELETE FROM {files} WHERE fid = %d", $item->fid); + db_query("DELETE FROM {gallery_assist_item} WHERE pid = %d", $pid); + db_query("DELETE FROM {gallery_assist_translated} WHERE pid = %d", $pid); + gallery_assist_delete_items($item); + } + + gallery_assist_delete_directory(variable_get('gallery_assist_directory', file_directory_path() .'/gallery_assist') .'/'. $node->uid .'/'. $node->ganame); + } + else { + db_query("DELETE FROM {gallery_assist_translated} WHERE gref = %d and lang = '%s'", $node->gref, $node->language); + } + + db_query("DELETE FROM {gallery_assist} WHERE nid = %d", $node->nid); + } } - - db_query("DELETE FROM {gallery_assist} WHERE nid = %d", $node->nid); } /**