Index: image.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/image/image.module,v
retrieving revision 1.184
diff -u -F^f -r1.184 image.module
--- image.module	23 Feb 2006 04:18:48 -0000	1.184
+++ image.module	15 Mar 2006 19:52:15 -0000
@@ -39,7 +39,7 @@
  * Implementation of hook_perm
  */
 function image_perm() {
-  return array('administer images', 'create images');
+  return array('administer images', 'create images', 'view original images');
 }
 
 /**
@@ -216,24 +224,14 @@
   }
 
   if ($type == 'node' && $node->type == 'image' && !$main) {
-    $sizes = array();
+    $request = ($_GET['size']) ? $_GET['size'] : 'preview';
     foreach (_image_get_sizes() as $size) {
-      if ($size['label'] && !in_array($size['label'], array('thumbnail', '_original'))) {
-
-        $sizes[] = $size;
+      if ($node->images[$request] != $node->images[$size['label']]) {
+        $links[] = l($size['label'], 'node/' . $node->nid, NULL, 'size=' . urlencode($size['label']));
       }
     }
-
-    if (count($sizes) > 1) {
-      $request = ($_GET['size']) ? $_GET['size'] : 'preview';
-      foreach ($sizes as $size) {
-        if ($request != $size['label']) {
-          $links[] = l($size['label'], 'node/'. $node->nid, NULL, 'size='. urlencode($size['label']));
-        }
-      }
-    }
-    if (variable_get('image_view_original', 0)) {
-      $links[] = l(t('view original'), 'node/'. $node->nid, NULL, 'size=_original');
+    if (user_access('view original images') && ($node->images[$request] != $node->images['_original'])) {
+      $links[] = l(t('original'), 'node/' . $node->nid, NULL, 'size=_original');
     }
   }

@@ -865,4 +867,4 @@
   return $vid;
 }
 
-?>
\ No newline at end of file
+?>
