* Date: 2020/2/4
* Time: 12:47
*/
namespace app\common\command;
use app\admin\model\Admin;
use app\admin\model\AdminCate;
use app\admin\model\AdminMenu;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
class ResetPassWord extends Command
{
/**
* 重置管理员账号密码
* php think ResetPassWord
*/
protected function configure()
{
$this->setName('ResetPassWord')
->addArgument('new_pass', Argument::OPTIONAL, "input new pass", "123456")//重置密码
->addOption('new_permission', 'p', Option::VALUE_NONE, 'reset permission')//是否重置admin权限
->setDescription('reset admin password');
}
protected function execute(Input $input, Output $output)
{
$newpass = $input->getArgument("new_pass");
$data = ['name' => 'admin', 'admin_cate_id' => 1, 'password' => password($newpass)];
$admin = Admin::get(1);
if (!$admin) {
$data['nickname'] = systemName();
$admin = new Admin();
}
$res = $admin->save($data);
if ($res) {
$output->writeln("reset password success (admin new password : " . $newpass . ")");
} else {
$output->writeln("reset password fail");
}
if ($input->getOption("new_permission")) {
$cate = AdminCate::get(1);
if (!$cate) {
$cate = new AdminCate();
}
$res = $cate->save(['name' => '超级管理员', 'permissions' => implode(',', (new AdminMenu())->column('id'))]);
if ($res) {
$output->writeln("reset permissions success");
} else {
$output->writeln("reset permissions fail");
}
}
}
}