Index: ../modules/favorite_nodes/favorite_nodes.module =================================================================== --- ../modules/favorite_nodes/favorite_nodes.module (revision 20) +++ ../modules/favorite_nodes/favorite_nodes.module (working copy) @@ -3,6 +3,7 @@ define('FAVORITE_NODES_NODE_TYPE', 'favorite_nodes_node_type_'); define('FAVORITE_NODES_PERM_ADD', 'create favorite nodes'); +define('FAVORITE_NODES_PERM_ADD_OWN', 'create favorite on own nodes'); define('FAVORITE_NODES_PERM_VIEW', 'view favorite nodes'); define('FAVORITE_NODES_PERM_ADMINISTER', 'administer favorite nodes'); define('FAVORITE_NODES_BLOCK', 'favorite_nodes_block_type_'); @@ -25,7 +26,7 @@ } function favorite_nodes_perm() { - return array(FAVORITE_NODES_PERM_ADD, FAVORITE_NODES_PERM_VIEW, FAVORITE_NODES_PERM_ADMINISTER); + return array(FAVORITE_NODES_PERM_ADD_OWN, FAVORITE_NODES_PERM_ADD, FAVORITE_NODES_PERM_VIEW, FAVORITE_NODES_PERM_ADMINISTER); } /** @@ -266,7 +267,8 @@ $links = array(); if ($type == 'node' && !$teaser) { if (variable_get(FAVORITE_NODES_NODE_TYPE . $node->type, 0)) { - if (user_access(FAVORITE_NODES_PERM_ADD)) { + if (user_access(FAVORITE_NODES_PERM_ADD) AND + (!$user->uid OR $user->uid != $node->uid OR ($user->uid == $node->uid AND user_access(FAVORITE_NODES_PERM_ADD_OWN)))) { if (!_favorite_nodes_check($node->nid)) { $links[] = array('title' => t('add to favorites'), 'href' => 'favorite_nodes/add/'. $node->nid); }