function hybridauth_update_7006 in HybridAuth Social Login 7.2
Remove users passwords stored in plaintext from hybridauth_identity DB table.
File
- ./
hybridauth.install, line 300 - Install, update and uninstall functions for the HybridAuth module.
Code
function hybridauth_update_7006(&$sandbox) {
// Calculate the total number of HybridAuth identities.
if (!isset($sandbox['total'])) {
$sandbox['total'] = db_select('hybridauth_identity', 'ha_id')
->condition('data', '%' . db_like('pass') . '%', 'LIKE')
->countQuery()
->execute()
->fetchField();
if (!$sandbox['total']) {
return t('There are no HybridAuth identities to process.');
}
$sandbox['current'] = 0;
}
// Process this number of HybridAuth identities per pass.
$identities_per_pass = 10;
// Get HybridAuth identities ids for one pass.
$result = db_select('hybridauth_identity', 'ha_id')
->fields('ha_id', array(
'id',
))
->condition('data', '%' . db_like('pass') . '%', 'LIKE')
->orderBy('ha_id.id')
->range($sandbox['current'], $identities_per_pass)
->execute();
// Remove user passwords from HybridAuth identities.
foreach ($result as $row) {
$identity = _hybridauth_identity_load_by_id($row->id);
$data = unserialize($identity['data']);
if (isset($data['pass'])) {
unset($data['pass']);
_hybridauth_identity_save($data, $identity['uid']);
}
$sandbox['current']++;
}
$sandbox['#finished'] = $sandbox['current'] / $sandbox['total'];
if ($sandbox['#finished'] === 1) {
return t('@total HybridAuth identities were processed.', array(
'@total' => $sandbox['total'],
));
}
}