Index: term_permissions.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/term_permissions/term_permissions.module,v
retrieving revision 1.9
diff -u -p -r1.9 term_permissions.module
--- term_permissions.module	2 Dec 2009 21:01:07 -0000	1.9
+++ term_permissions.module	17 Nov 2010 04:06:28 -0000
@@ -216,6 +216,28 @@ function term_permissions_allowed($tid, 
   if (db_result(db_query("SELECT uid FROM {term_permissions_user} WHERE tid = %d AND uid = %d", $tid, $user->uid)) || db_result(db_query("SELECT rid FROM {term_permissions_role} WHERE tid = %d AND rid IN (" . implode(', ', array_keys($user->roles)) . ")", $tid))) {
     return TRUE;
   }
+  // Inherit permissions from tac_lite
+  if (module_exists('tac_lite')) {
+    static $user_tids;
+    $vids = variable_get('tac_lite_categories', NULL);
+    $schemes = variable_get('tac_lite_schemes', 1);
+    if ($vids && count($vids) && $schemes) {
+      // Loop through the schemes looking for grant_update permissions.
+      for ($i = 1; $i <= $schemes; $i++) {
+        $config = _tac_lite_config($i);
+        if ($config['perms']['grant_update']) {
+          // Cache user term permissions for this scheme as this will be called for every term in the vocabulary.
+          if (!isset($user_tids[$user->uid][$i])) {
+            $user_tids[$user->uid][$i] = _tac_lite_user_tids($user, $i);
+          }
+          // Allow users with grant_update permission to post to this term.
+          if (in_array($tid, $user_tids[$user->uid][$i])) {
+            return TRUE;
+          }
+        }
+      }
+    }
+  }
   return FALSE;
 }
 
