Page MenuHomePhorge

20160601.user.02.copyprefs.php
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

20160601.user.02.copyprefs.php

<?php
// Move timezone, translation and pronoun from the user object to preferences
// so they can be defaulted and edited like other settings.
$table = new PhabricatorUser();
$conn_w = $table->establishConnection('w');
$table_name = $table->getTableName();
$prefs_table = new PhabricatorUserPreferences();
foreach (new LiskRawMigrationIterator($conn_w, $table_name) as $row) {
$phid = $row['phid'];
$pref_row = queryfx_one(
$conn_w,
'SELECT preferences FROM %T WHERE userPHID = %s',
$prefs_table->getTableName(),
$phid);
if ($pref_row) {
try {
$prefs = phutil_json_decode($pref_row['preferences']);
} catch (Exception $ex) {
$prefs = array();
}
} else {
$prefs = array();
}
$zone = $row['timezoneIdentifier'];
if (strlen($zone)) {
$prefs[PhabricatorTimezoneSetting::SETTINGKEY] = $zone;
}
$pronoun = $row['sex'];
if (strlen($pronoun)) {
$prefs[PhabricatorPronounSetting::SETTINGKEY] = $pronoun;
}
$translation = $row['translation'];
if (strlen($translation)) {
$prefs[PhabricatorTranslationSetting::SETTINGKEY] = $translation;
}
if ($prefs) {
queryfx(
$conn_w,
'INSERT INTO %T (phid, userPHID, preferences, dateModified, dateCreated)
VALUES (%s, %s, %s, UNIX_TIMESTAMP(), UNIX_TIMESTAMP())
ON DUPLICATE KEY UPDATE preferences = VALUES(preferences)',
$prefs_table->getTableName(),
$prefs_table->generatePHID(),
$phid,
phutil_json_encode($prefs));
}
}
$prefs_key = PhabricatorUserPreferencesCacheType::KEY_PREFERENCES;
PhabricatorUserCache::clearCacheForAllUsers($prefs_key);

File Metadata

Mime Type
text/x-php
Expires
Mon, Jun 30, 7:34 AM (1 d, 20 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
273221
Default Alt Text
20160601.user.02.copyprefs.php (1 KB)

Event Timeline