Updated user management

This commit is contained in:
m.razaghi
2026-08-16 17:15:47 +03:30
parent 452bd77f84
commit 27b365c7e2
3 changed files with 41 additions and 2 deletions

View File

@@ -112,6 +112,25 @@ class UsersController extends Controller
return view('admin.users.update', compact('user', 'paidPlans'));
}
/**
* Instantly revoke a user's active subscriptions (Set to 0 days)
*/
public function revokeSubscription(Request $request)
{
$request->validate([
'user_id' => 'required|exists:users,id',
]);
$user = \App\Models\User::findOrFail($request->user_id);
// Instantly expire ALL active subscriptions by setting them to 'now()'
$user->userSubscribers()
->where('expired_at', '>', now())
->update(['expired_at' => now()]);
return back()->with('success', 'اشتراک کاربر با موفقیت صفر (لغو) شد.');
}
public function update(UpdateUserRequest $request, User $user)
{
$validated = $request->validated();

View File

@@ -32,11 +32,11 @@
</div>
</div>
<!-- NEW: Manual Subscription Box -->
<!-- Manual Subscription & Revoke Box -->
<div class="col-lg-6">
<div class="card">
<div class="card-body">
<h4 class="card-title mb-4">افزودن اشتراک دستی (پولی)</h4>
<h4 class="card-title mb-4">مدیریت اشتراک</h4>
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
@@ -45,6 +45,7 @@
<div class="alert alert-danger">{{ session('error') }}</div>
@endif
<!-- ADD SUBSCRIPTION FORM -->
<form action="{{ route('admin.subscriptions.manual') }}" method="POST">
@csrf
<input type="hidden" name="user_id" value="{{ $user->id }}">
@@ -61,6 +62,20 @@
<button type="submit" class="btn btn-success w-100">ثبت اشتراک دستی</button>
</form>
<hr class="my-4">
<!-- REVOKE (0 DAYS) FORM -->
<h5 class="text-danger mb-2">لغو اشتراک</h5>
<p class="text-muted font-size-13">با این کار، تمامی روزهای باقی‌مانده از اشتراک فعلی کاربر صفر خواهد شد.</p>
<form action="{{ route('admin.subscriptions.revoke') }}" method="POST">
@csrf
<input type="hidden" name="user_id" value="{{ $user->id }}">
<button type="submit" class="btn btn-outline-danger w-100" onclick="return confirm('آیا مطمئنید که می‌خواهید اشتراک این کاربر را صفر کنید؟')">
صفر کردن اشتراک (۰ روز)
</button>
</form>
</div>
</div>
</div>

View File

@@ -85,4 +85,9 @@ Route::middleware(['auth', config('jetstream.auth_session')])->group(function ()
Route::post('/users/manual-subscription', [\App\Http\Controllers\Admin\UsersController::class, 'addManualSubscription'])
->name('admin.subscriptions.manual');
Route::post('/users/revoke-subscription', [\App\Http\Controllers\Admin\UsersController::class, 'revokeSubscription'])
->name('admin.subscriptions.revoke');
});