First Commit
This commit is contained in:
Executable
+80
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Question\Question;
|
||||
use Modules\Auth\Models\User;
|
||||
|
||||
class CreateUserCommand extends Command
|
||||
{
|
||||
protected static $defaultName = 'user:create';
|
||||
protected static $defaultDescription = 'Creates a new user';
|
||||
|
||||
protected function configure(): void
|
||||
{
|
||||
$this
|
||||
->addArgument('email', InputArgument::OPTIONAL, 'User email');
|
||||
}
|
||||
|
||||
protected function execute(InputInterface $input, OutputInterface $output): int
|
||||
{
|
||||
$helper = $this->getHelper('question');
|
||||
|
||||
// Email
|
||||
$email = $input->getArgument('email');
|
||||
if (!$email) {
|
||||
$question = new Question('Email do usuário: ');
|
||||
$email = $helper->ask($input, $output, $question);
|
||||
}
|
||||
|
||||
if (User::where('users_email', $email)->exists()) {
|
||||
$output->writeln("<error>Já existe um usuário com o email {$email}</error>");
|
||||
return Command::FAILURE;
|
||||
}
|
||||
|
||||
// Name
|
||||
$question = new Question('Nome do usuário: ');
|
||||
$name = $helper->ask($input, $output, $question);
|
||||
|
||||
// Password
|
||||
$question = new Question('Senha: ');
|
||||
$question->setHidden(true);
|
||||
$question->setHiddenFallback(false);
|
||||
$password = $helper->ask($input, $output, $question);
|
||||
|
||||
// Role
|
||||
$question = new Question('Role (padrão: user): ', 'user');
|
||||
$role = $helper->ask($input, $output, $question);
|
||||
|
||||
// Bus ID
|
||||
$question = new Question('ID Bus (opcional): ');
|
||||
$busId = $helper->ask($input, $output, $question);
|
||||
|
||||
try {
|
||||
$user = new User();
|
||||
$user->users_name = $name;
|
||||
$user->users_email = $email;
|
||||
$user->users_password = password_hash($password, PASSWORD_DEFAULT);
|
||||
$user->users_role = $role;
|
||||
$user->users_bus_id = $busId;
|
||||
$user->users_status = 'active';
|
||||
$user->save();
|
||||
|
||||
$output->writeln('<info>Usuário criado com sucesso!</info>');
|
||||
$output->writeln("ID: {$user->users_id}");
|
||||
$output->writeln("Nome: {$user->users_name}");
|
||||
$output->writeln("Email: {$user->users_email}");
|
||||
$output->writeln("Role: {$user->users_role}");
|
||||
$output->writeln("ID Bus: " . ($user->users_bus_id ?? '-'));
|
||||
|
||||
return Command::SUCCESS;
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("<error>Erro ao criar usuário: " . $e->getMessage() . "</error>");
|
||||
return Command::FAILURE;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user