public function rate(Request $request, $id) { $Quote = Quote::withCount(['ratesPlus', 'ratesMinus'])->find($id); if (null == $Quote) { return response()->json(['status' => 'error', 'message' => trans('app.not_found')]); } $count = $Quote->rates_plus_count - $Quote->rates_minus_count; $voted = $request->cookie(sha1('voted')); $voted = null == $voted ? [] : json_decode($voted); if (!empty($voted)) { if (in_array($id, $voted)) { return response()->json(['status' => 'error', 'message' => trans('app.twice_vote'), 'rate' => $count])->cookie(sha1('voted'), json_encode($voted), 60 * 60 * 24 * 120); } } $voted[] = $id; $Rate = Rate::where('quote_id', $id)->where('ip', $request->ip())->first(); if (null != $Rate) { return response()->json(['status' => 'error', 'message' => trans('app.twice_vote'), 'rate' => $count])->cookie(sha1('voted'), json_encode($voted), 60 * 60 * 24 * 120); } $rate = 1 == strpos($request->getPathInfo(), 'omg') ? 1 : (1 == strpos($request->getPathInfo(), 'wtf') ? -1 : 0); $Rate = new Rate(); $Rate->quote_id = $id; $Rate->ip = $request->ip(); $Rate->rate = $rate; $Rate->save(); $Quote->count += $rate; $Quote->save(); return response()->json(['status' => 'ok', 'message' => trans('app.voted'), 'rate' => $count + $rate])->cookie(sha1('voted'), json_encode($voted), 60 * 60 * 24 * 120); }
protected function getFilters() { $sort_by = $this->request->has('sort-by'); if (!($param = $this->request->has('sort-by'))) { $sort_by = 'all'; } else { $sort_by = strtolower($this->request->get('sort-by')); } switch ($sort_by) { case 'all': case 'popularity': // case 'most-recent': // case 'most-recent': case 'most-bought': // case 'discounts': //DO NOTHING break; default: // Invalid request abort(404); } $filters = [['active' => $sort_by === 'all' ? true : false, 'url' => $this->request->getPathInfo() . '?sort-by=all', 'name' => 'All'], ['active' => $sort_by === 'popularity' ? true : false, 'url' => $this->request->getPathInfo() . '?sort-by=popularity', 'name' => 'Popularity'], ['active' => $sort_by === 'most-bought' ? true : false, 'url' => $this->request->getPathInfo() . '?sort-by=most-bought', 'name' => 'Most Bought']]; // $profile = $this->getUser(); // // if ($profile instanceof Merchant) { // // // } elseif ($profile instanceof User) { // // } return $filters; }
public function mock() { $this->config = $this->getConfigForEndpoint(); if ($this->config) { return $this->getNewResponse(); } throw new EndpointNotConfiguredException(sprintf('%s %s is not configured in config/apimocker.php', $this->request->getMethod(), $this->request->getPathInfo())); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { if (!$request->is("sitemap") && $request->fullUrl() != '' && $this->auth->guest()) { $aSiteMap = \Cache::get('sitemap', []); $changefreq = 'always'; if (!empty($aSiteMap[$request->fullUrl()]['added'])) { $aDateDiff = Carbon::createFromTimestamp($aSiteMap[$request->fullUrl()]['added'])->diff(Carbon::now()); if ($aDateDiff->y > 0) { $changefreq = 'yearly'; } else { if ($aDateDiff->m > 0) { $changefreq = 'monthly'; } else { if ($aDateDiff->d > 6) { $changefreq = 'weekly'; } else { if ($aDateDiff->d > 0 && $aDateDiff->d < 7) { $changefreq = 'daily'; } else { if ($aDateDiff->h > 0) { $changefreq = 'hourly'; } else { $changefreq = 'always'; } } } } } } $aSiteMap[$request->fullUrl()] = ['added' => time(), 'lastmod' => Carbon::now()->toIso8601String(), 'priority' => 1 - substr_count($request->getPathInfo(), '/') / 10, 'changefreq' => $changefreq]; \Cache::put('sitemap', $aSiteMap, 2880); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { if ($request->isMethod('get') && !$request->has('PageSpeed') && !$request->is(config('site.admin_path') . '*') && !$request->is('avatar/*') && !$request->is('my/*') && !$request->is('*/login') && !$request->is('*/authorize') && !in_array($request->path(), ['sitemap.xml', 'logout', 'login'])) { $aSiteMap = Cache::get('sitemap', []); $changefreq = 'always'; if (!empty($aSiteMap[$request->fullUrl()]['added'])) { $aDateDiff = Carbon::createFromTimestamp($aSiteMap[$request->fullUrl()]['added'])->diff(Carbon::now()); if ($aDateDiff->y > 0) { $changefreq = 'yearly'; } else { if ($aDateDiff->m > 0) { $changefreq = 'monthly'; } else { if ($aDateDiff->d > 6) { $changefreq = 'weekly'; } else { if ($aDateDiff->d > 0 && $aDateDiff->d < 7) { $changefreq = 'daily'; } else { if ($aDateDiff->h > 0) { $changefreq = 'hourly'; } else { $changefreq = 'always'; } } } } } } $aSiteMap[$request->fullUrl()] = ['added' => time(), 'lastmod' => Carbon::now()->format('Y-m-d\\TH:i:sP'), 'priority' => 1 - substr_count($request->getPathInfo(), '/') / 10, 'changefreq' => $changefreq]; Cache::forever('sitemap', $aSiteMap); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (auth()->guest() && $request->getPathInfo() != '/backend/login') { return redirect('/backend/login'); } return $next($request); }
/** * Track clicked links and form submissions. * * @param Request $request * @return void */ public function track(Request $request) { // Don't track if there is no active experiment. if (!$this->session->get('experiment')) { return; } // Since there is an ongoing experiment, increase the pageviews. // This will only be incremented once during the whole experiment. $this->pageview(); // Check current and previous urls. $root = $request->root(); $from = ltrim(str_replace($root, '', $request->headers->get('referer')), '/'); $to = ltrim(str_replace($root, '', $request->getPathInfo()), '/'); // Don't track refreshes. if ($from == $to) { return; } // Because the visitor is viewing a new page, trigger engagement. // This will only be incremented once during the whole experiment. $this->interact(); $goals = $this->getGoals(); // Detect goal completion based on the current url. if (in_array($to, $goals) or in_array('/' . $to, $goals)) { $this->complete($to); } // Detect goal completion based on the current route name. if ($route = Route::currentRouteName() and in_array($route, $goals)) { $this->complete($route); } }
function index(Request $request, $model) { $M = $this->models[$model]; $data = $M::latest()->paginate(20); $path = trim($request->getPathInfo(), '/'); $data->setPath('#!' . $path); return \View::make('admin.form.list')->withData($data)->withModel($model); }
public function search(Request $request, $searchKeywords) { $xs = new \XS('inspirer'); $search = $xs->search; $page = $request->get('p', 1); $page = $page < 1 ? 1 : $page; $result = $search->setQuery($searchKeywords)->setLimit(6, ($page - 1) * 5)->search(); if (count($result) == 0) { abort(404); } $next = count($result) < 6 ? null : $request->getPathInfo() . "?p=" . ($page + 1); $prev = $page == 1 ? null : $request->getPathInfo() . "?p=" . ($page - 1); $articles = []; foreach ($result as $key => $row) { $articles[] = (object) array('id' => $row->id, 'name' => $row->name, 'title' => $search->highlight($row->title), 'originalTitle' => $row->title, 'description' => $search->highlight($row->description), 'content' => $search->highlight($row->content)); } return view('page/search', ['articles' => $articles, 'searchKeyword' => $searchKeywords, 'next' => $next, 'prev' => $prev]); }
/** * Log all api requests * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle(Request $request, \Closure $next) { try { $this->debug($request->getMethod() . ' ' . $request->getPathInfo()); } catch (\Exception $_ex) { // Ignored. } return parent::handle($request, $next); }
protected function findRoute(Request $request, array $routes) { foreach ($routes as $key => $route) { list($method, $domain, $uri) = explode(' ', $key); if ($request->getMethod() == $method && $request->getHost() == $domain && trim($request->getPathInfo(), '/') === trim($route['uri'], '/')) { return $route; } } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $path = $request->getPathInfo(); if (strpos($path, '/api/') === 0) { \Config::set('session.driver', 'array'); \Config::set('cookie.driver', 'array'); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->guest()) { if ($request->ajax()) { return response('Unauthorized.', 401); } else { return redirect()->guest('login'); } } if (\Auth::user()->type != 'user') { if (\Auth::user()->type == 'admin') { return redirect()->route('admin.home'); } return new Response('Forbidden', 403); } if (\Auth::user()->birthdate == null && $request->getPathInfo() != '/postaccount' && $request->getPathInfo() != '/newaccount') { return redirect()->route('newaccount'); } return $next($request); }
/** * Vérification des données utilisateurs avant la création de l'enchère * * @param Request $request * @param int $item_id Identifiant de l'item * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function add(Request $request, $item_id) { // Après quelques vérifications, l'utilisateur saura s'il a le droit d'enchérir ou non $denied = false; // On récupère l'ID du formulaire (permettra de savoir à quel formulaire une erreur s'est produite) $form_id = $request->input('_form_id', 'default'); // Si l'utilisateur a supprimé le champ (gg), on essaye de récupérer l'ID dans l'URL if ($form_id === null && preg_match('/\\/items/', URL::previous())) { $url_items = explode('/', $request->getPathInfo()); $form_id = 'form_' . array_pop($url_items); } // Les messages d'erreurs seront désormais spécifiques à un formulaire, et pas tous $this->validatesRequestErrorBag = $form_id; // Permettra de savoir dans quel formulaire s'est produite l'erreur $request->session()->flash('errorBag', $this->validatesRequestErrorBag); // On check si l'item existe bien dans la BBD ('Ivre, il enchérit une vente qui n'existe pas, la suite va vous surprendre !) $item = Items::get()->where('id', $item_id)->first(); $min_price = $item->getPrice() + 1; // L'enchère n'existe pas if ($item === null) { $denied = true; $request->session()->flash('message', 'danger|Cette enchère n\'existe pas'); return redirect(route('items')); } // L'enchère existe, donc on fait quelques tests dessus if ($item !== null) { // La vente n'a pas encore commencé if (strtotime($item->date_end) - time() < 0) { $denied = true; $request->session()->flash('message', 'danger|L\'enchère n\'a même pas commencé, calmez-vous...'); // La vente est terminé } elseif (strtotime($item->date_start) - time() > 0) { $denied = true; $request->session()->flash('message', 'danger|L\'enchère est terminée !'); } // L'utilisateur a atteint le nombre maximum de renchère sur cette annonce if ($item->getUserCantBid()) { $denied = true; $request->session()->flash('message', 'danger|Vous avez dépassé les ' . MAX_BID_PER_SALE . ' propositions d\'enchères maximales !'); } } // Le vendeur ne peut pas enchérir sa propre annonce... if ($item->isSeller()) { $denied = true; $request->session()->flash('message', 'danger|Il n\'est pas possible d\'enchérir votre annonce..'); } // Pour une quelconque raison, l'utilisateur n'a pas pu enchérir if ($denied) { return redirect(route('items')); } // Le prix rentré doit être supérieur à la valeur minimale de l'enchère $this->validate($request, ['price' => 'required|numeric|min:' . $min_price], ['price.min' => 'Le prix doit être supérieur à :min €.']); return $this->create($request, $item_id); }
/** * Shall be throttle limit enabled for given request? * * @param \Illuminate\Http\Request $request * * @return bool */ protected function isEnabledFor($request) { // Limit only POST requests if ($request->getMethod() != 'POST') { return false; } // Disable throttle limit for voting if (starts_with($request->getPathInfo(), '/ajax/vote/')) { return false; } return true; }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!\Config::get('app.debug') && Plugin::$routerActive === false) { $cachePath = (new CacheFileHandler())->getCachePath(); $blacklist = file_exists($cachePath . '/index-blacklist.config') ? file_get_contents($cachePath . '/index-blacklist.config') : null; $paramBlacklist = file_exists($cachePath . '/param-blacklist.config') ? json_decode(file_get_contents($cachePath . '/param-blacklist.config'), true) : []; $paramBlacklistFunctionFile = $cachePath . '/param-blacklist-function.php'; if (file_exists($paramBlacklistFunctionFile)) { include $paramBlacklistFunctionFile; if (preg_match('/^(?!\\/backend)(?!\\/combine)' . $blacklist . '/i', $request->getPathInfo()) === 1 && !isParamBlacklisted($paramBlacklist)) { $file = $cachePath . $request->getPathInfo() . '.html'; if (file_exists($file)) { return \Response::make(file_get_contents($file)); } else { try { /** * For development purpose, you must set the loopbackUrl on config to use a different baseURL for internal php server. * Because it can handle only one request at a time, you need to open 2 servers with different port or hostname. */ $responseRaw = file_get_contents(\Config::get('app.loopbackUrl', \Config::get('app.url')) . $request->getPathInfo() . '?nocache=1'); } catch (\ErrorException $e) { if (strstr($e->getMessage(), '404 Not Found')) { $controller = \App::make('Cms\\Classes\\Controller'); $response = $controller->run('/404'); $response->setStatusCode(404); $this->tryLazyCache($request->getPathInfo(), $response->getContent()); return $response; } else { throw $e; } } $this->tryLazyCache($request->getPathInfo(), $responseRaw); return \Response::make($responseRaw); } } } } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) { $path = $request->getPathInfo(); $uid = cookie::get('uid'); $redirectPath = cookie::get('redirectPath') ? cookie::get('redirectPath') : '/'; if (in_array($path, array('/login', '/register', '/loginDo', '/registerDo')) && !empty($uid)) { return redirect($redirectPath); } $pathArray = array('/send', '/sendDo', '/success'); if (in_array($path, $pathArray) && empty($uid)) { return redirect("login"); } return $next($request); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $url = $request->get("long_url"); $shortUrl = new ShortUrl(); $shortUrl->long_url = $url; $generatedUrl = ''; do { $generatedUrl = 'http://' . $this->pubDir . $request->getPathInfo() . "/" . str_random(4); } while (count(ShortUrl::where('short_url', $generatedUrl)->get()) > 0); $shortUrl->short_url = $generatedUrl; $shortUrl->save(); session(['generated_url' => $generatedUrl]); return redirect()->route('sandbox.short.index'); }
/** * Get file path based on request pathinfo * * @param \Illuminate\Http\Request $request * @return string */ public function getFilePath(Request $request) { $pathinfo = $request->getPathInfo(); if ('' == $this->filesystem->extension($pathinfo)) { $file = 'index.html'; $dir = trim($pathinfo, '/'); } else { $file = basename($pathinfo); $dir = trim(dirname($pathinfo), '/'); } if (true === empty($dir)) { return "{$this->outputDir}/{$file}"; } return "{$this->outputDir}/{$dir}/{$file}"; }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($this->auth->guest()) { if ($request->ajax()) { return response('Unauthorized.', 401); } else { $uri = $request->getPathInfo(); if ($uri != '/') { return redirect()->guest('/'); } return view('welcome'); } } return $next($request); }
/** * Run the request filter. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $url = $request->getPathInfo(); if (strpos('/backend', $url) === false) { if (substr($url, 0, 9) === "/download") { $path = Config::get('filesystems.disks.local.root', storage_path() . '/app'); $file = $path . str_replace(["/download", "storage/app/"], "", urldecode($url)); if (file_exists($file) && is_file($file)) { return response()->download($file); } } elseif ($url !== "/") { $url = Post::checkUrl($url); } } return App::make('Cms\\Classes\\Controller')->run($url); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $routeName = $request->getPathInfo(); $routeName = substr($routeName, strrpos($routeName, '/') + 1); $userSections = $this->userService->getUserSections(); $found = false; foreach ($userSections as $userSection) { if ($routeName === $userSection['route']) { $found = true; break; } } if (!$found) { throw new NotFoundHttpException(); } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $array = []; /* $t = microtime(true); $micro = sprintf("%06d",($t - floor($t)) * 1000000); $d = new \DateTime( date('Y-m-d H:i:s.'.$micro, $t) ); */ $time_now = Carbon::now(); //$dd = "2016-03-20T18:00:30+0000" ; $dd = $time_now->toIso8601String(); // $microSeconds = str_replace("+0000","+02:00", $dd); if (!$request->is("sitemap") && $request->fullUrl() != '' && $this->auth->guest()) { $aSiteMap = \Cache::get('sitemap', []); $changefreq = 'always'; if (!empty($aSiteMap[$request->fullUrl()]['added'])) { $aDateDiff = Carbon::createFromTimestamp($aSiteMap[$request->fullUrl()]['added'])->diff($time_now); if ($aDateDiff->y > 0) { $changefreq = 'yearly'; } else { if ($aDateDiff->m > 0) { $changefreq = 'monthly'; } else { if ($aDateDiff->d > 6) { $changefreq = 'weekly'; } else { if ($aDateDiff->d > 0 && $aDateDiff->d < 7) { $changefreq = 'daily'; } else { if ($aDateDiff->h > 0) { $changefreq = 'hourly'; } else { $changefreq = 'always'; } } } } } } $aSiteMap[$request->fullUrl()] = ['added' => time(), 'lastmod' => $dd, 'priority' => 1 - substr_count($request->getPathInfo(), '/') / 10, 'changefreq' => 'always']; \Cache::put('sitemap', $aSiteMap, 2880); } return $next($request); }
/** * Set cache headers and 304 not modify if needed. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response */ protected function setCacheHeaders($request, $response) { if (starts_with($request->getPathInfo(), ['/images'])) { $stat = stat(session()->pull('requestImagePath')); } else { if (($view = $response->getOriginalContent()) instanceof View) { $stat = stat($view->getPath()); } } if (isset($stat)) { $response->setCache(['etag' => md5("{$stat['ino']}|{$stat['mtime']}|{$stat['size']}"), 'public' => true]); $response->setExpires(Carbon::now()->addDays(30)); if (null !== ($etag = $request->headers->get('If-None-Match')) || null !== $request->headers->get('If-Modified-Since')) { $etags = explode('-', $etag, -1); $request->headers->set('If-None-Match', count($etags) ? $etags[0] . '"' : $etag); $response->isNotModified($request); } } }
/** * @param Request $request * @param \Closure $next * * @return \Illuminate\Http\RedirectResponse * @throws \Exception */ public function handle($request, Closure $next) { if (!in_array($route = $request->getPathInfo(), ['/setup', '/setup_db'])) { try { if (!User::adminExists()) { return redirect()->to('/setup'); } } catch (QueryException $e) { try { //base table or view not found. \Cache::put('setup_db', true, config('df.default_cache_ttl')); return redirect()->to('/setup_db'); } catch (\Exception $ex) { throw $ex; } } } return $next($request); }
/** * BaseController constructor. * * @param Request $request */ public function __construct(Request $request) { //Get current request $this->request = $request; //Set active theme Theme::setActive('administration'); //Check user is logged in if (Sentinel::guest()) { if (!in_array($request->getPathInfo(), $this->routes)) { return Redirect::to('/admin/auth/login')->send(); } } else { $this->user = Sentinel::getUser(); if (self::isAdmin() == 1) { $this->globalViewData(); } else { Redirect::to('/404')->send(); } } }
/** * BaseController constructor. * * @param Request $request */ public function __construct(Request $request) { //Get current request $this->request = $request; //Set active theme Theme::setActive('dressplace'); //Check user is logged in if (Sentinel::guest()) { if (!in_array($request->getPathInfo(), $this->routes)) { // return Redirect::to('/admin/auth/login')->send(); } } else { $this->user = Sentinel::getUser(); self::getActiveUser(); } //Init system $this->systemInit(); //Load navigation $this->getNavPages(); $this->getCategories(); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $route = $request->getPathInfo(); if ('/setup' !== $route && '/setup_db' !== $route) { try { if (!User::adminExists()) { return redirect()->to('/setup'); } } catch (QueryException $e) { $code = $e->getCode(); if ($code === '42S02') { //Mysql base table or view not found. \Cache::put('setup_db', true, config('df.default_cache_ttl')); return redirect()->to('/setup_db'); } else { throw $e; } } } return $next($request); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * * @return mixed */ public function handle($request, Closure $next) { $route = $request->getPathInfo(); if ('/setup' !== $route) { try { if (!User::adminExists()) { return redirect()->to('/setup'); } } catch (QueryException $e) { $code = $e->getCode(); if ($code === '42S02') { //Mysql base table or view not found. \Artisan::call('migrate'); \Artisan::call('db:seed'); return redirect()->to('/setup'); } else { throw $e; } } } return $next($request); }
public function handle(Request $request, callable $next) { $forbidden = function ($id) use($request) { if ($request->ajax()) { return response('Forbidden', 403); } else { $path = $id ? 'event@details' : 'site@index'; return redirect(act($path, $id))->with('error', _('Sorry, but it seems you don\'t have permission to edit this event...')); } }; $path = $request->getPathInfo(); $param = substr($path, strrpos($path, '/') + 1, strrpos($path, '-') ?: strlen($path) + 1); if (!$param) { //should never arrive here \Log::warning('Tried to search for event ID in Staff middleware, but it was not found: ' . $path); return $forbidden($param); } else { if (!Auth::check() || !EventStaff::where('user_id', Auth::user()->id)->where('event_id', $param)->count()) { return $forbidden($param); } } return $next($request); }