--- book_manager/book_manager.module	2008-11-26 14:44:58.000000000 -0600
+++ ./book_manager.module	2008-12-18 00:23:58.000000000 -0600
@@ -28,7 +28,7 @@
 }
 
 /**
- * Implementatin of hook_link()
+ * Implementation of hook_link()
  */
 function book_manager_link($type, $node = NULL, $teaser = FALSE) {
   global $user;
@@ -49,6 +49,19 @@
 }
 
 /**
+ * Implementation of hook_link_alter().
+ */
+function book_manager_link_alter(&$links, $node) {
+  global $user;
+
+  // if this is a personal book the user is not the node owner, remove the add child link
+
+  if (isset($node->book) && ($node->book_manager & BOOK_MANAGER_IS_IN_PERSONAL) && ($node->uid != $user->uid)) {
+    unset($links['book_add_child']);
+  }
+}
+
+/**
  * Returns an array of all personal books for the specified user.
  *
  * This list may be used for generating a list of all the books, or for building
@@ -97,6 +110,7 @@
     'title' => 'Book Manager',
     'page callback' => 'book_manager_render',
     'page arguments' => array(NULL),
+    'access callback' => 'user_access',
     'access arguments' => array('access content'),
     'type' => MENU_SUGGESTED_ITEM
   );
@@ -105,6 +119,7 @@
     'title' => 'Book Manager',
     'page callback' => 'book_manager_render',
     'page arguments' => array(1),
+    'access callback' => 'user_access',
     'access arguments' => array('access content'),
     'type' => MENU_SUGGESTED_ITEM
   );
@@ -747,4 +762,4 @@
       return '<div class="help">'. $help .'</div>';
     }
   }
-}
\ No newline at end of file
+}
