Index: og.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/og/og.module,v
retrieving revision 1.93
diff -u -p -r1.93 og.module
--- og.module	3 Aug 2005 03:48:07 -0000	1.93
+++ og.module	12 Aug 2005 02:24:25 -0000
@@ -229,10 +229,33 @@ function og_manage($gid) {
   print theme('page', $output);
 }
 
-function og_approve($gid, $uid) {
-  if (node_access('update', array('nid' => $gid, 'status' => 1))) {
+/**
+ * Low level functions for managing subscriptions
+ *
+ * @author
+ * @param
+ * @return
+ * @exeption
+ * @see
+ */
+//TO DO: factor the code
+function og_create_subscription($gid, $uid){
+ if (node_access('update', array('nid' => $gid, 'status' => 1))) {
     $sql = "REPLACE INTO {node_access} (nid, gid, realm, grant_view) VALUES (%d, %d, 'og_uid', 1)";
     db_query($sql, $gid, $uid);
+ }
+}
+
+function og_delete_subscription($gid, $uid){
+  if (node_access('update', array('nid' => $gid, 'status' => 1))) {
+    $sql = "DELETE FROM {node_access} WHERE nid = %d AND gid = %d AND realm = 'og_uid'";
+    db_query($sql, $gid, $uid);
+  }
+}
+
+function og_approve($gid, $uid) {
+  if (node_access('update', array('nid' => $gid, 'status' => 1))) {
+    og_create_subscription($gid, $uid);
     drupal_set_message(t('Subscription request approved.'));
     $node = node_load($gid);
     $subj = t("Subscription request approved for '%title'", array('%title' => $node->title));
@@ -250,8 +273,7 @@ function og_approve($gid, $uid) {
 
 function og_deny($gid, $uid) {
   if (node_access('update', array('nid' => $gid, 'status' => 1))) {
-    $sql = "DELETE FROM {node_access} WHERE nid=%d AND gid=%d AND realm='og_uid'";
-    db_query($sql, $gid, $uid);
+    og_delete_subscription($gid, $uid);
     drupal_set_message(t('Subscription request denied.'));
     $subj = t('Subscription request denied for %title', array('title' => $node->title));
     $body = t('Sorry, your subscription request was denied.');
