finish admin update password command line
This commit is contained in:
@@ -95,11 +95,10 @@ class Administrator extends BaseAction implements EventSubscriberInterface
|
|||||||
|
|
||||||
public function updatePassword(AdministratorUpdatePasswordEvent $event)
|
public function updatePassword(AdministratorUpdatePasswordEvent $event)
|
||||||
{
|
{
|
||||||
if (null !== $admin = AdminQuery::create()->filterByLogin($event->getLogin())->findOne()) {
|
$admin = $event->getAdmin();
|
||||||
$admin->setPassword($event->getPassword())
|
$admin->setPassword($event->getPassword())
|
||||||
->save();
|
->save();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
|
|||||||
@@ -22,8 +22,15 @@
|
|||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
|
|
||||||
namespace Thelia\Command;
|
namespace Thelia\Command;
|
||||||
|
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
use Thelia\Core\Event\Administrator\AdministratorUpdatePasswordEvent;
|
||||||
|
use Thelia\Core\Event\TheliaEvents;
|
||||||
|
use Thelia\Model\AdminQuery;
|
||||||
|
use Thelia\Tools\Password;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,11 +38,11 @@ use Symfony\Component\Console\Input\InputOption;
|
|||||||
*
|
*
|
||||||
* php Thelia admin:updatePassword
|
* php Thelia admin:updatePassword
|
||||||
*
|
*
|
||||||
* Class AdminUpdatePassword
|
* Class AdminUpdatePasswordCommand
|
||||||
* @package Thelia\Command
|
* @package Thelia\Command
|
||||||
* @author Manuel Raynaud <mraynaud@openstudio.fr>
|
* @author Manuel Raynaud <mraynaud@openstudio.fr>
|
||||||
*/
|
*/
|
||||||
class AdminUpdatePassword extends ContainerAwareCommand
|
class AdminUpdatePasswordCommand extends ContainerAwareCommand
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -60,4 +67,34 @@ class AdminUpdatePassword extends ContainerAwareCommand
|
|||||||
)
|
)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function execute(InputInterface $input, OutputInterface $output)
|
||||||
|
{
|
||||||
|
$login = $input->getArgument('login');
|
||||||
|
|
||||||
|
|
||||||
|
if (null === $admin = AdminQuery::create()->filterByLogin($login)->findOne()) {
|
||||||
|
throw new \RuntimeException(sprintf('Admin with login %s does not exists', $login));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$password = $input->getOption('password') ?: Password::generateRandom();
|
||||||
|
|
||||||
|
$event = new AdministratorUpdatePasswordEvent($admin);
|
||||||
|
$event->setPassword($password);
|
||||||
|
|
||||||
|
|
||||||
|
$this->
|
||||||
|
getContainer()
|
||||||
|
->get('event_dispatcher')
|
||||||
|
->dispatch(TheliaEvents::ADMINISTRATOR_UPDATEPASSWORD, $event);
|
||||||
|
|
||||||
|
$output->writeln(array(
|
||||||
|
'',
|
||||||
|
sprintf('<info>admin %s password updated</info>', $login),
|
||||||
|
sprintf('<info>new password is : %s</info>', $password),
|
||||||
|
''
|
||||||
|
));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -182,6 +182,7 @@
|
|||||||
<command class="Thelia\Command\CreateAdminUser"/>
|
<command class="Thelia\Command\CreateAdminUser"/>
|
||||||
<command class="Thelia\Command\ReloadDatabaseCommand"/>
|
<command class="Thelia\Command\ReloadDatabaseCommand"/>
|
||||||
<command class="Thelia\Command\GenerateResources"/>
|
<command class="Thelia\Command\GenerateResources"/>
|
||||||
|
<command class="Thelia\Command\AdminUpdatePasswordCommand"/>
|
||||||
</commands>
|
</commands>
|
||||||
|
|
||||||
<services>
|
<services>
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
namespace Thelia\Core\Event\Administrator;
|
namespace Thelia\Core\Event\Administrator;
|
||||||
use Thelia\Core\Event\ActionEvent;
|
use Thelia\Core\Event\ActionEvent;
|
||||||
|
use Thelia\Model\Admin;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -34,18 +35,18 @@ class AdministratorUpdatePasswordEvent extends ActionEvent
|
|||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string administrator login
|
* @var \Thelia\Model\Admin
|
||||||
*/
|
*/
|
||||||
protected $login;
|
protected $admin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string new administrator password
|
* @var string new administrator password
|
||||||
*/
|
*/
|
||||||
protected $password;
|
protected $password;
|
||||||
|
|
||||||
public function __construct($login)
|
public function __construct(Admin $admin)
|
||||||
{
|
{
|
||||||
$this->login = $login;
|
$this->admin = $admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -65,20 +66,22 @@ class AdministratorUpdatePasswordEvent extends ActionEvent
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $login
|
* @param \Thelia\Model\Admin $admin
|
||||||
*/
|
*/
|
||||||
public function setLogin($login)
|
public function setAdmin(Admin $admin)
|
||||||
{
|
{
|
||||||
$this->login = $login;
|
$this->admin = $admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return \Thelia\Model\Admin
|
||||||
*/
|
*/
|
||||||
public function getLogin()
|
public function getAdmin()
|
||||||
{
|
{
|
||||||
return $this->login;
|
return $this->admin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>string
|
||||||
|
|
||||||
<config xmlns="http://thelia.net/schema/dic/config"
|
<config xmlns="http://thelia.net/schema/dic/config"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
|||||||
Reference in New Issue
Block a user