/** * 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'); } } }
/** * 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(); }