Changeset View
Changeset View
Standalone View
Standalone View
resources/sql/autopatches/20170824.search.01.saved.php
- This file was added.
<?php | |||||
// Before T12956, normal users could reorder (and disable) builtin queries. | |||||
// After that change, there is a single global order which can only be | |||||
// changed by administrators. | |||||
// This migration removes the rows which store individual reordering and | |||||
// disabling of queries. If a user had reordered queries in such a way that | |||||
// a builtin query was at the top of the list, we try to write a preference | |||||
// which pins that query as their default to minimize disruption. | |||||
$table = new PhabricatorNamedQuery(); | |||||
$conn = $table->establishConnection('w'); | |||||
$config_table = new PhabricatorNamedQueryConfig(); | |||||
foreach (new LiskMigrationIterator($table) as $named_query) { | |||||
// If this isn't a builtin query, it isn't changing. Leave it alone. | |||||
if (!$named_query->getIsBuiltin()) { | |||||
continue; | |||||
} | |||||
// If the user reordered things but left a builtin query at the top, pin | |||||
// the query before we remove the row. | |||||
if ($named_query->getSequence() == 1) { | |||||
queryfx( | |||||
$conn, | |||||
'INSERT IGNORE INTO %T | |||||
(engineClassName, scopePHID, properties, dateCreated, dateModified) | |||||
VALUES | |||||
(%s, %s, %s, %d, %d)', | |||||
$config_table->getTableName(), | |||||
$named_query->getEngineClassName(), | |||||
$named_query->getUserPHID(), | |||||
phutil_json_encode( | |||||
array( | |||||
PhabricatorNamedQueryConfig::PROPERTY_PINNED => | |||||
$named_query->getQueryKey(), | |||||
)), | |||||
PhabricatorTime::getNow(), | |||||
PhabricatorTime::getNow()); | |||||
} | |||||
$named_query->delete(); | |||||
} |