Implement basic logging #62

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

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin; namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Models\AuditLogEntry;
use App\Models\School; use App\Models\School;
use App\Models\SchoolEmailDomain; use App\Models\SchoolEmailDomain;
use App\Services\Invoice\InvoiceDataService; use App\Services\Invoice\InvoiceDataService;
@ -69,6 +70,13 @@ class SchoolController extends Controller
'state' => request('state'), 'state' => request('state'),
'zip' => request('zip'), 'zip' => request('zip'),
]); ]);
$message = 'Modified school #'.$school->id.' - '.$school->name.' with address <br>'.$school->address.'<br>'.$school->city.', '.$school->state.' '.$school->zip;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['schools' => [$school->id]],
]);
return redirect()->route('admin.schools.show', ['school' => $school->id])->with('success', return redirect()->route('admin.schools.show', ['school' => $school->id])->with('success',
'School '.$school->name.' updated'); 'School '.$school->name.' updated');
@ -100,6 +108,13 @@ class SchoolController extends Controller
'state' => request('state'), 'state' => request('state'),
'zip' => request('zip'), 'zip' => request('zip'),
]); ]);
$message = 'Created school #'.$school->id.' - '.$school->name.' with address <br>'.$school->address.'<br>'.$school->city.', '.$school->state.' '.$school->zip;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['schools' => [$school->id]],
]);
return redirect('/admin/schools')->with('success', 'School '.$school->name.' created'); return redirect('/admin/schools')->with('success', 'School '.$school->name.' created');
} }
@ -110,6 +125,13 @@ class SchoolController extends Controller
return to_route('admin.schools.index')->with('error', 'You cannot delete a school with students.'); return to_route('admin.schools.index')->with('error', 'You cannot delete a school with students.');
} }
$name = $school->name; $name = $school->name;
$message = 'Delete school #'.$school->id.' - '.$school->name;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['schools' => [$school->id]],
]);
$school->delete(); $school->delete();
return to_route('admin.schools.index')->with('success', 'School '.$school->name.' deleted'); return to_route('admin.schools.index')->with('success', 'School '.$school->name.' deleted');
@ -128,6 +150,12 @@ class SchoolController extends Controller
'school_id' => $school->id, 'school_id' => $school->id,
'domain' => request('domain'), 'domain' => request('domain'),
]); ]);
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => 'Added '.request('domain').' as an email domain for school #'.$school->id.' - '.$school->name,
'affected' => ['schools' => [$school->id]],
]);
return redirect()->route('admin.schools.show', $school)->with('success', 'Domain Added'); return redirect()->route('admin.schools.show', $school)->with('success', 'Domain Added');

View File

@ -2,6 +2,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Models\AuditLogEntry;
use App\Models\School; use App\Models\School;
use App\Models\SchoolEmailDomain; use App\Models\SchoolEmailDomain;
use Illuminate\Http\RedirectResponse; use Illuminate\Http\RedirectResponse;
@ -34,16 +35,41 @@ class SchoolController extends Controller
'state' => request('state'), 'state' => request('state'),
'zip' => request('zip'), 'zip' => request('zip'),
]); ]);
$message = 'Created school #'.$school->id.' - '.$school->name.' with address <br>'.$school->address.'<br>'.$school->city.', '.$school->state.' '.$school->zip;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['schools' => [$school->id]],
]);
if (! Auth::user()->school) { if (! Auth::user()->school) {
Auth::user()->update([ Auth::user()->update([
'school_id' => $school->id, 'school_id' => $school->id,
]); ]);
$message = 'Set user '.auth()->user()->full_name().' ('.auth()->user()->email.') as a director at '.$school->name.'(#'.$school->id.')';
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'users' => [auth()->user()->id],
'schools' => [$school->id],
],
]);
SchoolEmailDomain::create([ SchoolEmailDomain::create([
'school_id' => $school->id, 'school_id' => $school->id,
'domain' => Auth::user()->emailDomain(), 'domain' => Auth::user()->emailDomain(),
]); ]);
$message = 'Added '.auth()->user()->emailDomain().' as an email domain for '.$school->name.' (#'.$school->id.')';
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => [
'schools' => [$school->id],
],
]);
} }
return redirect('/schools/'.$school->id); return redirect('/schools/'.$school->id);
@ -96,6 +122,13 @@ class SchoolController extends Controller
'state' => request('state'), 'state' => request('state'),
'zip' => request('zip'), 'zip' => request('zip'),
]); ]);
$message = 'Modified school #'.$school->id.' - '.$school->name.' with address <br>'.$school->address.'<br>'.$school->city.', '.$school->state.' '.$school->zip;
AuditLogEntry::create([
'user' => auth()->user()->email,
'ip_address' => request()->ip(),
'message' => $message,
'affected' => ['schools' => [$school->id]],
]);
return redirect()->route('schools.show', $school->id)->with('success', 'School details updated'); return redirect()->route('schools.show', $school->id)->with('success', 'School details updated');
} }

View File

@ -45,6 +45,6 @@ Route::middleware(['auth', 'verified'])->controller(SchoolController::class)->gr
Route::get('/schools/create', 'create')->name('schools.create'); Route::get('/schools/create', 'create')->name('schools.create');
Route::post('/schools', 'store')->name('schools.store'); Route::post('/schools', 'store')->name('schools.store');
Route::get('/schools/{school}/edit', 'edit')->name('schools.edit'); Route::get('/schools/{school}/edit', 'edit')->name('schools.edit');
Route::get('/schools/{school}', 'show')->name('schools.show')->name('schools.show'); Route::get('/schools/{school}', 'show')->name('schools.show');
Route::patch('/schools/{school}', 'update')->name('schools.update'); Route::patch('/schools/{school}', 'update')->name('schools.update');
}); });