diff --git a/app/Filament/Resources/User/UserModifyLogResource.php b/app/Filament/Resources/User/UserModifyLogResource.php index 905487de..cd39d7f0 100644 --- a/app/Filament/Resources/User/UserModifyLogResource.php +++ b/app/Filament/Resources/User/UserModifyLogResource.php @@ -46,15 +46,44 @@ class UserModifyLogResource extends Resource return $table ->columns([ Tables\Columns\TextColumn::make('id'), - Tables\Columns\TextColumn::make('user_id') + Tables\Columns\TextColumn::make('user_id')->label('UID'), + Tables\Columns\TextColumn::make('user.username') ->label(nexus_trans("label.username")) - ->formatStateUsing(fn ($state) => username_for_admin($state)) + ->formatStateUsing(fn ($record) => username_for_admin($record->user_id)) , Tables\Columns\TextColumn::make('content')->label(nexus_trans("user-modify-log.content")), Tables\Columns\TextColumn::make('created_at')->label(nexus_trans("label.created_at")), ]) ->filters([ - // + Tables\Filters\Filter::make('user_id') + ->form([ + Forms\Components\TextInput::make('user_id') + ->label(__('UID')) + , + ])->query(function (Builder $query, array $data) { + return $query->when($data['user_id'], fn (Builder $query, $value) => $query->where("user_id", $value)); + }) + , + Tables\Filters\Filter::make('user') + ->form([ + Forms\Components\TextInput::make('username') + ->label(__('label.username')) + , + ])->query(function (Builder $query, array $data) { + return $query->when($data['username'], fn (Builder $query, $value) => $query->whereHas("user", function (Builder $query) use ($value) { + $query->where("username", $value); + })); + }) + , + Tables\Filters\Filter::make('content') + ->form([ + Forms\Components\TextInput::make('content') + ->label(__('user-modify-log.content')) + , + ])->query(function (Builder $query, array $data) { + return $query->when($data['content'], fn (Builder $query, $value) => $query->where("content", "like", "%{$data['content']}%")); + }) + , ]) ->defaultSort('id', 'desc') ->actions([ diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index ce5273ab..5f42d08a 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -76,7 +76,7 @@ class Kernel extends HttpKernel 'permission' => \App\Http\Middleware\Permission::class, 'admin' => \App\Http\Middleware\Admin::class, 'locale' => \App\Http\Middleware\Locale::class, - 'user' => \App\Http\Middleware\User::class, + 'checkUserStatus' => \App\Http\Middleware\CheckUserStatus::class, ]; protected $middlewareAliases = [ diff --git a/app/Http/Middleware/Admin.php b/app/Http/Middleware/Admin.php index f5b37bb4..422efa94 100644 --- a/app/Http/Middleware/Admin.php +++ b/app/Http/Middleware/Admin.php @@ -18,7 +18,7 @@ class Admin */ public function handle(Request $request, Closure $next) { - /** @var User $user */ + /** @var CheckUserStatus $user */ $user = $request->user(); if (!$user || !$user->canAccessAdmin()) { do_log("denied!"); diff --git a/app/Http/Middleware/User.php b/app/Http/Middleware/CheckUserStatus.php similarity index 77% rename from app/Http/Middleware/User.php rename to app/Http/Middleware/CheckUserStatus.php index 8570a18c..78a3e97e 100644 --- a/app/Http/Middleware/User.php +++ b/app/Http/Middleware/CheckUserStatus.php @@ -2,11 +2,12 @@ namespace App\Http\Middleware; +use App\Models\User; use Carbon\Carbon; use Closure; use Illuminate\Http\Request; -class User +class CheckUserStatus { /** * Handle an incoming request. @@ -17,6 +18,9 @@ class User */ public function handle(Request $request, Closure $next) { + /** @var User $user */ + $user = $request->user(); + $user->checkIsNormal(); return $next($request); } @@ -29,12 +33,7 @@ class User */ public function terminate($request, $response) { - $user = $request->user(); - $update = [ - 'last_access' => Carbon::now() - ]; - do_log("[ACTIVE] {$user->id}: " . nexus_json_encode($update)); - $user->update($update); + } } diff --git a/app/Http/Middleware/Permission.php b/app/Http/Middleware/Permission.php index 7fe477c9..e6c6a7fc 100644 --- a/app/Http/Middleware/Permission.php +++ b/app/Http/Middleware/Permission.php @@ -18,7 +18,7 @@ class Permission */ public function handle(Request $request, Closure $next) { - /** @var User $user */ + /** @var CheckUserStatus $user */ $user = $request->user(); if (!$user || (nexus()->isPlatformAdmin() && !$user->canAccessAdmin())) { do_log("denied!"); diff --git a/include/constants.php b/include/constants.php index 3739eac8..89da4701 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ ['auth:sanctum']], function () { - Route::group(['middleware' => []], function () { + Route::group(['middleware' => ['checkUserStatus']], function () { // Route::post('logout', [\App\Http\Controllers\AuthenticateController::class, 'logout']); // Route::get('user-me',[\App\Http\Controllers\UserController::class, 'me'])->name('user.me');