mirror of
https://github.com/LinkStackOrg/LinkStack.git
synced 2025-02-03 20:47:47 +01:00
Reduced DB queries
This commit is contained in:
parent
83a370252d
commit
708b60ee5b
@ -75,37 +75,40 @@ class AdminController extends Controller
|
||||
// Get users by type
|
||||
public function users(Request $request)
|
||||
{
|
||||
// Query to get the admin user with non-null 'auth_as' value
|
||||
$adminUser = User::whereNotNull('auth_as')->where('role', 'admin')->first();
|
||||
|
||||
$usersType = $request->type;
|
||||
|
||||
$usersQuery = User::select('id', 'name', 'email', 'littlelink_name', 'role', 'block', 'email_verified_at', 'created_at', 'updated_at');
|
||||
|
||||
switch ($usersType) {
|
||||
case 'all':
|
||||
$users = User::select('id', 'name', 'email', 'littlelink_name', 'role', 'block', 'email_verified_at', 'created_at', 'updated_at')->get();
|
||||
break;
|
||||
case 'user':
|
||||
$users = User::where('role', 'user')->select('id', 'email', 'name', 'littlelink_name', 'role', 'block', 'email_verified_at', 'created_at', 'updated_at')->get();
|
||||
$usersQuery->where('role', 'user');
|
||||
break;
|
||||
case 'vip':
|
||||
$users = User::where('role', 'vip')->select('id', 'email', 'name', 'littlelink_name', 'role', 'block', 'email_verified_at', 'created_at', 'updated_at')->get();
|
||||
$usersQuery->where('role', 'vip');
|
||||
break;
|
||||
case 'admin':
|
||||
$users = User::where('role', 'admin')->select('id', 'email', 'name', 'littlelink_name', 'role', 'block', 'email_verified_at', 'created_at', 'updated_at')->get();
|
||||
$usersQuery->where('role', 'admin');
|
||||
break;
|
||||
}
|
||||
|
||||
$users = $usersQuery->get();
|
||||
|
||||
// Rest of your code to calculate click counts and link counts for each user
|
||||
|
||||
foreach ($users as $user) {
|
||||
$user->clicks = $clicksCounts[$user->id]->total_clicks ?? 0;
|
||||
$user->links = $linksCounts[$user->id]->total_links ?? 0;
|
||||
}
|
||||
|
||||
$data['users'] = $users;
|
||||
|
||||
// Loop through each user to get their click count and link count
|
||||
foreach ($users as $user) {
|
||||
$clicks = Link::where('user_id', $user->id)->sum('click_number');
|
||||
$links = Link::where('user_id', $user->id)->select('link')->count();
|
||||
$user->clicks = $clicks;
|
||||
$user->links = $links;
|
||||
}
|
||||
$data['adminUser'] = $adminUser;
|
||||
|
||||
return view('panel/users', $data);
|
||||
}
|
||||
|
||||
|
||||
//Search user by name
|
||||
public function searchUser(Request $request)
|
||||
{
|
||||
|
@ -93,13 +93,13 @@
|
||||
<td data-created>{{$date}}</td>
|
||||
<td class="shorten" data-last title="{{ $lastSeenDate }}">{{$daysAgo}}</td>
|
||||
@if(env('REGISTER_AUTH') !== 'auth')
|
||||
<td>@if($user->find($user->id)->role == 'admin' and $user->email_verified_at != '')<center>-</center> @else
|
||||
<td>@if($user->role == 'admin' and $user->email_verified_at != '')<center>-</center> @else
|
||||
<a href="{{ route('verifyUser', ['verify' => '-' . $user->email_verified_at, 'id' => $user->id] ) }}" class="text-danger">@if($user->email_verified_at == '')<span class="badge bg-danger">{{__('messages.Pending')}}</span>@else<span class="badge bg-success">{{__('messages.Verified')}}</span></a>@endif</td>
|
||||
@endif
|
||||
@endif
|
||||
<td>@if($user->find($user->id)->role == 'admin' and $user->id == 1)<center>-</center>@else<a href="{{ route('blockUser', ['block' => $user->block, 'id' => $user->id] ) }}">@if($user->block == 'yes') <span class="badge bg-danger">{{__('messages.Pending')}}</span> @elseif($user->block == 'no') <span class="badge bg-success">{{__('messages.Approved')}}</span> @endif</a>@endif</td>
|
||||
<td>@if($user->role == 'admin' and $user->id == 1)<center>-</center>@else<a href="{{ route('blockUser', ['block' => $user->block, 'id' => $user->id] ) }}">@if($user->block == 'yes') <span class="badge bg-danger">{{__('messages.Pending')}}</span> @elseif($user->block == 'no') <span class="badge bg-success">{{__('messages.Approved')}}</span> @endif</a>@endif</td>
|
||||
<td>
|
||||
@if($user->find($user->id)->role == 'admin' and $user->id == 1)<center>-</center>
|
||||
@if($user->role == 'admin' and $user->id == 1)<center>-</center>
|
||||
@else
|
||||
<div class="flex align-items-center list-user-action">
|
||||
<a class="btn btn-sm btn-icon btn-success" data-bs-toggle="tooltip" data-bs-placement="top" data-original-title="{{__('messages.tt.All links')}}" href="{{ route('showLinksUser', $user->id ) }}" aria-label="All links" data-bs-original-title="All links">
|
||||
@ -119,8 +119,7 @@
|
||||
</svg>
|
||||
</span>
|
||||
</a>
|
||||
@php $adminUser = User::whereNotNull('auth_as')->where('role', 'admin')->first(); @endphp
|
||||
<a class="btn btn-sm btn-icon btn-primary" style="@if(!$adminUser && Auth::user()->id !== $user->id) background:#3a57e8;border-color:#3a57e8; @else background:#6c757d;border-color:#6c757d; @endif" data-bs-toggle="tooltip" data-bs-placement="top" data-original-title="{{__('messages.tt.Impersonate')}}" @if(!$adminUser && Auth::user()->id !== $user->id) href="{{ route('authAsID', $user->id ) }}" @endif aria-label="Impersonate" data-bs-original-title="Impersonate">
|
||||
<a class="btn btn-sm btn-icon btn-primary" style="@if(!$user->adminUser && Auth::user()->id !== $user->id) background:#3a57e8;border-color:#3a57e8; @else background:#6c757d;border-color:#6c757d; @endif" data-bs-toggle="tooltip" data-bs-placement="top" data-original-title="{{__('messages.tt.Impersonate')}}" @if(!$user->adminUser && Auth::user()->id !== $user->id) href="{{ route('authAsID', $user->id ) }}" @endif aria-label="Impersonate" data-bs-original-title="Impersonate">
|
||||
<span class="btn-inner">
|
||||
<svg class="icon-20" width="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.59151 15.2068C13.2805 15.2068 16.4335 15.7658 16.4335 17.9988C16.4335 20.2318 13.3015 20.8068 9.59151 20.8068C5.90151 20.8068 2.74951 20.2528 2.74951 18.0188C2.74951 15.7848 5.88051 15.2068 9.59151 15.2068Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
|
||||
|
Loading…
x
Reference in New Issue
Block a user