mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-23 05:01:13 +01:00
dd8f588ac5
Summary: Ref T13043. Migrate VCS passwords away from their dedicated table to new the new shared infrastructure. Future changes will migrate account passwords and remove the old table. Test Plan: - Ran migrations. - Cloned with the same password that was configured before the migrations (worked). - Cloned with a different, invalid password (failed). - Changed password. - Cloned with old password (failed). - Cloned with new password (worked). - Deleted password in web UI. - Cloned with old password (failed). - Set password to the same password as it currently is set to (worked, no "unique" collision). - Set password to account password. !!This (incorrectly) works for now until account passwords migrate, since the uniqueness check can't see them yet.!! - Set password to a new unique password. - Cloned (worked). - Revoked the password with `bin/auth revoke`. - Verified web UI shows "no password set". - Verified that pull no longer works. - Verified that I can no longer select the revoked password. - Verified that accounts do not interact: - Tried to set account B to account A's password (worked). - Tried to set account B to a password revoked on account A (worked). - Spot checked the `password` and `passwordtransaction` tables for saniity. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13043 Differential Revision: https://secure.phabricator.com/D18898
22 lines
477 B
PHP
22 lines
477 B
PHP
<?php
|
|
|
|
// Populate VCS passwords (which we copied from the old "VCS Password" table
|
|
// in the last migration) with new PHIDs.
|
|
|
|
$table = new PhabricatorAuthPassword();
|
|
$conn = $table->establishConnection('w');
|
|
|
|
foreach (new LiskMigrationIterator($table) as $row) {
|
|
if ($row->getPHID()) {
|
|
continue;
|
|
}
|
|
|
|
$new_phid = $row->generatePHID();
|
|
|
|
queryfx(
|
|
$conn,
|
|
'UPDATE %T SET phid = %s WHERE id = %d',
|
|
$table->getTableName(),
|
|
$new_phid,
|
|
$row->getID());
|
|
}
|