? spaces.887272-6.patch
Index: spaces.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/spaces/spaces.module,v
retrieving revision 1.25.4.33.2.32.2.47
diff -u -p -r1.25.4.33.2.32.2.47 spaces.module
--- spaces.module	20 Aug 2010 15:45:21 -0000	1.25.4.33.2.32.2.47
+++ spaces.module	30 Nov 2010 16:57:33 -0000
@@ -977,3 +977,26 @@ function _spaces_json_decode($json) {
   eval($out . ';');
   return $x;
 }
+
+/**
+ * Implementation of hook_field_access().
+ */
+function spaces_field_access($op, $field, $account, $node = NULL) {
+  $map = features_get_component_map('content');
+  $key = $field['type_name'] . '-' . $field['field_name'];
+  $use_feature = NULL;
+  if (!empty($map[$key])) {
+    // More than one feature might declare the field. Find the first enabled one.
+    foreach($map['key'] as $feature) {
+      if (module_exists($feature)) {
+        $use_feature = $feature;
+        break;
+      }
+    }
+    // spaces_access_feature() knows to grant access to features that are not spaces-compatible.
+    if (isset($use_feature) && !spaces_access_feature('view', $use_feature)) {
+      return FALSE;
+    }
+  }
+  return TRUE;
+}
