- Copiamos el archivo ResetPassword.phpfile, que esta en modules/migration a la carpeta raiz
- Copiar la clave única de config.inc.php y lo copiamos a nuestro archivo.
- Renombranos el archivo ResetPassword.phpfile y no quedaría así ResetPassword.php
- Corremos el archivo en el buscador
- Borramos el archivo.
Y obtenemos el brillante resultado que no pasa nada, jajajaja. Vtiger tiene un gran problema, y es que falta mucha documentación y ayuda, para resolver el problema del que estamos hablando tenemos que reemplazar el contenido de ResetPassword.php por este:
<?php require_once 'config.php'; require_once 'include/utils/utils.php'; resetUserPasswords(); function resetUserPasswords() { $db = PearDatabase::getInstance(); $sql = 'select user_name, id, crypt_type from vtiger_users'; $result = $db->pquery($sql, array()); $rowList = $result->GetRows(); foreach ($rowList as $row) { $cryptType = $row['crypt_type']; if(strtolower($cryptType) == 'md5' && version_compare(PHP_VERSION, '5.3.0') >= 0) { $cryptType = 'PHP5.3MD5'; } $encryptedPassword = getEncryptedPassword($row['user_name'], $cryptType, $row['user_name']); $userId = $row['id']; $sql = "update vtiger_users set user_password=?,crypt_type=? where id=?"; $updateResult = $db->pquery($sql, array($encryptedPassword, $cryptType, $userId)); if(!is_object($updateResult)) { $_SESSION['migration_info']['user_messages'][] = "<div>". "<span style='color: red;font-weight: bold;width: 30em;'>Failed: </span>". "$sql<br />".var_export(array($encryptedPassword, $userId)).'</div>'; } } } function getEncryptedPassword($userName, $cryptType, $userPassword) { $salt = substr($userName, 0, 2); // For more details on salt format look at: http://in.php.net/crypt if($cryptType == 'MD5') { $salt = '$1$' . $salt . '$'; } elseif($cryptType == 'BLOWFISH') { $salt = '$2$' . $salt . '$'; } elseif($cryptType == 'PHP5.3MD5') { //only change salt for php 5.3 or higher version for backward //compactibility. //crypt API is lot stricter in taking the value for salt. $salt = '$1$' . str_pad($salt, 9, '0'); } $computedEncryptedPassword = crypt($userPassword, $salt); return $computedEncryptedPassword; } ?>Ya con esto se resetean las claves a el mismo nombre de usuario, si tienen algun problema pueden dejar un comentario.
Buenas amigo, me encanto el detallado que has hecho con el vtiger, quiero implementarlo en mi empresa, mi pregunta es... vas a seguir actualizando tu pagina con nuevos post acerca de este tema? para ejecutarlo en la compañia y no tener algunos vacion a futuro gracias
ResponderEliminarsi, muy pronto seguire publicando más
ResponderEliminarMuchas gracias por el script, me funcionó perfectamente!
ResponderEliminarSaludos