Index: project_issue/project_issue.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project_issue/project_issue.module,v retrieving revision 1.38.2.3 diff -u -r1.38.2.3 project_issue.module --- project_issue/project_issue.module 13 Oct 2007 22:09:11 -0000 1.38.2.3 +++ project_issue/project_issue.module 17 Oct 2007 05:31:44 -0000 @@ -1,6 +1,6 @@ project_issues // issue comments -> project_comments @@ -62,7 +62,9 @@ 'create project issues', 'access project issues', 'edit own project issues', - 'access own project issues' + 'access own project issues', + 'be assigned project issues', + 'be assigned project issues', ); $states = project_issue_state(); foreach($states as $key => $value) { @@ -857,3 +859,40 @@ } return $roles; } + +/** + * Implementation of hook_form_alter(). + * + * Add all users to select for assigning issues. + */ +function project_issue_form_alter($form_id, &$form) { + if (in_array($form_id, array('project_issue_node_form', 'project_comment_form')) + && user_access('assign project issues to others')) { + $options = array(); + $result = db_query( + "SELECT u.uid, u.name " + . "FROM {users} u " + . "INNER JOIN {users_roles} ur ON u.uid = ur.uid " + . "INNER JOIN {role} r ON ur.rid = r.rid " + . "INNER JOIN {permission} p ON p.rid = r.rid " + . "WHERE p.perm ='%s' " + . "ORDER BY u.name", + 'be assigned project issues'); + while ($user = db_fetch_object($result)) { + $options[$user->uid] = $user->name; + } + + switch ($form_id) { + case 'project_issue_node_form': + if ($form['issue_info']['assigned']) { + $form['issue_info']['assigned']['#options'] += $options; + } + break; + case 'project_comment_form': + if ($form['project_issue_form']['issue_info']['assigned']) { + $form['project_issue_form']['issue_info']['assigned']['#options'] += $options; + } + break; + } + } +} \ No newline at end of file