예제 #1
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $ip = $request->getClientIp();
     $count = Ban::where('ip', '=', $ip)->count();
     if ($count > 0) {
         return response('banned', 403, ['Content-Type' => 'text/plain']);
     }
     return $next($request);
 }
예제 #2
0
 public function home(Request $request)
 {
     $filters = new Filters($request->get('filters'));
     if ($request->has('delete_and_ban')) {
         $files = FileRecord::ip($filters->ip)->get();
         foreach ($files as $file) {
             $file->delete();
         }
         Ban::createFromIp($filters->ip);
         return redirect()->to($filters->url([], ['delete_and_ban']))->with('success', new MessageBag(['Files deleted and IP ban created']));
     }
     $query = FileRecord::query()->filter($filters);
     $count = $query->count();
     $files = $query->orderBy('created_at', 'desc')->paginate(20)->appends($filters->queryParameters());
     $size = intval($this->db->table('file_records')->sum('filesize'));
     $size = FileSizeFormatter::format($size);
     return view('admin.home')->with('count', $count)->with('size', $size)->with('files', $files)->with('filters', $filters);
 }
예제 #3
0
파일: Ban.php 프로젝트: kimoi/madokami.com
 public static function createFromIp($ip)
 {
     $ban = Ban::create(['ip' => $ip]);
     return $ban;
 }