diff -u project.module project.module --- project.module 12 Aug 2010 18:49:03 -0000 +++ project.module 13 Aug 2010 06:04:02 -0000 @@ -820,7 +820,7 @@ // Make sure we actually updated a record for this maintainer. if (!db_affected_rows()) { // Didn't update anything, add this as a new maintainer, instead. - project_release_project_maintainer_add($nid, $uid, $permissions); + project_maintainer_add($nid, $uid, $permissions); } else { // Invoke hook_project_maintainer_update() to let other modules know this diff -u includes/project_maintainers.inc includes/project_maintainers.inc --- includes/project_maintainers.inc 12 Aug 2010 19:01:38 -0000 +++ includes/project_maintainers.inc 13 Aug 2010 05:46:33 -0000 @@ -55,8 +55,8 @@ $form['new_maintainer'] = array(); $form['new_maintainer']['user'] = array( '#type' => 'textfield', - '#size' => 30, - '#maxlength' => 60, + '#size' => 20, + '#maxlength' => 40, '#autocomplete_path' => 'user/autocomplete', ); // we'll fill this in with a real value during validate() @@ -106,7 +106,10 @@ $row[] = ''; // Empty cell for the 'Operations' column on new maintainers. $rows[] = $row; - $output .= theme('table', $header, $rows); + // Although using named keys in the $header array makes this form easier to + // alter, theme_table() freaks out if the $header array has non-numeric + // keys. So we ditch the keys at this point to avoid notices. + $output .= theme('table', array_values($header), $rows); $output .= drupal_render($form); return $output; } only in patch2: unchanged: --- project.inc 30 Jul 2010 21:59:28 -0000 1.150 +++ project.inc 13 Aug 2010 05:59:34 -0000 @@ -425,11 +425,15 @@ function project_project_nodeapi(&$node, function project_project_insert($node) { db_query("INSERT INTO {project_projects} (nid, uri, homepage, changelog, cvs, demo, screenshots, documentation, license) VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $node->nid, $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license']); // project_release_scan_directory($node->project['uri']); + $perms = array_fill_keys(array_keys(project_permission_load()), 1); + project_maintainer_add($node->nid, $node->uid, $perms); } function project_project_update($node) { db_query("UPDATE {project_projects} SET uri = '%s', homepage = '%s', changelog = '%s', cvs = '%s', demo = '%s', screenshots = '%s', documentation = '%s', license = '%s' WHERE nid = %d", $node->project['uri'], $node->project['homepage'], $node->project['changelog'], $node->project['cvs'], $node->project['demo'], $node->project['screenshots'], $node->project['documentation'], $node->project['license'], $node->nid); // project_release_scan_directory($node->project['uri']); + $perms = array_fill_keys(array_keys(project_permission_load()), 1); + project_maintainer_update($node->nid, $node->uid, $perms); } function project_project_delete($node) {