Example #1
0
 /**
  * Assigns one or more $tasks only to a user $user_id
  * @param integer $user_id
  * @param array $tasks
  * @access public
  * @return void
  * @version 1.0
  */
 public static function assign_to_me($user_id, $tasks)
 {
     global $db, $notify;
     $user = $GLOBALS['user'];
     if ($user_id != $user->id) {
         $user = new User($user_id);
     }
     settype($tasks, 'array');
     if (!count($tasks)) {
         return;
     }
     $sql = $db->Query(' SELECT *
                           FROM {tasks}
                          WHERE ' . substr(str_repeat(' task_id = ? OR ', count($tasks)), 0, -3), $tasks);
     while ($row = $db->FetchRow($sql)) {
         if (!$user->can_take_ownership($row)) {
             continue;
         }
         $db->Query('DELETE FROM {assigned}
                           WHERE task_id = ?', array($row['task_id']));
         $db->Query('INSERT INTO {assigned}
                                 (task_id, user_id)
                          VALUES (?,?)', array($row['task_id'], $user->id));
         if ($db->affectedRows()) {
             $current_proj = new Project($row['project_id']);
             Flyspray::logEvent($row['task_id'], 19, $user->id, implode(' ', Flyspray::GetAssignees($row['task_id'])));
             $notify->Create(NOTIFY_OWNERSHIP, $row['task_id'], null, null, NOTIFY_BOTH, $current_proj->prefs['lang_code']);
         }
         if ($row['item_status'] == STATUS_UNCONFIRMED || $row['item_status'] == STATUS_NEW) {
             $db->Query('UPDATE {tasks} SET item_status = 3 WHERE task_id = ?', array($row['task_id']));
             Flyspray::logEvent($row['task_id'], 3, 3, 1, 'item_status');
         }
     }
 }
Example #2
0
 /**
  * Assigns one or more $tasks only to a user $user_id
  * @param integer $user_id
  * @param array $tasks
  * @access public
  * @return void
  * @version 1.0
  */
 function assign_to_me($user_id, $tasks)
 {
     global $db;
     $user = $GLOBALS['user'];
     if ($user_id != $user->id) {
         $user = new User($user_id);
     }
     settype($tasks, 'array');
     if (!count($tasks)) {
         return;
     }
     $sql = $db->query(' SELECT *
                           FROM {tasks}
                          WHERE task_id IN (' . implode(',', array_map('intval', $tasks)) . ')');
     $del_assignees = $db->x->autoPrepare('{assigned}', null, MDB2_AUTOQUERY_DELETE, $where = 'task_id = ?');
     $insert_assigned = $db->x->autoPrepare('{assigned}', array('task_id', 'user_id'));
     while ($row = $sql->FetchRow()) {
         if (!$user->can_take_ownership($row)) {
             continue;
         }
         $num = $del_assignees->execute($row['task_id']);
         $insert_assigned->execute(array($row['task_id'], $user->id));
         if ($num) {
             Flyspray::logEvent($row['task_id'], 19, $user->id, implode(' ', Flyspray::GetAssignees($row['task_id'])));
             Notifications::send($row['task_id'], ADDRESS_TASK, NOTIFY_OWNERSHIP);
         }
     }
     $del_assignees->free();
     $insert_assigned->free();
 }