1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-19 21:32:43 +01:00

Partially update Maniphest for handleProcess

Summary: Starts conversion of Maniphest to handleProcess, chopping up to reduce errors.

Test Plan: New Task, Edit Task, Change Priority, Move on workboard, view reports, batch edit tasks

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: epriestley, Korvin

Maniphest Tasks: T8628

Differential Revision: https://secure.phabricator.com/D13773
This commit is contained in:
Chad Little 2015-08-01 17:06:57 -07:00
parent f087bce27d
commit 3b0ca7b769
8 changed files with 115 additions and 151 deletions

View file

@ -2,27 +2,19 @@
final class ManiphestExportController extends ManiphestController {
private $key;
public function willProcessRequest(array $data) {
$this->key = $data['key'];
return $this;
}
/**
* @phutil-external-symbol class PHPExcel
* @phutil-external-symbol class PHPExcel_IOFactory
* @phutil-external-symbol class PHPExcel_Style_NumberFormat
* @phutil-external-symbol class PHPExcel_Cell_DataType
*/
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$key = $request->getURIData('key');
$ok = @include_once 'PHPExcel.php';
if (!$ok) {
$dialog = new AphrontDialogView();
$dialog->setUser($user);
$dialog = $this->newDialog();
$inst1 = pht(
'This system does not have PHPExcel installed. This software '.
@ -54,14 +46,14 @@ final class ManiphestExportController extends ManiphestController {
// for that here, since it fatals if we don't have the ZipArchive class.
$saved = id(new PhabricatorSavedQueryQuery())
->setViewer($user)
->withQueryKeys(array($this->key))
->setViewer($viewer)
->withQueryKeys(array($key))
->executeOne();
if (!$saved) {
$engine = id(new ManiphestTaskSearchEngine())
->setViewer($user);
if ($engine->isBuiltinQuery($this->key)) {
$saved = $engine->buildSavedQueryFromBuiltin($this->key);
->setViewer($viewer);
if ($engine->isBuiltinQuery($key)) {
$saved = $engine->buildSavedQueryFromBuiltin($key);
}
if (!$saved) {
return new Aphront404Response();
@ -76,7 +68,7 @@ final class ManiphestExportController extends ManiphestController {
if (!$request->isDialogFormPost()) {
$dialog = new AphrontDialogView();
$dialog->setUser($user);
$dialog->setUser($viewer);
$dialog->setTitle(pht('Export Tasks to Excel'));
$dialog->appendChild(
@ -108,22 +100,22 @@ final class ManiphestExportController extends ManiphestController {
$saved->setParameter('limit', PHP_INT_MAX);
$engine = id(new ManiphestTaskSearchEngine())
->setViewer($user);
->setViewer($viewer);
$query = $engine->buildQueryFromSavedQuery($saved);
$query->setViewer($user);
$query->setViewer($viewer);
$tasks = $query->execute();
$all_projects = array_mergev(mpull($tasks, 'getProjectPHIDs'));
$all_assigned = mpull($tasks, 'getOwnerPHID');
$handles = id(new PhabricatorHandleQuery())
->setViewer($user)
->setViewer($viewer)
->withPHIDs(array_merge($all_projects, $all_assigned))
->execute();
$workbook = new PHPExcel();
$format->buildWorkbook($workbook, $tasks, $handles, $user);
$format->buildWorkbook($workbook, $tasks, $handles, $viewer);
$writer = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
ob_start();

View file

@ -4,13 +4,9 @@ final class ManiphestReportController extends ManiphestController {
private $view;
public function willProcessRequest(array $data) {
$this->view = idx($data, 'view');
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$this->view = $request->getURIData('view');
if ($request->isFormPost()) {
$uri = $request->getRequestURI();
@ -64,7 +60,7 @@ final class ManiphestReportController extends ManiphestController {
public function renderBurn() {
$request = $this->getRequest();
$user = $request->getUser();
$viewer = $request->getUser();
$handle = null;
@ -132,7 +128,7 @@ final class ManiphestReportController extends ManiphestController {
$day_bucket = phabricator_format_local_time(
$row['dateCreated'],
$user,
$viewer,
'Yz');
$day_buckets[$day_bucket] = $row['dateCreated'];
if (empty($stats[$day_bucket])) {
@ -166,12 +162,12 @@ final class ManiphestReportController extends ManiphestController {
$week_bucket = phabricator_format_local_time(
$epoch,
$user,
$viewer,
'YW');
if ($week_bucket != $last_week) {
if ($week) {
$rows[] = $this->formatBurnRow(
pht('Week of %s', phabricator_date($last_week_epoch, $user)),
pht('Week of %s', phabricator_date($last_week_epoch, $viewer)),
$week);
$rowc[] = 'week';
}
@ -182,12 +178,12 @@ final class ManiphestReportController extends ManiphestController {
$month_bucket = phabricator_format_local_time(
$epoch,
$user,
$viewer,
'Ym');
if ($month_bucket != $last_month) {
if ($month) {
$rows[] = $this->formatBurnRow(
phabricator_format_local_time($last_month_epoch, $user, 'F, Y'),
phabricator_format_local_time($last_month_epoch, $viewer, 'F, Y'),
$month);
$rowc[] = 'month';
}
@ -196,7 +192,7 @@ final class ManiphestReportController extends ManiphestController {
$last_month_epoch = $epoch;
}
$rows[] = $this->formatBurnRow(phabricator_date($epoch, $user), $info);
$rows[] = $this->formatBurnRow(phabricator_date($epoch, $viewer), $info);
$rowc[] = null;
$week['open'] += $info['open'];
$week['close'] += $info['close'];
@ -315,10 +311,10 @@ final class ManiphestReportController extends ManiphestController {
private function renderReportFilters(array $tokens, $has_window) {
$request = $this->getRequest();
$user = $request->getUser();
$viewer = $request->getUser();
$form = id(new AphrontFormView())
->setUser($user)
->setUser($viewer)
->appendControl(
id(new AphrontFormTokenizerControl())
->setDatasource(new PhabricatorProjectDatasource())
@ -390,11 +386,11 @@ final class ManiphestReportController extends ManiphestController {
public function renderOpenTasks() {
$request = $this->getRequest();
$user = $request->getUser();
$viewer = $request->getUser();
$query = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withStatuses(ManiphestTaskStatus::getOpenStatusConstants());
switch ($this->view) {
@ -420,7 +416,7 @@ final class ManiphestReportController extends ManiphestController {
$recently_closed = $this->loadRecentlyClosedTasks();
$date = phabricator_date(time(), $user);
$date = phabricator_date(time(), $viewer);
switch ($this->view) {
case 'user':
@ -615,7 +611,7 @@ final class ManiphestReportController extends ManiphestController {
$cclass[] = 'n';
list($ignored, $window_epoch) = $this->getWindow();
$edate = phabricator_datetime($window_epoch, $user);
$edate = phabricator_datetime($window_epoch, $viewer);
$cname[] = javelin_tag(
'span',
array(
@ -726,7 +722,7 @@ final class ManiphestReportController extends ManiphestController {
*/
private function getWindow() {
$request = $this->getRequest();
$user = $request->getUser();
$viewer = $request->getUser();
$window_str = $this->getRequest()->getStr('window', '12 AM 7 days ago');
@ -736,7 +732,7 @@ final class ManiphestReportController extends ManiphestController {
// Do locale-aware parsing so that the user's timezone is assumed for
// time windows like "3 PM", rather than assuming the server timezone.
$window_epoch = PhabricatorTime::parseLocalTime($window_str, $user);
$window_epoch = PhabricatorTime::parseLocalTime($window_str, $viewer);
if (!$window_epoch) {
$error = 'Invalid';
$window_epoch = time() - (60 * 60 * 24 * 7);

View file

@ -2,16 +2,15 @@
final class ManiphestSubpriorityController extends ManiphestController {
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
if (!$request->validateCSRF()) {
return new Aphront403Response();
}
$task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($request->getInt('task')))
->needProjectPHIDs(true)
->requireCapabilities(
@ -26,7 +25,7 @@ final class ManiphestSubpriorityController extends ManiphestController {
if ($request->getInt('after')) {
$after_task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($request->getInt('after')))
->executeOne();
if (!$after_task) {
@ -52,7 +51,7 @@ final class ManiphestSubpriorityController extends ManiphestController {
->setNewValue($sub);
$editor = id(new ManiphestTransactionEditor())
->setActor($user)
->setActor($viewer)
->setContinueOnMissingFields(true)
->setContinueOnNoEffect(true)
->setContentSourceFromRequest($request);

View file

@ -2,27 +2,21 @@
final class ManiphestTaskDetailController extends ManiphestController {
private $id;
public function shouldAllowPublic() {
return true;
}
public function willProcessRequest(array $data) {
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$id = $request->getURIData('id');
$e_title = null;
$priority_map = ManiphestTaskPriority::getTaskPriorityMap();
$task = id(new ManiphestTaskQuery())
->setViewer($user)
->withIDs(array($this->id))
->setViewer($viewer)
->withIDs(array($id))
->needSubscriberPHIDs(true)
->executeOne();
if (!$task) {
@ -33,7 +27,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
$parent_task = null;
if ($workflow && is_numeric($workflow)) {
$parent_task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($workflow))
->executeOne();
}
@ -42,7 +36,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
$task,
PhabricatorCustomField::ROLE_VIEW);
$field_list
->setViewer($user)
->setViewer($viewer)
->readFieldsFromStorage($task);
$e_commit = ManiphestTaskHasCommitEdgeType::EDGECONST;
@ -83,7 +77,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
}
$phids = array_keys($phids);
$handles = $user->loadHandles($phids);
$handles = $viewer->loadHandles($phids);
$info_view = null;
if ($parent_task) {
@ -115,7 +109,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
}
$engine = new PhabricatorMarkupEngine();
$engine->setViewer($user);
$engine->setViewer($viewer);
$engine->setContextObject($task);
$engine->addObject($task, ManiphestTask::MARKUP_FIELD_DESCRIPTION);
@ -169,12 +163,13 @@ final class ManiphestTaskDetailController extends ManiphestController {
}
$default_claim = array(
$user->getPHID() => $user->getUsername().' ('.$user->getRealName().')',
$viewer->getPHID() => $viewer->getUsername().
' ('.$viewer->getRealName().')',
);
$draft = id(new PhabricatorDraft())->loadOneWhere(
'authorPHID = %s AND draftKey = %s',
$user->getPHID(),
$viewer->getPHID(),
$task->getPHID());
if ($draft) {
$draft_text = $draft->getDraft();
@ -188,7 +183,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
$comment_form = new AphrontFormView();
$comment_form
->setUser($user)
->setUser($viewer)
->setWorkflow(true)
->setAction('/maniphest/transaction/save/')
->setEncType('multipart/form-data')
@ -249,12 +244,12 @@ final class ManiphestTaskDetailController extends ManiphestController {
->setControlStyle('display: none'))
->appendChild(
id(new PhabricatorRemarkupControl())
->setUser($user)
->setUser($viewer)
->setLabel(pht('Comments'))
->setName('comments')
->setValue($draft_text)
->setID('transaction-comments')
->setUser($user))
->setUser($viewer))
->appendChild(
id(new AphrontFormSubmitControl())
->setValue(pht('Submit')));
@ -288,7 +283,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
);
// TODO: Initializing these behaviors for logged out users fatals things.
if ($user->isLoggedIn()) {
if ($viewer->isLoggedIn()) {
Javelin::initBehavior('maniphest-transaction-controls', array(
'select' => 'transaction-action',
'controlMap' => $control_map,
@ -330,11 +325,11 @@ final class ManiphestTaskDetailController extends ManiphestController {
$task, $field_list, $edges, $actions, $handles);
$description = $this->buildDescriptionView($task, $engine);
if (!$user->isLoggedIn()) {
if (!$viewer->isLoggedIn()) {
// TODO: Eventually, everything should run through this. For now, we're
// only using it to get a consistent "Login to Comment" button.
$comment_box = id(new PhabricatorApplicationTransactionCommentView())
->setUser($user)
->setUser($viewer)
->setRequestURI($request->getRequestURI());
$preview_panel = null;
} else {

View file

@ -2,15 +2,9 @@
final class ManiphestTaskEditController extends ManiphestController {
private $id;
public function willProcessRequest(array $data) {
$this->id = idx($data, 'id');
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$id = $request->getURIData('id');
$response_type = $request->getStr('responseType', 'task');
$order = $request->getStr('order', PhabricatorProjectColumn::DEFAULT_ORDER);
@ -26,22 +20,22 @@ final class ManiphestTaskEditController extends ManiphestController {
$can_edit_status = $this->hasApplicationCapability(
ManiphestEditStatusCapability::CAPABILITY);
$can_create_projects = PhabricatorPolicyFilter::hasCapability(
$user,
$viewer,
PhabricatorApplication::getByClass('PhabricatorProjectApplication'),
ProjectCreateProjectsCapability::CAPABILITY);
$parent_task = null;
$template_id = null;
if ($this->id) {
if ($id) {
$task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->withIDs(array($this->id))
->withIDs(array($id))
->needSubscriberPHIDs(true)
->needProjectPHIDs(true)
->executeOne();
@ -49,7 +43,7 @@ final class ManiphestTaskEditController extends ManiphestController {
return new Aphront404Response();
}
} else {
$task = ManiphestTask::initializeNewTask($user);
$task = ManiphestTask::initializeNewTask($viewer);
// We currently do not allow you to set the task status when creating
// a new task, although now that statuses are custom it might make
@ -82,7 +76,7 @@ final class ManiphestTaskEditController extends ManiphestController {
}
$default_projects = id(new PhabricatorObjectQuery())
->setViewer($user)
->setViewer($viewer)
->withNames($tokens)
->execute();
$default_projects = mpull($default_projects, 'getPHID');
@ -109,12 +103,12 @@ final class ManiphestTaskEditController extends ManiphestController {
$assign = $request->getStr('assign');
if (strlen($assign)) {
$assign_user = id(new PhabricatorPeopleQuery())
->setViewer($user)
->setViewer($viewer)
->withUsernames(array($assign))
->executeOne();
if (!$assign_user) {
$assign_user = id(new PhabricatorPeopleQuery())
->setViewer($user)
->setViewer($viewer)
->withPHIDs(array($assign))
->executeOne();
}
@ -132,7 +126,7 @@ final class ManiphestTaskEditController extends ManiphestController {
$parent_id = $request->getInt('parent');
if (strlen($parent_id)) {
$parent_task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($parent_id))
->executeOne();
if (!$parent_task) {
@ -150,7 +144,7 @@ final class ManiphestTaskEditController extends ManiphestController {
$field_list = PhabricatorCustomField::getObjectFields(
$task,
PhabricatorCustomField::ROLE_EDIT);
$field_list->setViewer($user);
$field_list->setViewer($viewer);
$field_list->readFieldsFromStorage($task);
$aux_fields = $field_list->getFields();
@ -250,7 +244,7 @@ final class ManiphestTaskEditController extends ManiphestController {
// allow for putting a task in a project column at creation -only-
if (!$task->getID() && $column_phid && $projects) {
$column = id(new PhabricatorProjectColumnQuery())
->setViewer($user)
->setViewer($viewer)
->withProjectPHIDs($projects)
->withPHIDs(array($column_phid))
->executeOne();
@ -329,7 +323,7 @@ final class ManiphestTaskEditController extends ManiphestController {
'new' => $is_new,
'transactions' => $transactions,
));
$event->setUser($user);
$event->setUser($viewer);
$event->setAphrontRequest($request);
PhutilEventEngine::dispatchEvent($event);
@ -337,7 +331,7 @@ final class ManiphestTaskEditController extends ManiphestController {
$transactions = $event->getValue('transactions');
$editor = id(new ManiphestTransactionEditor())
->setActor($user)
->setActor($viewer)
->setContentSourceFromRequest($request)
->setContinueOnNoEffect(true)
->applyTransactions($task, $transactions);
@ -349,7 +343,7 @@ final class ManiphestTaskEditController extends ManiphestController {
'new' => $is_new,
'transactions' => $transactions,
));
$event->setUser($user);
$event->setUser($viewer);
$event->setAphrontRequest($request);
PhutilEventEngine::dispatchEvent($event);
}
@ -372,19 +366,19 @@ final class ManiphestTaskEditController extends ManiphestController {
$owner = null;
if ($task->getOwnerPHID()) {
$owner = id(new PhabricatorHandleQuery())
->setViewer($user)
->setViewer($viewer)
->withPHIDs(array($task->getOwnerPHID()))
->executeOne();
}
$tasks = id(new ProjectBoardTaskCard())
->setViewer($user)
->setViewer($viewer)
->setTask($task)
->setOwner($owner)
->setCanEdit(true)
->getItem();
$column = id(new PhabricatorProjectColumnQuery())
->setViewer($user)
->setViewer($viewer)
->withPHIDs(array($request->getStr('columnPHID')))
->executeOne();
if (!$column) {
@ -403,13 +397,13 @@ final class ManiphestTaskEditController extends ManiphestController {
}
$positions = id(new PhabricatorProjectColumnPositionQuery())
->setViewer($user)
->setViewer($viewer)
->withColumns(array($column))
->execute();
$task_phids = mpull($positions, 'getObjectPHID');
$column_tasks = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withPHIDs($task_phids)
->execute();
@ -461,11 +455,11 @@ final class ManiphestTaskEditController extends ManiphestController {
} else {
if (!$task->getID()) {
$task->attachSubscriberPHIDs(array(
$user->getPHID(),
$viewer->getPHID(),
));
if ($template_id) {
$template_task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($template_id))
->needSubscriberPHIDs(true)
->needProjectPHIDs(true)
@ -473,7 +467,7 @@ final class ManiphestTaskEditController extends ManiphestController {
if ($template_task) {
$cc_phids = array_unique(array_merge(
$template_task->getSubscriberPHIDs(),
array($user->getPHID())));
array($viewer->getPHID())));
$task->attachSubscriberPHIDs($cc_phids);
$task->attachProjectPHIDs($template_task->getProjectPHIDs());
$task->setOwnerPHID($template_task->getOwnerPHID());
@ -499,7 +493,7 @@ final class ManiphestTaskEditController extends ManiphestController {
if ($fields) {
id(new PhabricatorCustomFieldList($fields))
->setViewer($user)
->setViewer($viewer)
->readFieldsFromStorage($template_task);
foreach ($fields as $key => $field) {
@ -563,7 +557,7 @@ final class ManiphestTaskEditController extends ManiphestController {
$form = new AphrontFormView();
$form
->setUser($user)
->setUser($viewer)
->addHiddenInput('template', $template_id)
->addHiddenInput('responseType', $response_type)
->addHiddenInput('order', $order)
@ -575,7 +569,7 @@ final class ManiphestTaskEditController extends ManiphestController {
->appendChild(
id(new AphrontFormStaticControl())
->setLabel(pht('Parent Task'))
->setValue($user->renderHandle($parent_task->getPHID())))
->setValue($viewer->renderHandle($parent_task->getPHID())))
->addHiddenInput('parent', $parent_task->getID());
}
@ -607,7 +601,7 @@ final class ManiphestTaskEditController extends ManiphestController {
}
$policies = id(new PhabricatorPolicyQuery())
->setViewer($user)
->setViewer($viewer)
->setObject($task)
->execute();
@ -617,7 +611,7 @@ final class ManiphestTaskEditController extends ManiphestController {
->setLabel(pht('Assigned To'))
->setName('assigned_to')
->setValue($assigned_value)
->setUser($user)
->setUser($viewer)
->setDatasource(new PhabricatorPeopleDatasource())
->setLimit(1));
}
@ -628,7 +622,7 @@ final class ManiphestTaskEditController extends ManiphestController {
->setLabel(pht('CC'))
->setName('cc')
->setValue($cc_value)
->setUser($user)
->setUser($viewer)
->setDatasource(new PhabricatorMetaMTAMailableDatasource()));
if ($can_edit_priority) {
@ -645,7 +639,7 @@ final class ManiphestTaskEditController extends ManiphestController {
$form
->appendChild(
id(new AphrontFormPolicyControl())
->setUser($user)
->setUser($viewer)
->setCapability(PhabricatorPolicyCapability::CAN_VIEW)
->setPolicyObject($task)
->setPolicies($policies)
@ -653,7 +647,7 @@ final class ManiphestTaskEditController extends ManiphestController {
->setName('viewPolicy'))
->appendChild(
id(new AphrontFormPolicyControl())
->setUser($user)
->setUser($viewer)
->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
->setPolicyObject($task)
->setPolicies($policies)
@ -696,14 +690,14 @@ final class ManiphestTaskEditController extends ManiphestController {
->setName('description')
->setID('description-textarea')
->setValue($task->getDescription())
->setUser($user);
->setUser($viewer);
$form
->appendChild($description_control);
if ($request->isAjax()) {
$dialog = id(new AphrontDialogView())
->setUser($user)
->setUser($viewer)
->setWidth(AphrontDialogView::WIDTH_FULL)
->setTitle($header_name)
->appendChild(

View file

@ -3,19 +3,15 @@
final class ManiphestTaskListController
extends ManiphestController {
private $queryKey;
public function shouldAllowPublic() {
return true;
}
public function willProcessRequest(array $data) {
$this->queryKey = idx($data, 'queryKey');
}
public function handleRequest(AphrontRequest $request) {
$querykey = $request->getURIData('queryKey');
public function processRequest() {
$controller = id(new PhabricatorApplicationSearchController())
->setQueryKey($this->queryKey)
->setQueryKey($querykey)
->setSearchEngine(
id(new ManiphestTaskSearchEngine())
->setShowBatchControls(true))

View file

@ -2,29 +2,22 @@
final class ManiphestTransactionPreviewController extends ManiphestController {
private $id;
public function willProcessRequest(array $data) {
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$id = $request->getURIData('id');
$comments = $request->getStr('comments');
$task = id(new ManiphestTaskQuery())
->setViewer($user)
->withIDs(array($this->id))
->setViewer($viewer)
->withIDs(array($id))
->executeOne();
if (!$task) {
return new Aphront404Response();
}
id(new PhabricatorDraft())
->setAuthorPHID($user->getPHID())
->setAuthorPHID($viewer->getPHID())
->setDraftKey($task->getPHID())
->setDraft($comments)
->replaceOrDelete();
@ -32,7 +25,7 @@ final class ManiphestTransactionPreviewController extends ManiphestController {
$action = $request->getStr('action');
$transaction = new ManiphestTransaction();
$transaction->setAuthorPHID($user->getPHID());
$transaction->setAuthorPHID($viewer->getPHID());
$transaction->setTransactionType($action);
// This should really be split into a separate transaction, but it should
@ -104,7 +97,7 @@ final class ManiphestTransactionPreviewController extends ManiphestController {
$transaction->setNewValue($value);
break;
}
$phids[] = $user->getPHID();
$phids[] = $viewer->getPHID();
$handles = $this->loadViewerHandles($phids);
@ -112,7 +105,7 @@ final class ManiphestTransactionPreviewController extends ManiphestController {
$transactions[] = $transaction;
$engine = new PhabricatorMarkupEngine();
$engine->setViewer($user);
$engine->setViewer($viewer);
$engine->setContextObject($task);
if ($transaction->hasComment()) {
$engine->addObject(
@ -124,7 +117,7 @@ final class ManiphestTransactionPreviewController extends ManiphestController {
$transaction->setHandles($handles);
$view = id(new PhabricatorApplicationTransactionView())
->setUser($user)
->setUser($viewer)
->setTransactions($transactions)
->setIsPreview(true);

View file

@ -2,12 +2,11 @@
final class ManiphestTransactionSaveController extends ManiphestController {
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
$task = id(new ManiphestTaskQuery())
->setViewer($user)
->setViewer($viewer)
->withIDs(array($request->getStr('taskID')))
->needSubscriberPHIDs(true)
->needProjectPHIDs(true)
@ -102,7 +101,7 @@ final class ManiphestTransactionSaveController extends ManiphestController {
// this task.
$assign = new ManiphestTransaction();
$assign->setTransactionType(ManiphestTransaction::TYPE_OWNER);
$assign->setNewValue($user->getPHID());
$assign->setNewValue($viewer->getPHID());
$transactions[] = $assign;
$implicitly_claimed = true;
@ -114,10 +113,10 @@ final class ManiphestTransactionSaveController extends ManiphestController {
$user_owns_task = true;
} else {
if ($action == ManiphestTransaction::TYPE_OWNER) {
if ($transaction->getNewValue() == $user->getPHID()) {
if ($transaction->getNewValue() == $viewer->getPHID()) {
$user_owns_task = true;
}
} else if ($task->getOwnerPHID() == $user->getPHID()) {
} else if ($task->getOwnerPHID() == $viewer->getPHID()) {
$user_owns_task = true;
}
}
@ -125,8 +124,8 @@ final class ManiphestTransactionSaveController extends ManiphestController {
if (!$user_owns_task) {
// If we aren't making the user the new task owner and they aren't the
// existing task owner, add them to CC unless they're aleady CC'd.
if (!in_array($user->getPHID(), $task->getSubscriberPHIDs())) {
$implicit_ccs[] = $user->getPHID();
if (!in_array($viewer->getPHID(), $task->getSubscriberPHIDs())) {
$implicit_ccs[] = $viewer->getPHID();
}
}
@ -164,7 +163,7 @@ final class ManiphestTransactionSaveController extends ManiphestController {
'new' => false,
'transactions' => $transactions,
));
$event->setUser($user);
$event->setUser($viewer);
$event->setAphrontRequest($request);
PhutilEventEngine::dispatchEvent($event);
@ -172,7 +171,7 @@ final class ManiphestTransactionSaveController extends ManiphestController {
$transactions = $event->getValue('transactions');
$editor = id(new ManiphestTransactionEditor())
->setActor($user)
->setActor($viewer)
->setContentSourceFromRequest($request)
->setContinueOnMissingFields(true)
->setContinueOnNoEffect($request->isContinueRequest());
@ -187,7 +186,7 @@ final class ManiphestTransactionSaveController extends ManiphestController {
$draft = id(new PhabricatorDraft())->loadOneWhere(
'authorPHID = %s AND draftKey = %s',
$user->getPHID(),
$viewer->getPHID(),
$task->getPHID());
if ($draft) {
$draft->delete();
@ -200,7 +199,7 @@ final class ManiphestTransactionSaveController extends ManiphestController {
'new' => false,
'transactions' => $transactions,
));
$event->setUser($user);
$event->setUser($viewer);
$event->setAphrontRequest($request);
PhutilEventEngine::dispatchEvent($event);