diff --git a/dist/app/Enums/Auth/Permissions.php b/dist/app/Enums/Auth/Permissions.php index 313013e..76b5a7e 100644 --- a/dist/app/Enums/Auth/Permissions.php +++ b/dist/app/Enums/Auth/Permissions.php @@ -8,4 +8,6 @@ enum Permissions: string case VIEW_LOG = 'view-log'; case FILE_UPLOAD = 'file-upload'; case GAME_NEWS = 'game-news'; + + case USER_MANAGEMENT = 'user-management'; } diff --git a/dist/app/Http/Controllers/Web/Admin/Tools/AdminToolController.php b/dist/app/Http/Controllers/Web/Admin/Tools/AdminToolController.php index 5b13f04..e2b2f1a 100644 --- a/dist/app/Http/Controllers/Web/Admin/Tools/AdminToolController.php +++ b/dist/app/Http/Controllers/Web/Admin/Tools/AdminToolController.php @@ -31,6 +31,7 @@ final public static function getAllTools(): array GameNewsController::class, FileManagerController::class, LogViewerController::class, + UsersController::class, ]; } diff --git a/dist/app/Http/Controllers/Web/Admin/Tools/UsersController.php b/dist/app/Http/Controllers/Web/Admin/Tools/UsersController.php new file mode 100644 index 0000000..d42f2c9 --- /dev/null +++ b/dist/app/Http/Controllers/Web/Admin/Tools/UsersController.php @@ -0,0 +1,36 @@ +input('search'); + $query = User::orderBy('last_known_username'); + + if($searchString !== null) { + $query->orWhere('id', 'LIKE', '%'.$searchString.'%') + ->orWhere('steam_id', 'LIKE', '%'.$searchString.'%') + ->orWhere('last_known_username', 'LIKE', '%'.$searchString.'%'); + } + + $users = $query->paginate(static::PER_PAGE); + + return view('admin.tools.user-list', ['userList' => $users, 'searchString' => $searchString]); + } +} diff --git a/dist/database/seeders/RolesAndPermissionsSeeder.php b/dist/database/seeders/RolesAndPermissionsSeeder.php index 40c422e..a9b5a29 100644 --- a/dist/database/seeders/RolesAndPermissionsSeeder.php +++ b/dist/database/seeders/RolesAndPermissionsSeeder.php @@ -20,10 +20,12 @@ public function run(): void $viewLogPerm = Permission::findOrCreate(Permissions::VIEW_LOG->value); $fileUploadPerm = Permission::findOrCreate(Permissions::FILE_UPLOAD->value); $gameNewsPerm = Permission::findOrCreate(Permissions::GAME_NEWS->value); + $usersPerm = Permission::findOrCreate(Permissions::USER_MANAGEMENT->value); $adminRole->givePermissionTo($viewLogPerm); $adminRole->givePermissionTo($gameNewsPerm); $adminRole->givePermissionTo($viewAdminAreaPerm); + $adminRole->givePermissionTo($usersPerm); $adminRole->givePermissionTo($fileUploadPerm)->save(); } } diff --git a/dist/resources/views/admin/tools/user-list.blade.php b/dist/resources/views/admin/tools/user-list.blade.php new file mode 100644 index 0000000..7ad92c9 --- /dev/null +++ b/dist/resources/views/admin/tools/user-list.blade.php @@ -0,0 +1,67 @@ +@props([ + 'userList', + 'searchString' => null, + 'currentPage' => 1, + +]) + +@php + /** @var \Illuminate\Pagination\LengthAwarePaginator $userList */ +@endphp + + + +
+
+
+ + + Search + +
+
+ + + + + + + + + + + @foreach($userList as $user) + + + + + @if($user->ban()->exists()) + + @else + + @endif + + + @endforeach + +
User IDSteam IDLast Known UsernameStatusActions
{{ $user->id }}{{ $user->steam_id }}{{ $user->last_known_username }}BANNEDGOOD + + + + + + + + + +
+
+ {{ $userList->links() }} +
+
+
\ No newline at end of file diff --git a/dist/resources/views/components/icons/hammer.blade.php b/dist/resources/views/components/icons/hammer.blade.php new file mode 100644 index 0000000..a198941 --- /dev/null +++ b/dist/resources/views/components/icons/hammer.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dist/resources/views/components/icons/mail.blade.php b/dist/resources/views/components/icons/mail.blade.php new file mode 100644 index 0000000..df1208d --- /dev/null +++ b/dist/resources/views/components/icons/mail.blade.php @@ -0,0 +1,3 @@ + + + diff --git a/dist/resources/views/components/icons/user-details.blade.php b/dist/resources/views/components/icons/user-details.blade.php new file mode 100644 index 0000000..009e457 --- /dev/null +++ b/dist/resources/views/components/icons/user-details.blade.php @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/dist/resources/views/components/icons/users.blade.php b/dist/resources/views/components/icons/users.blade.php new file mode 100644 index 0000000..578e088 --- /dev/null +++ b/dist/resources/views/components/icons/users.blade.php @@ -0,0 +1,3 @@ + + + diff --git a/dist/routes/admin.php b/dist/routes/admin.php index 16a0823..57c8608 100644 --- a/dist/routes/admin.php +++ b/dist/routes/admin.php @@ -4,6 +4,7 @@ use App\Http\Controllers\Web\Admin\Tools\FileManagerController; use App\Http\Controllers\Web\Admin\Tools\GameNewsController; use App\Http\Controllers\Web\Admin\Tools\LogViewerController; +use App\Http\Controllers\Web\Admin\Tools\UsersController; use App\Http\Controllers\Web\GameFileController; Route::redirect('', 'admin/dashboard'); @@ -18,6 +19,8 @@ Route::post('gamenews/create', [GameNewsController::class, 'create'])->name('gamenews.create'); Route::post('gamenews/{news}', [GameNewsController::class, 'submit'])->name('gamenews.post'); +Route::get('users', [UsersController::class, 'index'])->name(UsersController::class); + Route::fallback(function () { return redirect(route('admin.dashboard')); }); diff --git a/dist/tailwind.config.js b/dist/tailwind.config.js index dbb1f2a..4e2b883 100644 --- a/dist/tailwind.config.js +++ b/dist/tailwind.config.js @@ -4,6 +4,7 @@ export default { "./resources/**/*.blade.php", "./resources/**/*.js", "./resources/**/*.vue", + './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php' ], theme: { extend: {