mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-13 17:16:14 +01:00
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
// See T13208. It was previously possible to replace a saved query with another
|
||
|
// saved query, causing loss of the first query. Find projects which have their
|
||
|
// default query set to an invalid query and throw the setting away.
|
||
|
|
||
|
$viewer = PhabricatorUser::getOmnipotentUser();
|
||
|
|
||
|
$table = new PhabricatorProject();
|
||
|
$conn = $table->establishConnection('w');
|
||
|
|
||
|
$iterator = new LiskMigrationIterator($table);
|
||
|
$search_engine = id(new ManiphestTaskSearchEngine())
|
||
|
->setViewer($viewer);
|
||
|
|
||
|
foreach ($iterator as $project) {
|
||
|
$default_filter = $project->getDefaultWorkboardFilter();
|
||
|
if (!strlen($default_filter)) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if ($search_engine->isBuiltinQuery($default_filter)) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
$saved = id(new PhabricatorSavedQueryQuery())
|
||
|
->setViewer($viewer)
|
||
|
->withQueryKeys(array($default_filter))
|
||
|
->executeOne();
|
||
|
if ($saved) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
$properties = $project->getProperties();
|
||
|
unset($properties['workboard.filter.default']);
|
||
|
|
||
|
queryfx(
|
||
|
$conn,
|
||
|
'UPDATE %T SET properties = %s WHERE id = %d',
|
||
|
$table->getTableName(),
|
||
|
phutil_json_encode($properties),
|
||
|
$project->getID());
|
||
|
|
||
|
echo tsprintf(
|
||
|
"%s\n",
|
||
|
pht(
|
||
|
'Project ("%s") had an invalid query saved as a default workboard '.
|
||
|
'query. The query has been reset. See T13208.',
|
||
|
$project->getDisplayName()));
|
||
|
}
|