mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-02 03:32:42 +01:00
(stable) Don't try to emit project board update events if there are no projects to update
Summary: Ref T4900. We may execute a bad query here if the task has no projects at all. Test Plan: Edited a task with no new or old projects. Instead of an exception, things worked. Maniphest Tasks: T4900 Differential Revision: https://secure.phabricator.com/D20689
This commit is contained in:
parent
6f6ae61f00
commit
8e1600ba83
1 changed files with 23 additions and 21 deletions
|
@ -879,34 +879,36 @@ final class ManiphestTransactionEditor
|
||||||
$project_phids = array_fuse($old_phids) + array_fuse($new_phids);
|
$project_phids = array_fuse($old_phids) + array_fuse($new_phids);
|
||||||
$project_phids = array_keys($project_phids);
|
$project_phids = array_keys($project_phids);
|
||||||
|
|
||||||
$projects = id(new PhabricatorProjectQuery())
|
if ($project_phids) {
|
||||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
$projects = id(new PhabricatorProjectQuery())
|
||||||
->withPHIDs($project_phids)
|
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||||
->execute();
|
->withPHIDs($project_phids)
|
||||||
|
->execute();
|
||||||
|
|
||||||
$notify_projects = array();
|
$notify_projects = array();
|
||||||
foreach ($projects as $project) {
|
foreach ($projects as $project) {
|
||||||
$notify_projects[$project->getPHID()] = $project;
|
$notify_projects[$project->getPHID()] = $project;
|
||||||
foreach ($project->getAncestorProjects() as $ancestor) {
|
foreach ($project->getAncestorProjects() as $ancestor) {
|
||||||
$notify_projects[$ancestor->getPHID()] = $ancestor;
|
$notify_projects[$ancestor->getPHID()] = $ancestor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($notify_projects as $key => $project) {
|
foreach ($notify_projects as $key => $project) {
|
||||||
if (!$project->getHasWorkboard()) {
|
if (!$project->getHasWorkboard()) {
|
||||||
unset($notify_projects[$key]);
|
unset($notify_projects[$key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
$notify_phids = array_keys($notify_projects);
|
$notify_phids = array_keys($notify_projects);
|
||||||
|
|
||||||
if ($notify_phids) {
|
if ($notify_phids) {
|
||||||
$data = array(
|
$data = array(
|
||||||
'type' => 'workboards',
|
'type' => 'workboards',
|
||||||
'subscribers' => $notify_phids,
|
'subscribers' => $notify_phids,
|
||||||
);
|
);
|
||||||
|
|
||||||
PhabricatorNotificationClient::tryToPostMessage($data);
|
PhabricatorNotificationClient::tryToPostMessage($data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue