<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\MediaBlocklist; class MediaBlocklistController extends Controller { public function __construct() { $this->middleware('auth'); $this->middleware('admin'); } public function add(Request $request) { $this->validate($request, [ 'hash' => 'required|string|size:64', 'name' => 'nullable|string', 'description' => 'nullable|string|max:500', ]); $hash = $request->input('hash'); abort_if(preg_match("/^([a-f0-9]{64})$/", $hash) !== 1, 400); $name = $request->input('name'); $description = $request->input('description'); $mb = new MediaBlocklist; $mb->sha256 = $hash; $mb->name = $name; $mb->description = $description; $mb->save(); return redirect('/i/admin/media?layout=banned'); } public function delete(Request $request) { $this->validate($request, [ 'id' => 'required|integer' ]); $media = MediaBlocklist::findOrFail($request->input('id')); $media->delete(); return redirect('/i/admin/media?layout=banned'); } }