1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-19 13:22:42 +01:00

Fix some issue with "Move on Workboard" and workboard-less or invisible projects

Summary:
Ref T6027. Fixes T10734.

  - If one of the projects a task is tagged with isn't visible to the user or doesn't have a board, it won't have columns.
  - Don't show options for projects with disabled boards.

Test Plan:
  - Viewed task with project with no columns; no fatal.
  - Viewed task with project with disabled board; no options to move on that board.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10734, T6027

Differential Revision: https://secure.phabricator.com/D15640
This commit is contained in:
epriestley 2016-04-06 10:05:07 -07:00
parent 4d32c990ab
commit 2ae8e57cf1

View file

@ -394,7 +394,6 @@ EODOCS
->setViewer($viewer) ->setViewer($viewer)
->setBoardPHIDs($board_phids) ->setBoardPHIDs($board_phids)
->setObjectPHIDs(array($task->getPHID())) ->setObjectPHIDs(array($task->getPHID()))
->setFetchAllBoards(true)
->executeLayout(); ->executeLayout();
$map = array(); $map = array();
@ -403,6 +402,14 @@ EODOCS
$in_columns = mpull($in_columns, null, 'getPHID'); $in_columns = mpull($in_columns, null, 'getPHID');
$all_columns = $layout_engine->getColumns($board_phid); $all_columns = $layout_engine->getColumns($board_phid);
if (!$all_columns) {
// This could be a project with no workboard, or a project the viewer
// does not have permission to see.
continue;
}
$board = head($all_columns)->getProject();
$options = array(); $options = array();
foreach ($all_columns as $column) { foreach ($all_columns as $column) {
$name = $column->getDisplayName(); $name = $column->getDisplayName();
@ -439,7 +446,7 @@ EODOCS
} }
$map[] = array( $map[] = array(
'label' => head($all_columns)->getProject()->getDisplayName(), 'label' => $board->getDisplayName(),
'options' => $options, 'options' => $options,
); );
} }