? settings.php
Index: versioncontrol.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/versioncontrol/versioncontrol.info,v
retrieving revision 1.1
diff -u -p -r1.1 versioncontrol.info
--- versioncontrol.info	2 Jul 2007 16:09:09 -0000	1.1
+++ versioncontrol.info	5 Jun 2008 17:06:52 -0000
@@ -2,3 +2,5 @@
 name = "Version Control API"
 description = "An interface to version control systems whose functionality is provided by pluggable back-end modules."
 package = Version Control
+core = 6.x
+php = 5
Index: versioncontrol.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/versioncontrol/versioncontrol.module,v
retrieving revision 1.95
diff -u -p -r1.95 versioncontrol.module
--- versioncontrol.module	19 Apr 2008 13:11:05 -0000	1.95
+++ versioncontrol.module	5 Jun 2008 17:06:54 -0000
@@ -108,152 +108,176 @@ function versioncontrol_user($type, &$ed
 /**
  * Implementation of hook_menu().
  */
-function versioncontrol_menu($may_cache) {
+function versioncontrol_menu() {
   global $user;
   $items = array();
-  $admin_access = user_access('administer version control systems');
-  $user_access = user_access('use version control systems') || $admin_access;
+  $user_access = user_access('use version control systems') || user_access('administer version control systems');
 
-  if ($may_cache) {
-    // If Version Control API is used without the Project module,
-    // we need to define our own version of /admin/project
-    // so the rest of our admin pages all work.
-    if (!module_exists('project')) {
-      $items[] = array(
-        'path' => 'admin/project',
-        'title' => t('Project administration'),
-        'description' => t('Administrative interface for project management and related modules.'),
-        'callback' => 'system_admin_menu_block_page',
-        'access' => $admin_access,
-        'type' => MENU_NORMAL_ITEM,
-      );
-    }
-
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-settings',
-      'title' => t('Version control settings'),
-      'description' => t('Configure settings for Version Control API and related modules.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('versioncontrol_admin_settings'),
-      'access' => $admin_access,
+  // If Version Control API is used without the Project module,
+  // we need to define our own version of /admin/project
+  // so the rest of our admin pages all work.
+  if (!module_exists('project')) {
+    $items['admin/project'] = array(
+      'title' => 'Project administration',
+      'description' => 'Administrative interface for project management and related modules.',
+      'page callback' => 'system_admin_menu_block_page',
+      'access arguments' => array('administer version control systems'),
       'type' => MENU_NORMAL_ITEM,
     );
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-settings/general',
-      'title' => t('General'),
-      'type' => MENU_DEFAULT_LOCAL_TASK,
-      'weight' => -1,
-    );
+  }
 
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-repositories',
-      'title' => t('VCS repositories'),
-      'description' => t('Define and configure what version control repositories are connected to your site, and how to integrate each repository with repository browser tools such as ViewVC or WebSVN.'),
-      'callback' => 'drupal_get_form',
-      'callback arguments' => array('versioncontrol_admin_repository_list'),
-      'access' => $admin_access,
-      'type' => MENU_NORMAL_ITEM,
-    );
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-repositories/list',
-      'title' => t('List'),
-      'type' => MENU_DEFAULT_LOCAL_TASK,
-    );
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-accounts',
-      'title' => t('VCS accounts'),
-      'description' => t('Manage associations of Drupal users to VCS user accounts.'),
-      'callback' => 'versioncontrol_admin_account_list_page',
-      'access' => $admin_access,
-      'type' => MENU_NORMAL_ITEM,
-    );
-    $items[] = array(
-      'path' => 'admin/project/versioncontrol-accounts/list',
-      'title' => t('List'),
-      'type' => MENU_DEFAULT_LOCAL_TASK,
-      'weight' => 0,
-    );
+  $items['admin/project/versioncontrol-settings'] = array(
+    'title' => 'Version control settings',
+    'description' => 'Configure settings for Version Control API and related modules.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('versioncontrol_admin_settings'),
+    'access arguments' => array('administer version control systems'),
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/project/versioncontrol-settings/general'] = array(
+    'title' => 'General',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -1,
+  );
 
-    $items[] = array(
-      'path' => 'versioncontrol/register', // [."/$uid" [."/$repo_id"]]
-      'title' => t('Get commit access'),
-      'callback' => 'versioncontrol_account_register_page',
-      'access' => TRUE, // access checking is done in the callback
-      'type' => MENU_SUGGESTED_ITEM,
-    );
-    // autocomplete callback for Drupal usernames that have access to
-    // the repository given in arg(3).
-    $items[] = array(
-      'path' => 'versioncontrol/user/autocomplete', // ."/$repo_id/$string"
-      'title' => t('Version control user autocomplete'),
-      'callback' => 'versioncontrol_user_autocomplete',
-      'access' => $user_access,
-      'type' => MENU_CALLBACK,
-    );
-  }
-  else {
+  $items['admin/project/versioncontrol-repositories'] = array(
+    'title' => 'VCS repositories',
+    'description' => 'Define and configure what version control repositories are connected to your site, and how to integrate each repository with repository browser tools such as ViewVC or WebSVN.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('versioncontrol_admin_repository_list'),
+    'access arguments' => array('administer version control systems'),
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/project/versioncontrol-repositories/list'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+  );
+  $items['admin/project/versioncontrol-accounts'] = array(
+    'title' => 'VCS accounts',
+    'description' => 'Manage associations of Drupal users to VCS user accounts.',
+    'page callback' => 'versioncontrol_admin_account_list_page',
+    'access arguments' => array('administer version control systems'),
+    'type' => MENU_NORMAL_ITEM,
+  );
+  $items['admin/project/versioncontrol-accounts/list'] = array(
+    'title' => 'List',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 0,
+  );
+
+  $items['versioncontrol/register'] = array(
+    'title' => 'Get commit access',
+    'page callback' => 'versioncontrol_account_register_page',
+    'access arguments' => TRUE, // access checking is done in the callback
+    'type' => MENU_SUGGESTED_ITEM,
+  );
+
+  /* TODO 
+  $items['versioncontrol/register/%'] = array(
+    // [."/$uid" [."/$repo_id"]]
+    'title' => 'Get commit access',
+    'page callback' => 'versioncontrol_account_register_page',
+    'access arguments' => TRUE, // access checking is done in the callback
+    'type' => MENU_SUGGESTED_ITEM,
+  );*/
+
+  /* TODO 
+  $items['versioncontrol/register/%/%'] = array(
+    // [."/$uid" [."/$repo_id"]]
+    'title' => 'Get commit access',
+    'page callback' => 'versioncontrol_account_register_page',
+    'access arguments' => TRUE, // access checking is done in the callback
+    'type' => MENU_SUGGESTED_ITEM,
+  );*/
+
+  // autocomplete callback for Drupal usernames that have access to
+  // the repository given in arg(3).
+  $items['versioncontrol/user/autocomplete'] = array(
+    'title' => 'Version control user autocomplete',
+    'page callback' => 'versioncontrol_user_autocomplete',
+    'access arguments' => $user_access,
+    'type' => MENU_CALLBACK,
+  );
+
+  /* TODO
+  $items[] = array(
+    'path' => 'versioncontrol/user/autocomplete', // ."/$repo_id/$string"
+    'title' => 'Version control user autocomplete',
+    'page callback' => 'versioncontrol_user_autocomplete',
+    'access arguments' => $user_access,
+    'type' => MENU_CALLBACK,
+  );*/
+
+  $items['user/%/edit/versioncontrol/%'] = array(
+    'title' => check_plain($repositories[$repo_id]['name']),
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('versioncontrol_account_edit_form', 1, 4),
+    'access arguments' => $account_access,
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 99,
+  );
+
+
+  //Problems start here...
+  //else {
     // Backend specific stuff is done in !$may_cache, as it once screwed up
     // after activating a new backend in admin/build/modules.
     $backends = versioncontrol_get_backends();
     $i = 2; // weight of the local task, 'List' is 1.
     foreach ($backends as $vcs => $backend) {
-      $items[] = array(
-        'path' => 'admin/project/versioncontrol-repositories/add-'. $vcs,
-        'title' => t('Add @vcs repository', array('@vcs' => $backend['name'])),
-        'callback' => 'drupal_get_form',
-        'callback arguments' => array('versioncontrol_admin_repository_edit', 0, $vcs),
-        'access' => $admin_access,
+      // TODO
+      $items['admin/project/versioncontrol-repositories/add-'. $vcs] = array(
+        'title' => 'Add @vcs repository', array('@vcs' => $backend['name']),
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('versioncontrol_admin_repository_edit', 0, $vcs),
+        'access arguments' => array('administer version control systems'),
         'type' => MENU_LOCAL_TASK,
         'weight' => $i,
       );
       ++$i;
 
       if (versioncontrol_backend_implements($vcs, 'import_accounts')) {
-        $items[] = array(
-          'path' => 'admin/project/versioncontrol-accounts/import',
-          'title' => t('Import'),
-          'description' => t('Import an existing set of VCS user accounts.'),
-          'callback' => 'drupal_get_form',
-          'callback arguments' => array('versioncontrol_admin_account_import_form'),
-          'access' => $admin_access,
+        $items['admin/project/versioncontrol-accounts/import'] = array(
+          'title' => 'Import',
+          'description' => 'Import an existing set of VCS user accounts.',
+          'page callback' => 'drupal_get_form',
+          'page arguments' => array('versioncontrol_admin_account_import_form'),
+          'access arguments' => array('administer version control systems'),
           'type' => MENU_LOCAL_TASK,
           'weight' => 2,
         );
       }
       if (versioncontrol_backend_implements($vcs, 'export_accounts')) {
-        $items[] = array(
-          'path' => 'admin/project/versioncontrol-accounts/export',
-          'title' => t('Export'),
-          'description' => t('Export VCS user accounts of a specific repository.'),
-          'callback' => 'versioncontrol_admin_account_export_page',
-          'access' => $admin_access,
+        $items['admin/project/versioncontrol-accounts/export'] = array(
+          'title' => 'Export',
+          'description' => 'Export VCS user accounts of a specific repository.',
+          'page callback' => 'versioncontrol_admin_account_export_page',
+          'access arguments' => array('administer version control systems'),
           'type' => MENU_LOCAL_TASK,
           'weight' => 3,
         );
       }
     }
     if (is_numeric(arg(4))) {
-      $items[] = array(
-        'path' => 'admin/project/versioncontrol-repositories/edit/'. arg(4),
-        'title' => t('Edit repository'),
-        'callback' => 'drupal_get_form',
-        'callback arguments' => array('versioncontrol_admin_repository_edit', arg(4)),
-        'access' => $admin_access,
+      $items['admin/project/versioncontrol-repositories/edit/%'] = array(
+        'title' => 'Edit repository',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('versioncontrol_admin_repository_edit', 4),
+        'access arguments' => array('administer version control systems'),
         'type' => MENU_CALLBACK,
       );
-      $items[] = array(
-        'path' => 'admin/project/versioncontrol-repositories/delete/'. arg(4),
-        'title' => t('Delete repository'),
-        'callback' => 'drupal_get_form',
-        'callback arguments' => array('versioncontrol_admin_repository_delete_confirm', arg(4)),
-        'access' => $admin_access,
+      $items['admin/project/versioncontrol-repositories/delete/%'] = array(
+        'title' => 'Delete repository',
+        'page callback' => 'drupal_get_form',
+        'page arguments' => array('versioncontrol_admin_repository_delete_confirm', 4),
+        'access arguments' => array('administer version control systems'),
         'type' => MENU_CALLBACK,
       );
     }
-    if (arg(0) == 'user' && is_numeric(arg(1)) && arg(2) == 'edit') {
+    /*if (arg(0) == 'user' && is_numeric(arg(1)) && arg(2) == 'edit') {
       $items = array_merge($items, _versioncontrol_user_account_edit_items($user));
-    }
-  }
+    }*/
+  //}
   return $items;
 }
 
@@ -268,8 +292,8 @@ function _versioncontrol_user_account_ed
   static $categories;
 
   $admin_access = user_access('administer version control systems');
-  $user_access = user_access('use version control systems') || $admin_access;
-  $account_access = ($user_access && $uid == $user->uid) || $admin_access;
+  $user_access = user_access('use version control systems') || array('administer version control systems');
+  $account_access = ($user_access && $uid == $user->uid) || array('administer version control systems');
 
   // Cache the items, we don't want this being done twice.
   if (isset($items)) {
@@ -301,18 +325,7 @@ function _versioncontrol_user_account_ed
   foreach ($accounts as $uid => $usernames_by_repository) {
     foreach ($usernames_by_repository as $repo_id => $username) {
       if (isset($repositories[$repo_id])) {
-        $items[] = array(
-          'path' => 'user/'. $uid .'/edit/versioncontrol/'. $repo_id,
-          'title' => check_plain($repositories[$repo_id]['name']),
-          'callback' => 'drupal_get_form',
-          'callback arguments' => array(
-            'versioncontrol_account_edit_form',
-            $uid, $username, $repositories[$repo_id]
-          ),
-          'access' => $account_access,
-          'type' => MENU_LOCAL_TASK,
-          'weight' => 99,
-        );
+        
         $categories[] = array(
           'name' => 'versioncontrol/'. $repo_id,
           'title' => check_plain($repositories[$repo_id]['name']),
