Вы можете сделать это из кода легко ..
$sf_guard_user = sfGuardUserPeer::retrieveByUsername('USERNAME_HERE');
if(is_null($sf_guard_user)){
throw new \Exception('Could not find user');
}
$sf_guard_user->setPassword($password);
$sf_guard_user->save();
$this->logSection("Password change for user: ", $sf_guard_user->getUsername());
Я использую задачу пака.
Создайте файл в проекте/Lib/задачи и назвать его setUserPasswordTask.class.php (имя должно заканчиваться на "Task")
Класс будет выглядеть примерно так:
<?php
class setClientPasswordTask extends sfBaseTask {
/**
* @see sfTask
*/
protected function configure() {
parent::configure();
$this->addArguments(array(
new sfCommandArgument('username', sfCommandArgument::REQUIRED, 'Username of the user to change', null),
new sfCommandArgument('password', sfCommandArgument::REQUIRED, 'Password to set', null)
));
$this->addOptions(array(
new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'prod'),
new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'),
));
$this->namespace = 'guard';
$this->name = 'set-user-password';
$this->briefDescription = 'Changes a User\'s password.';
$this->detailedDescription = 'Changes a User\'s password.';
}
/**
* @see sfTask
*/
protected function execute($arguments = array(), $options = array()) {
// initialize the database connection
$databaseManager = new sfDatabaseManager($this->configuration);
$connection = $databaseManager->getDatabase($options['connection'])->getConnection();
$configuration = ProjectConfiguration::getApplicationConfiguration($options['application'], $options['env'], true);
sfContext::createInstance($configuration);
// Change user password
$username = $arguments['username'];
$password = $arguments['password'];
$sf_guard_user = sfGuardUserPeer::retrieveByUsername('USERNAME_HERE');
if(is_null($sf_guard_user)){
throw new \Exception('Could not find user');
}
$sf_guard_user->setPassword($password);
$sf_guard_user->save();
$this->logSection("Password changed for user: ", $sf_guard_user->getUsername());
}
}
?>
Спасибо за это! Я отдам его. До тех пор любая помощь с БД была бы большой. – Rich
Чтобы изменить его из db, вы можете определить соль, например «123», и установить поле солей с этим значением, затем рассчитать значение sha1 123 плюс требуемый пароль. "123password". установите для этого пароля значение пароля и пароль «0» – SuitedSloth
Вы можете использовать это для расчета значений SHA1: http://hash.online-convert.com/sha1-generator – SuitedSloth