Index: eventrepeat.module =================================================================== RCS file: /cvs/drupal/contributions/modules/eventrepeat/eventrepeat.module,v retrieving revision 1.29 diff -u -F^f -r1.29 eventrepeat.module --- eventrepeat.module 17 Apr 2006 15:26:00 -0000 1.29 +++ eventrepeat.module 19 May 2006 15:03:39 -0000 @@ -421,41 +421,44 @@ function eventrepeat_help($section) { * @return An array of menu items. Each menu item is an associative array. */ function eventrepeat_menu($may_cache) { - $items = array(); if ($may_cache) { - + //settings page, and user help page $items[] = array('path' => 'admin/settings/event/eventrepeat', 'title' => t('repeat'), 'callback' => '_eventrepeat_settings_page', 'access' => user_access('access administration pages')); $items[] = array('path' => 'repeat/help', 'title' => t('repeat help'), - 'callback' => '_eventrepeat_user_help','access' => user_access('create repeat events'), 'type' => MENU_CALLBACK); + 'callback' => '_eventrepeat_user_help','access' => user_access('create repeat events') || user_access('create own repeat events'), 'type' => MENU_CALLBACK); } + else { - //if it's a node edit or repeat page, check to make sure the node type is is event & eventrepeat enabled //if so, display the repeat tab + global $user; + if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(array('nid'=>arg(1))); + $access = user_access('create repeat events') || (user_access('create own repeat events') && $user->uid == $node->uid); + if (variable_get('event_nodeapi_'. $node->type, 'never') != 'never' && variable_get('eventrepeat_nodeapi_'. $node->type, 0)==1) { - - $items[] = array('path' => 'node/'. arg(1) .'/repeat', 'title' => t('repeat'), - 'callback' => '_eventrepeat_form', 'callback arguments' => array($node), - 'access' => user_access('create repeat events'), 'type' => MENU_LOCAL_TASK, 'weight' => 20); - } - } + $items[] = array('path' => 'node/'. arg(1) .'/repeat', 'title' => t('repeat'), + 'callback' => '_eventrepeat_form', 'callback arguments' => array($node), + 'access' => $access, 'type' => MENU_LOCAL_TASK, 'weight' => 20); + } + } } - return $items; } + /** * Implementation of hook_perm(). * @ingroup eventrepeat_core */ function eventrepeat_perm() { - return array('create repeat events'); + // 'create own repeat events': let users generate repeat patterns only for own event-enabled content + return array('create repeat events','create own repeat events'); } /**