From 8ba8a459383cdc86c0eebed2db77a435555dc6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Mon, 15 Feb 2016 12:24:23 +0100 Subject: [PATCH] FEATURE: add commands for creating new user and changing password of existing one. This commit adds two new artisan commants user:new and user:change-password. --- app/Console/Commands/ChangePassword.php | 48 +++++++++++++++++++++++ app/Console/Commands/Inspire.php | 33 ---------------- app/Console/Commands/NewUser.php | 52 +++++++++++++++++++++++++ app/Console/Kernel.php | 3 +- 4 files changed, 102 insertions(+), 34 deletions(-) create mode 100644 app/Console/Commands/ChangePassword.php delete mode 100644 app/Console/Commands/Inspire.php create mode 100644 app/Console/Commands/NewUser.php diff --git a/app/Console/Commands/ChangePassword.php b/app/Console/Commands/ChangePassword.php new file mode 100644 index 00000000..e7a5ff21 --- /dev/null +++ b/app/Console/Commands/ChangePassword.php @@ -0,0 +1,48 @@ +argument('userID'); + $newPassword = $this->argument('newPassword'); + + try { + $user = User::findOrFail($id); + } catch (ModelNotFoundException $e) { + $this->error('Invalid user ID ' . $id . '. Please see table `users` for correct IDs.'); + exit(1); + } + + // set new password + $user->password = Hash::make($newPassword); + $user->save(); + + $this->info('Password successfully changed.'); + } +} diff --git a/app/Console/Commands/Inspire.php b/app/Console/Commands/Inspire.php deleted file mode 100644 index db9ab854..00000000 --- a/app/Console/Commands/Inspire.php +++ /dev/null @@ -1,33 +0,0 @@ -comment(PHP_EOL.Inspiring::quote().PHP_EOL); - } -} diff --git a/app/Console/Commands/NewUser.php b/app/Console/Commands/NewUser.php new file mode 100644 index 00000000..eb869777 --- /dev/null +++ b/app/Console/Commands/NewUser.php @@ -0,0 +1,52 @@ +argument('email'); + $password = $this->argument('password'); + $role = $this->argument('role'); + + // check if given role is valid + $roles = UserRoles::getSimple(); + if (!in_array($role, $roles)) { + throw new InvalidArgumentException('Invalid role specified. valid roles are: ' . implode(', ', $roles)); + } + + // create new user + $user = new User(); + $user->username = $user->email = $email; + $user->password = Hash::make($password); + $user->role = $role; + $user->save(); + + $this->info('User ' . $email . ' successfully created.'); + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 71c519d3..53a0ead5 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -13,7 +13,8 @@ class Kernel extends ConsoleKernel * @var array */ protected $commands = [ - // Commands\Inspire::class, + Commands\NewUser::class, + Commands\ChangePassword::class ]; /**