Implement basic logging #62

Merged
okorpheus merged 8 commits from auditionadmin-61 into master 2024-08-08 02:06:56 +00:00
2 changed files with 73 additions and 8 deletions
Showing only changes of commit ac12d6604a - Show all commits

View File

@ -4,11 +4,14 @@ namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Audition;
use App\Models\AuditLogEntry;
use App\Models\School;
use App\Models\Student;
use Illuminate\Support\Facades\Auth;
use function abort;
use function auth;
use function request;
use function to_route;
use function view;
@ -55,14 +58,24 @@ class StudentController extends Controller
return redirect('/admin/students/create')->with('error', 'This student already exists.');
}
Student::create([
$student = Student::create([
'first_name' => request('first_name'),
'last_name' => request('last_name'),
'grade' => request('grade'),
'school_id' => request('school_id'),
]);
$message = 'Created student #'.$student->id.' - '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
return redirect('/admin/students');
return redirect('/admin/students')->with('success', 'Created student successfully');
}
public function edit(Student $student)
@ -103,7 +116,8 @@ class StudentController extends Controller
->where('school_id', request('school_id'))
->where('id', '!=', $student->id)
->exists()) {
return redirect('/admin/students/'.$student->id.'/edit')->with('error', 'A student with that name already exists at that school');
return redirect('/admin/students/'.$student->id.'/edit')->with('error',
'A student with that name already exists at that school');
}
$student->update([
@ -113,7 +127,18 @@ class StudentController extends Controller
'school_id' => request('school_id'),
]);
return redirect('/admin/students');
$message = 'Updated student #'.$student->id.'<br>Name: '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
return redirect('/admin/students')->with('success', 'Student updated');
}
@ -123,6 +148,16 @@ class StudentController extends Controller
return to_route('admin.students.index')->with('error', 'You cannot delete a student with entries.');
}
$name = $student->full_name();
$message = 'Deleted student #'.$student->id.'<br>Name: '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
$student->delete();
return to_route('admin.students.index')->with('success', 'Student '.$name.' deleted successfully.');

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use App\Models\Audition;
use App\Models\AuditLogEntry;
use App\Models\Student;
use App\Rules\UniqueFullNameAtSchool;
use Illuminate\Http\Request;
@ -58,10 +59,18 @@ class StudentController extends Controller
'grade' => request('grade'),
'school_id' => Auth::user()->school_id,
]);
$message = 'Created student #'.$student->id.' - '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
$request->session()->put('auditionMessages', ['success', 'I did it again ma']);
return redirect('/students');
return redirect('/students')->with('success', 'Student Created');
}
/**
@ -104,7 +113,8 @@ class StudentController extends Controller
->where('school_id', Auth::user()->school_id)
->where('id', '!=', $student->id)
->exists()) {
return redirect()->route('students.edit', $student)->with('error', 'A student with that name already exists at your school.');
return redirect()->route('students.edit', $student)->with('error',
'A student with that name already exists at your school.');
}
$student->update([
@ -112,6 +122,16 @@ class StudentController extends Controller
'last_name' => request('last_name'),
'grade' => request('grade'),
]);
$message = 'Updated student #'.$student->id.'<br>Name: '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
return redirect('/students')->with('success', 'Student updated successfully.');
}
@ -124,6 +144,16 @@ class StudentController extends Controller
if ($request->user()->cannot('delete', $student)) {
abort(403);
}
$message = 'Deleted student #'.$student->id.'<br>Name: '.$student->full_name().'<br>Grade: '.$student->grade.'<br>School: '.$student->school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'students' => [$student->id],
'schools' => [$student->school_id],
],
]);
$student->delete();
return redirect(route('students.index'));