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 ]; /**