12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * A small module to assign issues to users
- * Derived from Nedjo Rogers' module for 4.7
- * See http://drupal.org/node/4354 for the discussion
- *
- * @version $Id: project_issue_extend.module,v 1.1 2009-12-03 20:55:33 root Exp $
- * @license GPL 2.0
- *
- */
- define(PROJECT_ISSUE_PERM_SETTER, 'assign project issues to others');
- define(PROJECT_ISSUE_PERM_GETTER, 'be assigned project issues');
- /**
- * Implementation of hook_help().
- */
- function project_issue_extend_help($section) {
- switch ($section) {
- case 'admin/modules#description':
- return t('Allow assigning of issues to any member with appropriate permissions.');
- }
- }
- /**
- * Implementation of hook_perm().
- */
- function project_issue_extend_perm() {
- return array(
- PROJECT_ISSUE_PERM_SETTER,
- PROJECT_ISSUE_PERM_GETTER,
- );
- }
- /**
- * Implementation of hook_form_alter().
- *
- * Add all users to select for assigning issues.
- */
- function project_issue_extend_form_alter($form_id, &$form) {
- if (in_array($form_id, array('project_issue_node_form', 'comment_form', /* was 'project_comment_form' */))
- && user_access(PROJECT_ISSUE_PERM_SETTER)) {
- $options = array();
- $result = db_query(
- "SELECT DISTINCT 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 like '%%%s%%' "
- . "ORDER BY u.name",
- PROJECT_ISSUE_PERM_GETTER);
- 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 'comment_form': // project_comment_form
- if ($form['original_issue']['issue_info']['assigned']) {
- $form['original_issue']['issue_info']['assigned']['#options'] += $options;
- }
- break;
- }
- }
- }
|