done lots of work till now
This commit is contained in:
1 parent
a7434e33d7
commit
c87c4bfd6d
10 files changed
+256
-116
No files matched your search
@@ -56,6 +56,11 @@ class RegisteredUserController extends Controller
|
||||
'nationality' => $request->nationality,
|
||||
]);
|
||||
|
||||
// Assign super-admin role to the first registered user
|
||||
if (User::count() === 1) {
|
||||
$user->assignRole('super-admin');
|
||||
}
|
||||
|
||||
event(new Registered($user));
|
||||
|
||||
// Send welcome email
|
||||
|
||||
@@ -18,12 +18,26 @@ class InvoiceController extends Controller
|
||||
*
|
||||
* @return \Illuminate\View\View
|
||||
*/
|
||||
public function index()
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
$invoices = Invoice::where('payer_user_id', $user->id)
|
||||
->with(['student', 'tenant'])
|
||||
->get();
|
||||
$query = Invoice::where('payer_user_id', $user->id)
|
||||
->with(['student', 'tenant']);
|
||||
|
||||
// Filter by status
|
||||
if ($request->has('status') && in_array($request->status, ['pending', 'paid'])) {
|
||||
$query->where('status', $request->status);
|
||||
}
|
||||
|
||||
// Filter by date range
|
||||
if ($request->has('start_date') && $request->start_date) {
|
||||
$query->where('due_date', '>=', $request->start_date);
|
||||
}
|
||||
if ($request->has('end_date') && $request->end_date) {
|
||||
$query->where('due_date', '<=', $request->end_date);
|
||||
}
|
||||
|
||||
$invoices = $query->get();
|
||||
|
||||
return view('invoices.index', compact('invoices'));
|
||||
}
|
||||
|
||||
@@ -667,6 +667,58 @@ class MemberController extends Controller
|
||||
return response()->json(['success' => true, 'message' => 'Goal updated successfully']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Confirm and remove the specified member from storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function confirmDelete(Request $request, $id)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'confirm_name' => 'required|string',
|
||||
]);
|
||||
|
||||
$user = Auth::user();
|
||||
|
||||
// Check if user is super-admin
|
||||
$isSuperAdmin = $user->hasRole('super-admin');
|
||||
|
||||
// Prevent deleting own account
|
||||
if ($user->id == $id) {
|
||||
return redirect()->back()
|
||||
->with('error', 'You cannot delete your own account.');
|
||||
}
|
||||
|
||||
// For regular users, verify family relationship exists
|
||||
if (!$isSuperAdmin) {
|
||||
UserRelationship::where('guardian_user_id', $user->id)
|
||||
->where('dependent_user_id', $id)
|
||||
->firstOrFail();
|
||||
}
|
||||
|
||||
$member = User::findOrFail($id);
|
||||
|
||||
// Verify the confirmation name matches
|
||||
if ($validated['confirm_name'] !== $member->full_name) {
|
||||
return redirect()->back()
|
||||
->with('error', 'Confirmation name does not match. Account deletion cancelled.');
|
||||
}
|
||||
|
||||
$memberName = $member->full_name;
|
||||
$member->delete();
|
||||
|
||||
// Redirect based on user type
|
||||
if ($isSuperAdmin) {
|
||||
return redirect()->route('admin.platform.members')
|
||||
->with('success', $memberName . ' has been removed successfully.');
|
||||
}
|
||||
|
||||
return redirect()->route('members.index')
|
||||
->with('success', 'Member removed successfully.');
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified member from storage.
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user