Skip to content

Commit 4652bc3

Browse files
committed
Refactor
1 parent b3e0b36 commit 4652bc3

File tree

1 file changed

+61
-61
lines changed

1 file changed

+61
-61
lines changed

app/Http/Middleware/Impersonate.php

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22

33
namespace App\Http\Middleware;
4+
45
use Illuminate\Support\Facades\Auth;
56
use Illuminate\Support\Str;
67
use App\Models\User;
@@ -12,51 +13,46 @@ public function handle($request, Closure $next)
1213
{
1314
$adminUser = User::where('role', 'admin')->where(function ($query) {
1415
$query->where('auth_as', '!=', null)
15-
->where('auth_as', '!=', '');
16+
->where('auth_as', '!=', '');
1617
})->first();
1718

1819
if ($adminUser && is_numeric($adminUser->auth_as)) {
20+
$originalUserId = $adminUser->id;
21+
$impersonateUserId = is_numeric($adminUser->auth_as) ? $adminUser->auth_as : $adminUser->id;
22+
$impersonateUser = User::find($impersonateUserId);
23+
$impersonateUserName = $impersonateUser->name;
24+
25+
if (Auth::user()->id === $originalUserId) {
26+
$token = Str::random(60);
27+
if (\Route::currentRouteName() !== 'authAs') {
28+
$adminUser->remember_token = $token;
29+
$adminUser->save();
30+
echo "<script>window.location.href = '" . url('studio/links') . "';</script>";
31+
}
32+
33+
Auth::loginUsingId($impersonateUserId);
34+
$request->session()->put('display_auth_nav', $token);
35+
$request->session()->save();
36+
}
1937

20-
$originalUser = $adminUser->id;
21-
22-
$id = is_numeric($adminUser->auth_as) ? $adminUser->auth_as : $adminUser->id;
23-
$user = User::find($id);
24-
25-
$name = $user->name;
26-
27-
if(Auth::user()->id === $originalUser) {
28-
29-
// Generate unique token
30-
$token = Str::random(60);
31-
if(\Route::currentRouteName() !== 'authAs'){
32-
$adminUser->remember_token = $token;
33-
$adminUser->save();
34-
echo "<script>window.location.href = '".url('studio/links')."';</script>";
35-
}
36-
37-
Auth::loginUsingId($id);
38-
$request->session()->put('display_auth_nav', $token);
39-
$request->session()->save();
40-
}
41-
42-
if($request->session()->has('display_auth_nav')) {
43-
$dashboard = url('dashboard');
44-
$URL = url('/auth-as');
45-
$csrf = csrf_token();
46-
$remember_token = User::find($originalUser);
47-
$token = $remember_token->remember_token;
48-
$storageToken = $request->session()->get('display_auth_nav');
49-
if($storageToken === $token) {
50-
if (file_exists(base_path(findAvatar($id)))) {
51-
$img = '<img alt="avatar" class="iimg irounded" src="' . url(findAvatar($id)) . '">';
52-
} elseif (file_exists(base_path("assets/linkstack/images/").findFile('avatar'))) {
53-
$img = '<img alt="avatar" class="iimg irounded" src="' . url("assets/linkstack/images/") . "/" . findFile('avatar') . '">';
54-
} else {
55-
$img = '<img alt="avatar" class="iimg" src="' . asset('assets/linkstack/images/logo.svg') . '">';
56-
}
57-
$customHtml =
58-
<<<EOD
59-
38+
if ($request->session()->has('display_auth_nav')) {
39+
$dashboardUrl = url('dashboard');
40+
$authAsUrl = url('/auth-as');
41+
$csrfToken = csrf_token();
42+
$rememberTokenUser = User::find($originalUserId);
43+
$rememberToken = $rememberTokenUser->remember_token;
44+
$storageToken = $request->session()->get('display_auth_nav');
45+
46+
if ($storageToken === $rememberToken) {
47+
if (file_exists(base_path(findAvatar($impersonateUserId)))) {
48+
$avatarUrl = url(findAvatar($impersonateUserId));
49+
} elseif (file_exists(base_path("assets/linkstack/images/") . findFile('avatar'))) {
50+
$avatarUrl = url("assets/linkstack/images/") . "/" . findFile('avatar');
51+
} else {
52+
$avatarUrl = asset('assets/linkstack/images/logo.svg');
53+
}
54+
55+
$customHtml = <<<EOD
6056
<style>
6157
.ibar {
6258
position: fixed;
@@ -117,7 +113,7 @@ public function handle($request, Closure $next)
117113
<div class="ibar">
118114
<p class="itext1">
119115
<span>
120-
<a href="$dashboard">$img $name</a>
116+
<a href="$dashboardUrl"><img alt="avatar" class="iimg irounded" src="$avatarUrl">$impersonateUserName</a>
121117
</span>
122118
<a style="cursor:pointer" onclick="document.getElementById('submitForm').submit(); return false;">
123119
<svg xmlns="http://www.w3.org/2000/svg" class="bi bi-x" viewBox="0 0 16 16">
@@ -129,33 +125,37 @@ public function handle($request, Closure $next)
129125
</p>
130126
</div>
131127
132-
<form id="submitForm" action="$URL" method="POST" style="display: none;">
133-
<input type="hidden" name="_token" value="$csrf">
134-
<input type="hidden" name="token" value="$token">
135-
<input type="hidden" name="id" value="$originalUser">
128+
<form id="submitForm" action="$authAsUrl" method="POST" style="display: none;">
129+
<input type="hidden" name="_token" value="$csrfToken">
130+
<input type="hidden" name="token" value="$rememberToken">
131+
<input type="hidden" name="id" value="$originalUserId">
136132
</form>
137133
138134
<script>
139135
function submitForm() {
140136
document.getElementById('submitForm').submit();
141137
}
142138
</script>
143-
144-
EOD;;
145-
} else {$customHtml = "";}
146-
147-
$response = $next($request);
148-
$content = $response->getContent();
149-
$modifiedContent = preg_replace('/<body([^>]*)>/', "<body$1>{$customHtml}", $content);
150-
$response->setContent($modifiedContent);
151-
152-
return $response;
153-
} else {
154-
if($request->session()->has('display_auth_nav')) {
155-
$request->session()->forget('display_auth_nav');
156-
Auth::logout();
139+
EOD;
140+
} else {
141+
$customHtml = "";
142+
}
143+
144+
$response = $next($request);
145+
$content = $response->getContent();
146+
$modifiedContent = preg_replace('/<body([^>]*)>/', "<body$1>{$customHtml}", $content);
147+
$response->setContent($modifiedContent);
148+
149+
return $response;
150+
} else {
151+
if ($request->session()->has('display_auth_nav')) {
152+
$request->session()->forget('display_auth_nav');
153+
Auth::logout();
154+
}
155+
return $next($request);
157156
}
157+
} else {
158158
return $next($request);
159-
}}else{return $next($request);}
159+
}
160160
}
161161
}

0 commit comments

Comments
 (0)