Skip to content

Commit bbad489

Browse files
committed
Map domain to specific profile
Admins can now map domains to specific profiles. To do this add this array to your advanced config:   'custom_domains' => [     ['domain' => 'example.com', 'name' => 'example_user',],     ['domain' => 'example.example.com', 'id' => '1',],     // more entries as needed   ], For each entry, a domain and user name or id has to be defined.
1 parent b80455e commit bbad489

File tree

3 files changed

+70
-37
lines changed

3 files changed

+70
-37
lines changed

app/Http/Controllers/UserController.php

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,13 @@ public function index()
8484
//Show littlelink page. example => http://127.0.0.1:8000/+admin
8585
public function littlelink(request $request)
8686
{
87-
$littlelink_name = $request->littlelink;
88-
$id = User::select('id')->where('littlelink_name', $littlelink_name)->value('id');
87+
if(isset($request->useif)){
88+
$littlelink_name = User::select('littlelink_name')->where('id', $request->littlelink)->value('littlelink_name');
89+
$id = $request->littlelink;
90+
} else {
91+
$littlelink_name = $request->littlelink;
92+
$id = User::select('id')->where('littlelink_name', $littlelink_name)->value('id');
93+
}
8994

9095
if (empty($id)) {
9196
return abort(404);
@@ -103,39 +108,39 @@ public function littlelink(request $request)
103108
return view('linkstack.linkstack', ['userinfo' => $userinfo, 'information' => $information, 'links' => $links, 'littlelink_name' => $littlelink_name]);
104109
}
105110

106-
//Redirect to user page
107-
public function userRedirect(request $request)
111+
//Show littlelink page as home page if set in config
112+
public function littlelinkhome(request $request)
108113
{
109-
$id = $request->id;
110-
$user = User::select('littlelink_name')->where('id', $id)->value('littlelink_name');
114+
$littlelink_name = env('HOME_URL');
115+
$id = User::select('id')->where('littlelink_name', $littlelink_name)->value('id');
111116

112117
if (empty($id)) {
113118
return abort(404);
114119
}
115120

116-
if (empty($user)) {
117-
return abort(404);
118-
}
121+
$userinfo = User::select('id', 'name', 'littlelink_name', 'littlelink_description', 'theme', 'role', 'block')->where('id', $id)->first();
122+
$information = User::select('name', 'littlelink_name', 'littlelink_description', 'theme')->where('id', $id)->get();
123+
124+
$links = DB::table('links')->join('buttons', 'buttons.id', '=', 'links.button_id')->select('links.link', 'links.id', 'links.button_id', 'links.title', 'links.custom_css', 'links.custom_icon', 'buttons.name')->where('user_id', $id)->orderBy('up_link', 'asc')->orderBy('order', 'asc')->get();
119125

120-
return redirect(url('@'.$user));
126+
return view('linkstack.linkstack', ['userinfo' => $userinfo, 'information' => $information, 'links' => $links, 'littlelink_name' => $littlelink_name]);
121127
}
122128

123-
//Show littlelink page as home page if set in config
124-
public function littlelinkhome(request $request)
129+
//Redirect to user page
130+
public function userRedirect(request $request)
125131
{
126-
$littlelink_name = env('HOME_URL');
127-
$id = User::select('id')->where('littlelink_name', $littlelink_name)->value('id');
132+
$id = $request->id;
133+
$user = User::select('littlelink_name')->where('id', $id)->value('littlelink_name');
128134

129135
if (empty($id)) {
130136
return abort(404);
131137
}
132138

133-
$userinfo = User::select('id', 'name', 'littlelink_name', 'littlelink_description', 'theme', 'role')->where('id', $id)->first();
134-
$information = User::select('name', 'littlelink_name', 'littlelink_description', 'theme')->where('id', $id)->get();
135-
136-
$links = DB::table('links')->join('buttons', 'buttons.id', '=', 'links.button_id')->select('links.link', 'links.id', 'links.button_id', 'links.title', 'links.custom_css', 'links.custom_icon', 'buttons.name')->where('user_id', $id)->orderBy('up_link', 'asc')->orderBy('order', 'asc')->get();
139+
if (empty($user)) {
140+
return abort(404);
141+
}
137142

138-
return view('linkstack.linkstack', ['userinfo' => $userinfo, 'information' => $information, 'links' => $links, 'littlelink_name' => $littlelink_name]);
143+
return redirect(url('@'.$user));
139144
}
140145

141146
//Show add/update form

routes/home.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
use App\Http\Controllers\UserController;
3+
4+
$host = request()->getHost();
5+
$customConfigs = config('advanced-config.custom_domains', []);
6+
7+
foreach ($customConfigs as $config) {
8+
if ($host == $config['domain']) {
9+
$routeCallback = function () use ($config) {
10+
$request = app('request');
11+
$request->merge(['littlelink' => isset($config['name']) ? $config['name'] : $config['id']]);
12+
if (isset($config['id'])) {
13+
$request->merge(['useif' => 'true']);
14+
}
15+
return app(UserController::class)->littlelink($request);
16+
};
17+
18+
Route::get('/', $routeCallback)->name('littlelink');
19+
20+
return;
21+
}
22+
}
23+
24+
$customHomeUrl = config('advanced-config.custom_home_url', '/home');
25+
$disableHomePageConfig = config('advanced-config.disable_home_page');
26+
$redirectHomePageConfig = config('advanced-config.redirect_home_page');
27+
28+
if (env('HOME_URL') != '') {
29+
Route::get('/', [UserController::class, 'littlelinkhome'])->name('littlelink');
30+
if ($disableHomePageConfig == 'redirect') {
31+
Route::get($customHomeUrl, function () use ($redirectHomePageConfig) {
32+
return redirect($redirectHomePageConfig);
33+
});
34+
} elseif ($disableHomePageConfig != 'true') {
35+
Route::get($customHomeUrl, [App\Http\Controllers\HomeController::class, 'home'])->name('home');
36+
}
37+
} else {
38+
if ($disableHomePageConfig == 'redirect') {
39+
Route::get('/', function () use ($redirectHomePageConfig) {
40+
return redirect($redirectHomePageConfig);
41+
});
42+
} elseif ($disableHomePageConfig != 'true') {
43+
Route::get('/', [App\Http\Controllers\HomeController::class, 'home'])->name('home');
44+
}
45+
}

routes/web.php

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,7 @@
5454
// Disables routes if in Maintenance Mode
5555
if(env('MAINTENANCE_MODE') != 'true'){
5656

57-
//Changes the homepage to a LinkStack profile if set in the config
58-
if(config('advanced-config.custom_home_url') != '') {
59-
$custom_home_page_url = config('advanced-config.custom_home_url');
60-
} else {
61-
$custom_home_page_url = "/home";
62-
}
63-
if(env('HOME_URL') != '') {
64-
Route::get('/', [UserController::class, 'littlelinkhome'])->name('littlelink');
65-
if(config('advanced-config.disable_home_page') == 'redirect') {
66-
Route::get($custom_home_page_url, function () {return redirect(config('advanced-config.redirect_home_page'));});
67-
}elseif(config('advanced-config.disable_home_page') != 'true') {
68-
Route::get( $custom_home_page_url, [App\Http\Controllers\HomeController::class, 'home'])->name('home');}
69-
} else {
70-
if(config('advanced-config.disable_home_page') == 'redirect') {
71-
Route::get('/', function () {return redirect(config('advanced-config.redirect_home_page'));});
72-
}elseif(config('advanced-config.disable_home_page') != 'true') {
73-
Route::get('/', [App\Http\Controllers\HomeController::class, 'home'])->name('home');}
74-
}
57+
require __DIR__.'/home.php';
7558

7659
//Redirect if no page URL is set
7760
Route::get('/@', function () {

0 commit comments

Comments
 (0)