* [FIX] Fixes #178. Update accounts' history master password hash when upgrading from previous versions. Thanks to @TitovLab

* [MOD] Modified account history select box behavior when account id matches history id.
This commit is contained in:
nuxsmin
2015-12-13 11:05:22 +01:00
parent 225351bb75
commit 024aaac889
4 changed files with 26 additions and 5 deletions

View File

@@ -510,4 +510,22 @@ class AccountHistory extends AccountBase implements AccountInterface
return $queryRes->acchistory_accountId;
}
/**
* Actualiza el hash de las cuentas en el histórico.
*
* @param $newHash string El nuevo hash de la clave maestra
* @return bool
*/
public static function updateAccountsMPassHash($newHash)
{
$query = 'UPDATE accHistory SET '
. 'acchistory_mPassHash = :newHash '
. 'WHERE acchistory_mPassHash = :oldHash';
$data['newHash'] = $newHash;
$data['oldHash'] = ConfigDB::getValue('masterPwd');
return DB::getQuery($query, __FUNCTION__, $data);
}
}

View File

@@ -118,7 +118,10 @@ class Crypt
$check = (hash("sha256", substr($checkedHash, 0, 64) . $pwd) == substr($checkedHash, 64, 64));
if ($check) {
ConfigDB::setValue('masterPwd', self::mkHashPassword($pwd));
$newHash = self::mkHashPassword($pwd);
AccountHistory::updateAccountsMPassHash($newHash);
ConfigDB::setValue('masterPwd', $newHash);
Log::writeNewLog(_('Aviso'), _('Se ha regenerado el HASH de clave maestra. No es necesaria ninguna acción.'));
}

View File

@@ -226,7 +226,7 @@
<option value="0"></option>
<?php foreach ($historyData as $id => $name): ?>
<option
value="<?php echo $id; ?>" <?php echo ($gotData && $id === $accountId) ? 'selected' : ''; ?>><?php echo $name; ?></option>
value="<?php echo $id; ?>" <?php echo ($gotData && $accountIsHistory && $id === $accountId) ? 'selected' : ''; ?>><?php echo $name; ?></option>
<?php endforeach; ?>
</select>
<script>

View File

@@ -267,10 +267,10 @@
<td class="descField"><?php echo _('Historial'); ?></td>
<td class="valField">
<select id="selHistory" name="historyId" class="select-box">
<option value="0"></option>
<?php foreach ($historyData as $id => $name): ?>
<option value=""></option>
<?php foreach ($historyData as $id => $date): ?>
<option
value="<?php echo $id; ?>" <?php echo ($gotData && $id === $accountId) ? 'selected' : ''; ?>><?php echo $name; ?></option>
value="<?php echo $id; ?>" <?php echo ($gotData && $accountIsHistory && $id === $accountId) ? 'selected' : ''; ?>><?php echo $date; ?></option>
<?php endforeach; ?>
</select>
<script>