Skip to content

Commit 9b9593b

Browse files
committed
Added first setup page
This setup will: 1. Check the server dependencies 2. Setup the database 3. Create the admin user 4. Configure the app
1 parent 292d37f commit 9b9593b

File tree

6 files changed

+588
-24
lines changed

6 files changed

+588
-24
lines changed

INSTALLING

Whitespace-only changes.
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
<?php
2+
3+
namespace App\Http\Controllers;
4+
5+
use Illuminate\Http\Request;
6+
use Illuminate\Support\Facades\Hash;
7+
use Illuminate\Auth\Events\Registered;
8+
use Illuminate\Support\Facades\Schema;
9+
use Illuminate\Support\Facades\File;
10+
use Illuminate\Support\Facades\DB;
11+
12+
use GeoSot\EnvEditor\Controllers\EnvController;
13+
use GeoSot\EnvEditor\Exceptions\EnvException;
14+
use GeoSot\EnvEditor\Helpers\EnvFileContentManager;
15+
use GeoSot\EnvEditor\Helpers\EnvFilesManager;
16+
use GeoSot\EnvEditor\Helpers\EnvKeysManager;
17+
use GeoSot\EnvEditor\Facades\EnvEditor;
18+
use GeoSot\EnvEditor\ServiceProvider;
19+
20+
use Auth;
21+
use Exception;
22+
use ZipArchive;
23+
use Artisan;
24+
25+
use App\Models\User;
26+
use App\Models\Admin;
27+
use App\Models\Button;
28+
use App\Models\Link;
29+
use App\Models\Page;
30+
31+
class InstallerController extends Controller
32+
{
33+
34+
public function showInstaller()
35+
{
36+
return view('installer/installer');
37+
}
38+
39+
public function db(request $request)
40+
{
41+
if($request->database == 'MySQL'){
42+
return redirect(url('?mysql'));
43+
}else{
44+
return redirect(url('?4'));
45+
}
46+
}
47+
48+
public function createAdmin(request $request)
49+
{
50+
51+
$email = $request->email;
52+
$password = $request->password;
53+
54+
55+
if(DB::table('users')->count() == '0'){
56+
Schema::disableForeignKeyConstraints();
57+
DB::table('users')->delete();
58+
DB::table('users')->truncate();
59+
Schema::enableForeignKeyConstraints();
60+
61+
$user = User::create([
62+
'name' => 'Admin',
63+
'email' => $email,
64+
'email_verified_at' => '0001-01-01 00:00:00',
65+
'password' => Hash::make($password),
66+
'littlelink_name' => 'admin',
67+
'littlelink_description' => 'admin page',
68+
'block' => 'no',
69+
]);
70+
71+
User::where('id', '1')->update(['role' => 'admin']);
72+
}
73+
74+
return redirect(url('?5'));
75+
}
76+
77+
public function mysql(request $request)
78+
{
79+
$DB_CONNECTION = 'mysql';
80+
$DB_HOST = $request->host;
81+
$DB_PORT = $request->port;
82+
$DB_DATABASE = $request->name;
83+
$DB_USERNAME = $request->username;
84+
$DB_PASSWORD = $request->password;
85+
86+
if(EnvEditor::keyExists('DB_CONNECTION')){EnvEditor::editKey('DB_CONNECTION', $DB_CONNECTION);}else{EnvEditor::addKey('DB_CONNECTION', $DB_CONNECTION);}
87+
if(EnvEditor::keyExists('DB_HOST')){EnvEditor::editKey('DB_HOST', $DB_HOST);}else{EnvEditor::addKey('DB_HOST', $DB_HOST);}
88+
if(EnvEditor::keyExists('DB_PORT')){EnvEditor::editKey('DB_PORT', $DB_PORT);}else{EnvEditor::addKey('DB_PORT', $DB_PORT);}
89+
if(EnvEditor::keyExists('DB_DATABASE')){EnvEditor::editKey('DB_DATABASE', $DB_DATABASE);}else{EnvEditor::addKey('DB_DATABASE', $DB_DATABASE);}
90+
if(EnvEditor::keyExists('DB_USERNAME')){EnvEditor::editKey('DB_USERNAME', $DB_USERNAME);}else{EnvEditor::addKey('DB_USERNAME', $DB_USERNAME);}
91+
if(EnvEditor::keyExists('DB_PASSWORD')){EnvEditor::editKey('DB_PASSWORD', $DB_PASSWORD);}else{EnvEditor::addKey('DB_PASSWORD', $DB_PASSWORD);}
92+
93+
return redirect(url('mysql-test'));
94+
95+
}
96+
97+
public function mysqlTest(request $request)
98+
{
99+
try {Artisan::call('migrate');} catch (exception $e) {$failed = "true";}
100+
try {Artisan::call('db:seed --force');} catch (exception $e) {$failed = "true";}
101+
try {Artisan::call('db:seed --class="PageSeeder" --force');} catch (exception $e) {$failed = "true";}
102+
try {Artisan::call('db:seed --class="ButtonSeeder" --force');} catch (exception $e) {$failed = "true";}
103+
104+
try {$users = DB::table('buttons')->count(); $failed = false;} catch (exception $e) {$failed = true;}
105+
106+
if($failed == true){
107+
if(EnvEditor::keyExists('DB_CONNECTION')){EnvEditor::editKey('DB_CONNECTION', 'sqlite');}else{EnvEditor::addKey('DB_CONNECTION', 'sqlite');}
108+
if(EnvEditor::keyExists('DB_HOST')){EnvEditor::deleteKey('DB_HOST');}
109+
if(EnvEditor::keyExists('DB_PORT')){EnvEditor::deleteKey('DB_PORT');}
110+
if(EnvEditor::keyExists('DB_DATABASE')){EnvEditor::deleteKey('DB_DATABASE');}
111+
if(EnvEditor::keyExists('DB_USERNAME')){EnvEditor::deleteKey('DB_USERNAME');}
112+
if(EnvEditor::keyExists('DB_PASSWORD')){EnvEditor::deleteKey('DB_PASSWORD');}
113+
return redirect(url('?error'));
114+
}else{
115+
return redirect(url('?4'));
116+
}
117+
}
118+
119+
public function options(request $request)
120+
{
121+
122+
$user = User::find(1);
123+
$llName = $user->littlelink_name;
124+
125+
if($request->register == 'Yes'){$register = "true";}else{$register = "false";}
126+
Page::first()->update(['register' => $register]);
127+
128+
if($request->verify == 'Yes'){$value = "verified";}else{$value = "auth";}
129+
if(EnvEditor::keyExists('REGISTER_AUTH')){EnvEditor::editKey('REGISTER_AUTH', $value);}
130+
131+
if($request->page == 'No'){$value = "";}else{$value = '"' . $llName . '"';}
132+
if(EnvEditor::keyExists('HOME_URL')){EnvEditor::editKey('HOME_URL', $value);}
133+
134+
if(EnvEditor::keyExists('APP_NAME')){EnvEditor::editKey('APP_NAME', '"' . $request->app . '"');}
135+
136+
if(file_exists(base_path("INSTALLING"))){unlink(base_path("INSTALLING"));}
137+
138+
return redirect(url(''));
139+
}
140+
141+
}

composer.lock

Lines changed: 19 additions & 19 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)