Es posible que por política de contraseñas nuestra contraseña venza (de forma periódica) y no podamos acceder al sistema.
Si un usuario administrador tiene acceso podrá generar una nueva contraseña para otro usuario.
Por ello si queremos recuperar la contraseña de administrador podemos hacer lo siguiente:
Cargamos el siguiente script PHP en la carpeta public_html o raíz de nuestro CRM con el nombre PasswordReset.php (por ejemplo)
<?php
/**
* Password reset
* @package YetiForce
* @copyright YetiForce Sp. z o.o.
* @license YetiForce Public License 3.0 (yetiforce.com)
* @author Mariusz Krzaczkowski <m.krzaczkowski@yetiforce.com>
* @version >= 4.3.0
*/
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
} else {
chdir(__DIR__ . '/../');
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
} else {
chdir(__DIR__ . '/../../');
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
}
}
}
$userId = 1;
$userName = '';
$password = '';
if ($userName) {
$userId = \App\User::getUserIdByName($userName);
}
if (!$password) {
$password = \App\Encryption::generateUserPassword();
}
$userRecordModel = Users_Record_Model::getInstanceById($userId, 'Users');
$userRecordModel->set('changeUserPassword', true);
$userRecordModel->set('user_password', $password);
$userRecordModel->set('date_password_change', date('Y-m-d H:i:s'));
$userRecordModel->set('force_password_change', 0);
$userRecordModel->save();
echo 'Login: ' . $userRecordModel->get('user_name') . '<br>Password: ' . $password . '<br>Full name: ' . $userRecordModel->getName();
/**
* Password reset
* @package YetiForce
* @copyright YetiForce Sp. z o.o.
* @license YetiForce Public License 3.0 (yetiforce.com)
* @author Mariusz Krzaczkowski <m.krzaczkowski@yetiforce.com>
* @version >= 4.3.0
*/
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
} else {
chdir(__DIR__ . '/../');
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
} else {
chdir(__DIR__ . '/../../');
if (file_exists('include/main/WebUI.php')) {
include_once 'include/main/WebUI.php';
}
}
}
$userId = 1;
$userName = '';
$password = '';
if ($userName) {
$userId = \App\User::getUserIdByName($userName);
}
if (!$password) {
$password = \App\Encryption::generateUserPassword();
}
$userRecordModel = Users_Record_Model::getInstanceById($userId, 'Users');
$userRecordModel->set('changeUserPassword', true);
$userRecordModel->set('user_password', $password);
$userRecordModel->set('date_password_change', date('Y-m-d H:i:s'));
$userRecordModel->set('force_password_change', 0);
$userRecordModel->save();
echo 'Login: ' . $userRecordModel->get('user_name') . '<br>Password: ' . $password . '<br>Full name: ' . $userRecordModel->getName();
Sustituimos el id o el nombre de usuario por el objetivo.
Y ejecutamos el script
midominio.com/PasswordReset.php
El resultado será como el siguiente, generará una contraseña aleatoria.

Fuente:
https://github.com/YetiForceCompany/YetiForceScripts/tree/master/PasswordReset