Index: premium.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/premium/premium.module,v
retrieving revision 1.10
diff -u -p -r1.10 premium.module
--- premium.module	19 Jul 2008 15:27:30 -0000	1.10
+++ premium.module	19 Jul 2008 15:51:26 -0000
@@ -55,32 +55,32 @@ function premium_nodeapi(&$node, $op, $t
       return;
       
     case 'load':
-      $ts = time();
-      return array('premium' => (int) db_result(db_query(
-          "SELECT 1 FROM {premium}  WHERE nid = %d
-          AND ( start_ts = 0 and end_ts > %d)
-          OR ( start_ts < %d AND end_ts = 0)
-          OR ( start_ts = 0 AND end_ts = 0)", $node->nid, $ts, $ts)));
-      
-    case 'view':
-      $node->premium_access = true;
-
       global $user;
+      $node->premium_access = false;
       if (!$node->premium || user_access('access premium content')) {
-        return;                  // not premium content or user has privileges
+        $node->premium_access = true;
       }
-      if ($teaser) {
-        return;                  // not viewing the body
+      if ($teaser) {        $node->premium_access = true;
       }
       foreach (module_implements('premium_access') as $name) {
-        $function = $name .'_premium_access';
+        $function = $name.'_premium_access';
         if ($function($user, $node)) {
-          return;                // access granted explicitly
+          $node->premium_access = true;
         }
       }
-  
-      $node->premium_access = false;
-      $node->content['body']['#value'] = theme('premium_body', $node);
+
+      $ts = time();
+      return array('premium_access' => $node->premium_access,
+                   'premium' => (int) db_result(db_query(
+                     "SELECT 1 FROM {premium}  WHERE nid = %d
+                      AND ( start_ts = 0 and end_ts > %d)
+                      OR ( start_ts < %d AND end_ts = 0)
+                      OR ( start_ts = 0 AND end_ts = 0)", 
+                      $node->nid, $ts, $ts)));
+    case 'view':
+      if(!$node->premium_access) {
+        $node->content['body']['#value'] = theme('premium_body', $node);
+      }
   }
   return;
 } 
