userModifyLog filter + api checkUserStatus

This commit is contained in:
xiaomlove
2025-05-08 02:38:29 +07:00
parent 5164ee16a6
commit 42d0ad6c0b
7 changed files with 43 additions and 15 deletions
@@ -46,15 +46,44 @@ class UserModifyLogResource extends Resource
return $table return $table
->columns([ ->columns([
Tables\Columns\TextColumn::make('id'), 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")) ->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('content')->label(nexus_trans("user-modify-log.content")),
Tables\Columns\TextColumn::make('created_at')->label(nexus_trans("label.created_at")), Tables\Columns\TextColumn::make('created_at')->label(nexus_trans("label.created_at")),
]) ])
->filters([ ->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') ->defaultSort('id', 'desc')
->actions([ ->actions([
+1 -1
View File
@@ -76,7 +76,7 @@ class Kernel extends HttpKernel
'permission' => \App\Http\Middleware\Permission::class, 'permission' => \App\Http\Middleware\Permission::class,
'admin' => \App\Http\Middleware\Admin::class, 'admin' => \App\Http\Middleware\Admin::class,
'locale' => \App\Http\Middleware\Locale::class, 'locale' => \App\Http\Middleware\Locale::class,
'user' => \App\Http\Middleware\User::class, 'checkUserStatus' => \App\Http\Middleware\CheckUserStatus::class,
]; ];
protected $middlewareAliases = [ protected $middlewareAliases = [
+1 -1
View File
@@ -18,7 +18,7 @@ class Admin
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
/** @var User $user */ /** @var CheckUserStatus $user */
$user = $request->user(); $user = $request->user();
if (!$user || !$user->canAccessAdmin()) { if (!$user || !$user->canAccessAdmin()) {
do_log("denied!"); do_log("denied!");
@@ -2,11 +2,12 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use App\Models\User;
use Carbon\Carbon; use Carbon\Carbon;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class User class CheckUserStatus
{ {
/** /**
* Handle an incoming request. * Handle an incoming request.
@@ -17,6 +18,9 @@ class User
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
/** @var User $user */
$user = $request->user();
$user->checkIsNormal();
return $next($request); return $next($request);
} }
@@ -29,12 +33,7 @@ class User
*/ */
public function terminate($request, $response) 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);
} }
} }
+1 -1
View File
@@ -18,7 +18,7 @@ class Permission
*/ */
public function handle(Request $request, Closure $next) public function handle(Request $request, Closure $next)
{ {
/** @var User $user */ /** @var CheckUserStatus $user */
$user = $request->user(); $user = $request->user();
if (!$user || (nexus()->isPlatformAdmin() && !$user->canAccessAdmin())) { if (!$user || (nexus()->isPlatformAdmin() && !$user->canAccessAdmin())) {
do_log("denied!"); do_log("denied!");
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.9.0'); defined('VERSION_NUMBER') || define('VERSION_NUMBER', '1.9.0');
defined('RELEASE_DATE') || define('RELEASE_DATE', '2025-05-04'); defined('RELEASE_DATE') || define('RELEASE_DATE', '2025-05-08');
defined('IN_TRACKER') || define('IN_TRACKER', false); defined('IN_TRACKER') || define('IN_TRACKER', false);
defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP"); defined('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org"); defined('NEXUSPHPURL') || define("NEXUSPHPURL","https://nexusphp.org");
+1 -1
View File
@@ -17,7 +17,7 @@ use App\Enums\Permission\RoutePermissionEnum;
Route::group(['middleware' => ['auth:sanctum']], function () { Route::group(['middleware' => ['auth:sanctum']], function () {
Route::group(['middleware' => []], function () { Route::group(['middleware' => ['checkUserStatus']], function () {
// Route::post('logout', [\App\Http\Controllers\AuthenticateController::class, 'logout']); // Route::post('logout', [\App\Http\Controllers\AuthenticateController::class, 'logout']);
// Route::get('user-me',[\App\Http\Controllers\UserController::class, 'me'])->name('user.me'); // Route::get('user-me',[\App\Http\Controllers\UserController::class, 'me'])->name('user.me');