mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-24 03:57:22 +08:00
userModifyLog filter + api checkUserStatus
This commit is contained in:
@@ -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
@@ -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 = [
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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,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
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user