1
1
<?php
2
2
3
3
namespace App \Http \Middleware ;
4
+
4
5
use Illuminate \Support \Facades \Auth ;
5
6
use Illuminate \Support \Str ;
6
7
use App \Models \User ;
@@ -12,51 +13,46 @@ public function handle($request, Closure $next)
12
13
{
13
14
$ adminUser = User::where ('role ' , 'admin ' )->where (function ($ query ) {
14
15
$ query ->where ('auth_as ' , '!= ' , null )
15
- ->where ('auth_as ' , '!= ' , '' );
16
+ ->where ('auth_as ' , '!= ' , '' );
16
17
})->first ();
17
18
18
19
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
+ }
19
37
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
60
56
<style>
61
57
.ibar {
62
58
position: fixed;
@@ -117,7 +113,7 @@ public function handle($request, Closure $next)
117
113
<div class="ibar">
118
114
<p class="itext1">
119
115
<span>
120
- <a href=" $ dashboard "> $ img $ name </a>
116
+ <a href=" $ dashboardUrl ">< img alt="avatar" class="iimg irounded" src=" $ avatarUrl "> $ impersonateUserName </a>
121
117
</span>
122
118
<a style="cursor:pointer" onclick="document.getElementById('submitForm').submit(); return false;">
123
119
<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)
129
125
</p>
130
126
</div>
131
127
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 ">
136
132
</form>
137
133
138
134
<script>
139
135
function submitForm() {
140
136
document.getElementById('submitForm').submit();
141
137
}
142
138
</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 );
157
156
}
157
+ } else {
158
158
return $ next ($ request );
159
- }} else { return $ next ( $ request );}
159
+ }
160
160
}
161
161
}
0 commit comments