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
->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([
+1 -1
View File
@@ -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 = [
+1 -1
View File
@@ -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!");
@@ -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);
}
}
+1 -1
View File
@@ -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!");
+1 -1
View File
@@ -1,6 +1,6 @@
<?php
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('PROJECTNAME') || define("PROJECTNAME","NexusPHP");
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' => []], 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');