diff -u project.install project.install --- project.install 17 Aug 2010 16:11:50 -0000 +++ project.install 19 Aug 2010 00:10:20 -0000 @@ -121,7 +121,7 @@ 'not null' => TRUE, 'default' => 0, ), - 'administer_settings' => array( + 'edit_project' => array( 'description' => t('Can this user edit the given project and modify its settings.'), 'type' => 'int', 'unsigned' => TRUE, @@ -194,7 +194,7 @@ 'not null' => TRUE, 'default' => 0, ), - 'administer_settings' => array( + 'edit_project' => array( 'description' => t('Can this user edit the given project and modify its settings.'), 'type' => 'int', 'unsigned' => TRUE, @@ -215,14 +215,14 @@ // Initially populate the table so that every project owner has full // powers on their own projects. - $ret[] = update_sql("INSERT INTO {project_maintainer} (nid, uid, administer_settings, administer_maintainers) SELECT nid, uid, 1, 1 FROM {node} WHERE type = 'project_project'"); + $ret[] = update_sql("INSERT INTO {project_maintainer} (nid, uid, edit_project, administer_maintainers) SELECT nid, uid, 1, 1 FROM {node} WHERE type = 'project_project'"); // If CVS module is enabled, also populate the table from the - // {cvs_project_maintainers} table so that anyone with CVS access - // who is not the project owner can administer the project but not - // manipulate the per-project permissions. + // {cvs_project_maintainers} table so that anyone with CVS access who is + // not the project owner can edit the project but not manipulate the + // per-project permissions. if (module_exists('cvs')) { - $ret[] = update_sql("INSERT INTO {project_maintainer} (nid, uid, administer_settings, administer_maintainers) SELECT cpm.nid, cpm.uid, 1, 0 FROM {cvs_project_maintainers} cpm INNER JOIN {node} n ON cpm.nid = n.nid WHERE cpm.uid != n.uid"); + $ret[] = update_sql("INSERT INTO {project_maintainer} (nid, uid, edit_project, administer_maintainers) SELECT cpm.nid, cpm.uid, 1, 0 FROM {cvs_project_maintainers} cpm INNER JOIN {node} n ON cpm.nid = n.nid WHERE cpm.uid != n.uid"); } return $ret; diff -u project.module project.module --- project.module 17 Aug 2010 16:11:50 -0000 +++ project.module 19 Aug 2010 00:11:56 -0000 @@ -716,7 +716,7 @@ if ($node->type == 'project_release') { $node = node_load($node->project_release['pid']); } - if (project_user_access($node, 'administer settings')) { + if (project_user_access($node, 'edit project')) { return TRUE; } if (!user_access('access projects')) { @@ -736,7 +736,7 @@ } break; case 'update': - if (project_user_access($node, 'administer settings')) { + if (project_user_access($node, 'edit project')) { return TRUE; } break; @@ -772,8 +772,8 @@ */ function project_project_permission_info() { return array( - 'administer settings' => array( - 'title' => t('Administer settings'), + 'edit project' => array( + 'title' => t('Edit project'), 'description' => t('Allows a user to edit a project and modify its settings.'), ), 'administer maintainers' => array( @@ -804,10 +804,10 @@ */ function project_maintainer_save($nid, $uid, $permissions = array()) { // Try to update an existing record, if any. - db_query("UPDATE {project_maintainer} SET administer_settings = %d, administer_maintainers = %d WHERE nid = %d AND uid = %d", !empty($permissions['administer settings']), !empty($permissions['administer maintainers']), $nid, $uid); + db_query("UPDATE {project_maintainer} SET edit_project = %d, administer_maintainers = %d WHERE nid = %d AND uid = %d", !empty($permissions['edit project']), !empty($permissions['administer maintainers']), $nid, $uid); if (!db_affected_rows()) { // Didn't update anything, add this as a new maintainer, instead. - db_query("INSERT INTO {project_maintainer} (nid, uid, administer_settings, administer_maintainers) VALUES (%d, %d, %d, %d)", $nid, $uid, !empty($permissions['administer settings']), !empty($permissions['administer maintainers'])); + db_query("INSERT INTO {project_maintainer} (nid, uid, edit_project, administer_maintainers) VALUES (%d, %d, %d, %d)", $nid, $uid, !empty($permissions['edit project']), !empty($permissions['administer maintainers'])); } // Invoke hook_project_maintainer_save() to let other modules know this diff -u project.test project.test --- project.test 17 Aug 2010 16:11:50 -0000 +++ project.test 19 Aug 2010 00:12:36 -0000 @@ -409,9 +409,9 @@ $this->assertLink(t('Maintainers'), 0, ('Maintainers tab is shown.')); $this->drupalGet("node/$project->nid/maintainers"); $this->assertLink($this->owner->name, 0, ('Project owner is displayed on form.')); - $this->assertFieldDisabled("maintainers[{$this->owner->uid}][permissions][administer settings]", 'Checkbox is disabled for project owner'); + $this->assertFieldDisabled("maintainers[{$this->owner->uid}][permissions][edit project]", 'Checkbox is disabled for project owner'); $this->assertFieldDisabled("maintainers[{$this->owner->uid}][permissions][administer maintainers]", 'Checkbox is disabled for project owner'); - $this->assertFieldCheckedByName("maintainers[{$this->owner->uid}][permissions][administer settings]", 'Owners permissions are automatically granted'); + $this->assertFieldCheckedByName("maintainers[{$this->owner->uid}][permissions][edit project]", 'Owners permissions are automatically granted'); $this->assertFieldCheckedByName("maintainers[{$this->owner->uid}][permissions][administer maintainers]", 'Owners permissions are automatically granted'); $this->assertNoRaw("node/$project->nid/maintainers/delete/{$this->owner->uid}", 'No delete link is displayed for the project owner.'); @@ -436,7 +436,7 @@ $edit['new_maintainer[user]'] = $this->maintainer->name; $this->drupalPost("node/$project->nid/maintainers", $edit, t('Update')); $this->assertLink($this->maintainer->name, 0, 'New user is displayed on form correctly.'); - $this->assertNoFieldCheckedByName("maintainers[{$this->maintainer->uid}][permissions][administer settings]", 'Permissions not explicitly granted.'); + $this->assertNoFieldCheckedByName("maintainers[{$this->maintainer->uid}][permissions][edit project]", 'Permissions not explicitly granted.'); $this->assertNoFieldCheckedByName("maintainers[{$this->maintainer->uid}][permissions][administer maintainers]", 'Permissions not explicitly granted.'); // Test validation for adding a duplicate maintainer @@ -447,9 +447,9 @@ // Add permissions to user $edit = array(); - $edit["maintainers[{$this->maintainer->uid}][permissions][administer settings]"] = TRUE; + $edit["maintainers[{$this->maintainer->uid}][permissions][edit project]"] = TRUE; $this->drupalPost("node/$project->nid/maintainers", $edit, t('Update')); - $this->assertFieldCheckedByName("maintainers[{$this->maintainer->uid}][permissions][administer settings]", 'Permissions are displayed correctly on maintainers form.'); + $this->assertFieldCheckedByName("maintainers[{$this->maintainer->uid}][permissions][edit project]", 'Permissions are displayed correctly on maintainers form.'); // Login as maintainer and check access $this->drupalLogin($this->maintainer); $this->drupalGet("node/$project->nid/edit");