<?php

namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Symfony\Component\HttpFoundation\IpUtils;

use Closure;

class RedirectInvalidIPs
{
    protected $auth;

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
//        $ips = json_decode(Auth::user()->ips);
//        $ips_num = Auth::user()->ips_num;
//
//        if ($ips == null || count($ips) < $ips_num && ! in_array(request()->ip(),$ips)){
//            $ips[] = request()->ip();
//            Auth::user()->update([
//                'ips' => $ips,
//            ]);
//        }
//
//        if (! $this->isValidIp(request()->ip())) {
//            Auth::guard()->logout();
//            $request->session()->flush();
//            $request->session()->regenerate();
//
//            return redirect('/contact')->with('msg_ip','هذا الجهاز غير مسجل لهذا الحساب من فضلك تواصل مع الدعم لحل المشكلة');
//        }
        return $next($request);
    }

    /**
     * Check if the given IP is valid.
     *
     * @param $ip
     * @return bool
     */
    protected function isValidIp($ip)
    {
        if (Auth::user()->ips != null){
            return is_array(Auth::user()->ips) ? in_array($ip, Auth::user()->ips) : in_array($ip, json_decode(Auth::user()->ips));
        }
    }

    /**
     * Check if the ip is in the given IP-range.
     *
     * @param $ip
     * @return bool
     */
    protected function isValidIpRange($ip)
    {
        return IpUtils::checkIp($ip, $this->ipRanges);
    }


}
