is_admin) abort(403); $schools = School::with(['users','students','entries'])->orderBy('name')->get(); return view('admin.schools.index', ['schools' => $schools]); } public function edit(School $school) { if (! Auth::user()->is_admin) abort(403); return view('admin.schools.edit', ['school' => $school]); } public function update(School $school) { if (! Auth::user()->is_admin) abort(403); request()->validate([ 'name' => ['required'], 'address' => ['required'], 'city' => ['required'], 'state' => ['required'], 'zip' => ['required'], ]); $school->update([ 'name' => request('name'), 'address' => request('address'), 'city' => request('city'), 'state' => request('state'), 'zip' => request('zip'), ]); return redirect('/admin/schools'); } public function create() { if (! Auth::user()->is_admin) abort(403); return view('admin.schools.create'); } public function store(Request $request) { request()->validate([ 'name' => ['required'], 'address' => ['required'], 'city' => ['required'], 'state' => ['required'], 'zip' => ['required'], ]); $school = School::create([ 'name' => request('name'), 'address' => request('address'), 'city' => request('city'), 'state' => request('state'), 'zip' => request('zip'), ]); return redirect('/admin/schools')->with('success','School ' . $school->name . ' created'); } public function add_domain(Request $request, School $school) { if (! Auth::user()->is_admin) abort(403); request()->validate([ // validate that the combination of school and domain is unique on the school_email_domains table 'domain' => ['required'] ]); SchoolEmailDomain::updateOrInsert([ 'school_id' => $school->id, 'domain' => request('domain')],[]); return redirect('/admin/schools/' . $school->id . '/edit')->with('success','Domain Added'); } public function destroy_domain(Request $request, SchoolEmailDomain $domain) { // Destroy the $domain $domain->delete(); // return a redirect to the previous URL return redirect()->back(); } }