CreateUserCommand.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Dcat\Admin\Console;
  3. use Illuminate\Console\Command;
  4. class CreateUserCommand extends Command
  5. {
  6. /**
  7. * The name and signature of the console command.
  8. *
  9. * @var string
  10. */
  11. protected $signature = 'admin:create-user';
  12. /**
  13. * The console command description.
  14. *
  15. * @var string
  16. */
  17. protected $description = 'Create a admin user';
  18. /**
  19. * Execute the console command.
  20. */
  21. public function handle()
  22. {
  23. if (! config('app.debug')) {
  24. $this->error('Permission deny!');
  25. return;
  26. }
  27. $userModel = config('admin.database.users_model');
  28. $roleModel = config('admin.database.roles_model');
  29. $username = $this->ask('Please enter a username to login');
  30. $password = bcrypt($this->secret('Please enter a password to login'));
  31. $name = $this->ask('Please enter a name to display');
  32. $roles = $roleModel::all();
  33. /** @var array $selected */
  34. $selected = $this->choice('Please choose a role for the user', $roles->pluck('name')->toArray(), null, null, true);
  35. $roles = $roles->filter(function ($role) use ($selected) {
  36. return in_array($role->name, $selected);
  37. });
  38. $user = new $userModel(compact('username', 'password', 'name'));
  39. $user->save();
  40. $user->roles()->attach($roles);
  41. $this->info("User [$name] created successfully.");
  42. }
  43. }