diff --git a/app/Http/Controllers/InstallerController.php b/app/Http/Controllers/InstallerController.php index 1bce3634..069299a5 100644 --- a/app/Http/Controllers/InstallerController.php +++ b/app/Http/Controllers/InstallerController.php @@ -14,16 +14,7 @@ class InstallerController extends Controller /** * InstallerController constructor. */ - public function __construct() - { - /** - * If we're already installed kill the request - * @todo Check if DB is installed etc. - */ - if (file_exists(base_path('installed'))) { - abort(403, 'Unauthorized action.'); - } - } + public function __construct(){} /** * Show the application installer @@ -68,6 +59,18 @@ class InstallerController extends Controller 'pdo_pgsql', ]; + /** + * If we're already installed display user friendly message and direct them to the appropriate next steps. + * + * @todo Check if DB is installed etc. + * @todo Add some automated checks to see exactly what the state of the install is. Potentially would be nice to + * allow the user to restart the install process + */ + if (file_exists(base_path('installed'))) { + return view('Installer.AlreadyInstalled', $data); + } + + return view('Installer.Installer', $data); } @@ -87,6 +90,14 @@ class InstallerController extends Controller $database['username'] = $request->get('database_username'); $database['password'] = $request->get('database_password'); + $this->validate($request, [ + 'database_type' => 'required', + 'database_host' => 'required', + 'database_name' => 'required', + 'database_username' => 'required', + 'database_password' => 'required']); + + $mail['driver'] = $request->get('mail_driver'); $mail['port'] = $request->get('mail_port'); $mail['username'] = $request->get('mail_username'); diff --git a/resources/lang/en/Installer.php b/resources/lang/en/Installer.php index c84ba20e..a0564155 100644 --- a/resources/lang/en/Installer.php +++ b/resources/lang/en/Installer.php @@ -1,46 +1,50 @@ 'Success, Your connection works!', 'connection_failure' => 'Unable to connect! Please check your settings', - 'app_settings' => 'App settings', - 'application_url' => 'Application URL', - 'database_host' => 'Database Host', - 'database_name' => 'Database Name', - 'database_password' => 'Database Password', - 'database_settings' => 'Database Settings', - 'database_test_connect_failure' => 'Unable to connect. Please check your settings.', - 'database_test_connect_failure_error_message' => 'Error Message', - 'database_test_connect_failure_error_type' => 'Error Type', - 'database_test_connect_failure_message' => 'Unable to connect. Please check your settings.', - 'database_test_connect_success' => 'Success! Database settings are working!', - 'database_type' => 'Database Type', - 'database_username' => 'Database Username', - 'email_settings' => 'Email Settings', - 'files_n_folders_check' => 'Files & Folders Check', - 'install' => 'Install Attendize', - 'mail_encryption' => 'Mail Encryption', - 'mail_from_address' => 'Mail From Address', - 'mail_from_help' => 'To use PHP\'s mail feature enter mail in this box and leave the below fields empty.', - 'mail_from_name' => 'Mail From Name', - 'mail_host' => 'Mail Host', - 'mail_password' => 'Mail Password', - 'mail_port' => 'Mail Port', - 'mail_username' => 'Mail Username', - 'optional_requirement_not_met' => 'Warning: :requirement extension is not loaded', - 'path_not_writable' => 'Warning: :path is not writable', - 'path_writable' => 'Success: :path is writable', - 'php_enough' => 'Success: The application requires PHP >= :requires and yours is :has', - 'php_optional_requirements_check' => 'PHP Optional Requirements Check', - 'php_requirements_check' => 'PHP Requirements Check', - 'php_too_low' => 'Warning: The application requires PHP >= :requires. Your version is :has.', - 'php_version_check' => 'PHP Version Check', - 'requirement_met' => 'Success: :requirement extension is loaded', - 'requirement_not_met' => 'Error: :requirement extension is not loaded', - 'setup' => 'Attendize Setup', - 'test_database_connection' => 'Test Database Connection', - 'title' => 'Attendize Web Installer', -); \ No newline at end of file + 'app_settings' => 'App settings', + 'application_url' => 'Application URL', + 'database_host' => 'Database Host', + 'database_name' => 'Database Name', + 'database_password' => 'Database Password', + 'database_settings' => 'Database Settings', + 'database_message' => 'If you are using the docker environment for development you can simple use the pre-filled values. If you are using your own environment you will need to update the database settings. Use the Test Database Connection to ensure your details are correct. In correct database details will result in installation issues.', + 'database_test_connect_failure' => 'Unable to connect. Please check your settings.', + 'database_test_connect_failure_error_message' => 'Error Message', + 'database_test_connect_failure_error_type' => 'Error Type', + 'database_test_connect_failure_message' => 'Unable to connect. Please check your settings.', + 'database_test_connect_success' => 'Success! Database settings are working!', + 'database_type' => 'Database Type', + 'database_username' => 'Database Username', + 'email_settings' => 'Email Settings', + 'files_n_folders_check' => 'Files & Folders Check', + 'install' => 'Install Attendize', + 'mail_encryption' => 'Mail Encryption', + 'mail_from_address' => 'Mail From Address', + 'mail_from_help' => 'To use PHP\'s mail feature enter mail in this box and leave the below fields empty.', + 'mail_from_name' => 'Mail From Name', + 'mail_host' => 'Mail Host', + 'mail_password' => 'Mail Password', + 'mail_port' => 'Mail Port', + 'mail_username' => 'Mail Username', + 'optional_requirement_not_met' => 'Warning: :requirement extension is not loaded', + 'path_not_writable' => 'Warning: :path is not writable', + 'path_writable' => 'Success: :path is writable', + 'php_enough' => 'Success: The application requires PHP >= :requires and yours is :has', + 'php_optional_requirements_check' => 'PHP Optional Requirements Check', + 'php_requirements_check' => 'PHP Requirements Check', + 'php_too_low' => 'Warning: The application requires PHP >= :requires. Your version is :has.', + 'php_version_check' => 'PHP Version Check', + 'requirement_met' => 'Success: :requirement extension is loaded', + 'requirement_not_met' => 'Error: :requirement extension is not loaded', + 'setup' => 'Attendize Setup', + 'setup_completed' => 'Attendize Setup Already', + 'setup_completed_already_message' => "An install file has been detected which means Attendize setup process has already completed.
If you haven't setup a default user you can " . + "Signup Default User
If you have already created a default user you can Login Here ", + 'test_database_connection' => 'Test Database Connection', + 'title' => 'Attendize Web Installer', +); diff --git a/resources/views/Installer/AlreadyInstalled.blade.php b/resources/views/Installer/AlreadyInstalled.blade.php new file mode 100644 index 00000000..ae78a580 --- /dev/null +++ b/resources/views/Installer/AlreadyInstalled.blade.php @@ -0,0 +1,37 @@ +@extends('Shared.Layouts.MasterWithoutMenus') + +@section('title') + @lang("Installer.title") +@stop + +@section('head') + +@stop + +@section('content') +
+
+
+
+ + +

@lang("Installer.setup_completed")

+

@lang("Installer.setup_completed_already_message")

+
+
+
+
+@stop diff --git a/resources/views/Installer/Installer.blade.php b/resources/views/Installer/Installer.blade.php index c0edddb1..420c5a04 100644 --- a/resources/views/Installer/Installer.blade.php +++ b/resources/views/Installer/Installer.blade.php @@ -29,7 +29,15 @@

@lang("Installer.setup")

- + @if (count($errors) > 0) +
+ +
+ @endif

@lang("Installer.php_version_check")

@if (version_compare(phpversion(), '5.5.9', '<')) @@ -102,6 +110,7 @@

@lang("Installer.database_settings")

+

@lang("Installer.database_message")

{!! Form::label('database_type', trans("Installer.database_type"), array('class'=>'required control-label ')) !!} @@ -116,16 +125,18 @@
{!! Form::label('database_host', trans("Installer.database_host"), array('class'=>'control-label required')) !!} - {!! Form::text('database_host', Input::old('database_host'), + {!! Form::text('database_host', 'db', array( 'class'=>'form-control ', 'placeholder'=>'' )) !!} + +
{!! Form::label('database_name', trans("Installer.database_name"), array('class'=>'required control-label ')) !!} - {!! Form::text('database_name', Input::old('database_name'), + {!! Form::text('database_name', 'attendize', array( 'class'=>'form-control' )) !!} @@ -133,7 +144,7 @@
{!! Form::label('database_username', trans("Installer.database_username"), array('class'=>'control-label required')) !!} - {!! Form::text('database_username', Input::old('database_username'), + {!! Form::text('database_username', 'attendize', array( 'class'=>'form-control ', 'placeholder'=>'', @@ -141,7 +152,7 @@
{!! Form::label('database_password', trans("Installer.database_password"), array('class'=>'control-label ')) !!} - {!! Form::text('database_password', Input::old('database_password'), + {!! Form::text('database_password', 'attendize', array( 'class'=>'form-control ', 'placeholder'=>'',