Require password confirmation in console installer

Refs #405.
This commit is contained in:
Franz Liedke 2015-09-04 11:57:11 +02:00
parent fc7fc41383
commit b26c67dd3c
3 changed files with 27 additions and 15 deletions

View File

@ -42,6 +42,7 @@ class DataFromUser implements ProvidesData
'database' => $this->ask('Database name:'), 'database' => $this->ask('Database name:'),
'username' => $this->ask('Database user:'), 'username' => $this->ask('Database user:'),
'password' => $this->secret('Database password:'), 'password' => $this->secret('Database password:'),
'password_confirmation' => $this->secret('Database password (confirmation):'),
'prefix' => $this->ask('Prefix:'), 'prefix' => $this->ask('Prefix:'),
]; ];
} }
@ -56,6 +57,7 @@ class DataFromUser implements ProvidesData
return [ return [
'username' => $this->ask('Admin username:'), 'username' => $this->ask('Admin username:'),
'password' => $this->secret('Admin password:'), 'password' => $this->secret('Admin password:'),
'password_confirmation' => $this->secret('Admin password (confirmation):'),
'email' => $this->ask('Admin email address:'), 'email' => $this->ask('Admin email address:'),
]; ];
} }

View File

@ -18,6 +18,7 @@ class DefaultData implements ProvidesData
'database' => 'flarum', 'database' => 'flarum',
'username' => 'root', 'username' => 'root',
'password' => 'root', 'password' => 'root',
'password_confirmation' => 'root',
'prefix' => '', 'prefix' => '',
]; ];
@ -26,6 +27,7 @@ class DefaultData implements ProvidesData
protected $adminUser = [ protected $adminUser = [
'username' => 'admin', 'username' => 'admin',
'password' => 'admin', 'password' => 'admin',
'password_confirmation' => 'admin',
'email' => 'admin@example.com', 'email' => 'admin@example.com',
]; ];

View File

@ -128,6 +128,10 @@ class InstallCommand extends Command
{ {
$dbConfig = $this->dataSource->getDatabaseConfiguration(); $dbConfig = $this->dataSource->getDatabaseConfiguration();
if ($dbConfig['password'] !== $dbConfig['password_confirmation']) {
throw new Exception('The password did not match it\'s confirmation.');
}
$config = [ $config = [
'debug' => true, 'debug' => true,
'database' => [ 'database' => [
@ -247,6 +251,10 @@ class InstallCommand extends Command
{ {
$admin = $this->dataSource->getAdminUser(); $admin = $this->dataSource->getAdminUser();
if ($admin['password'] !== $admin['password_confirmation']) {
throw new Exception('The password did not match it\'s confirmation.');
}
$this->info('Creating admin user '.$admin['username']); $this->info('Creating admin user '.$admin['username']);
User::unguard(); User::unguard();