/** * Shows a listing of modmails based on the given criteria */ public function listing(Request $request) { $input = []; if ($request->session()->has('input') && count($request->all()) < 2) { $input = $request->session()->get('input'); } else { $input = $request->all(); $request->session()->put('input', $input); } $input['startdate'] = strtotime($input['startdate']); $input['enddate'] = strtotime($input['enddate']) + 60 * 60 * 24; $input['order'] = intval($input['order']); $db = DB::connection('mongodb'); $modmail = $db->collection('modmail'); if ($input['subject'] != '') { $modmail->orWhere('subject', 'like', '%' . $input['subject'] . '%')->orWhere('replies.subject', 'like', '%' . $input['subject'] . '%'); } if ($input['body'] != '') { $modmail->orWhere('body', 'like', '%' . $input['body'] . '%')->orWhere('replies.body', 'like', '%' . $input['body'] . '%'); } if ($input['author'] != '') { $modmail->orWhere('author', $input['author'])->orWhere('replies.author', $input['author']); } $results = $modmail->where('created_at', '>', $input['startdate'])->where('created_at', '<', $input['enddate'])->orderBy('created_at', $input['order'] == 1 ? 'asc' : 'desc')->take(2000)->paginate(50); $filters = ['start' => number_format($results->perPage() * ($results->currentPage() - 1) + 1), 'end' => number_format($results->perPage() * $results->currentPage()), 'total' => number_format($results->total()), 'from' => strftime('%d %B %Y', $input['startdate']), 'to' => strftime('%d %B %Y', $input['enddate']), 'author' => $input['author'] != '' ? $input['author'] : 'anyone', 'subject' => $input['subject'] != '' ? $input['subject'] : 'anything', 'body' => $input['body'] != '' ? $input['body'] : 'anything']; $data = ['results' => $results, 'filters' => $filters]; return view('log.modmail.listing', $data); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param Closure $next * @param string|null $guard * * @return \Illuminate\Http\RedirectResponse|\Symfony\Component\HttpFoundation\Response * * @fires JsonWebTokenExpired */ public function handle($request, Closure $next, $guard = null) { $autheticated_user = Auth::guard($guard)->user(); $has_valid_token = false; // Is the user has used "remember me" the token may not be in their session when they return if ($request->session()->has('jwt')) { $token = $request->session()->get('jwt'); try { $token_user = $this->auth->authenticate($token); if ($token_user->id !== $autheticated_user->id) { throw new JWTException('Token does not belong to the authenticated user'); } $has_valid_token = true; } catch (TokenExpiredException $e) { $has_valid_token = false; } catch (JWTException $e) { if ($request->ajax()) { return response('Unauthorized.', 401); } else { return redirect()->guest('login'); } } } // If there is no valid token, generate one if (!$has_valid_token) { event(new JsonWebTokenExpired($autheticated_user)); } return $next($request); }
public function getTutorSearch(Request $request) { $defaultsubjects = DefaultSubject::OrderBy('subject')->get(); $sort = 'N'; if ($request->has('tutorsearch')) { if ($request->session()->has('tutorsearch')) { $request->session()->forget('tutorsearch'); } $request->session()->put('tutorsearch', $request->input('tutorsearch')); $input = $request->input('tutorsearch'); if ($request->session()->has('tutorcount')) { $request->session()->forget('tutorcount'); } $t = User::with('tutorinfo')->with('subjects')->select('users.*')->where(['type' => 'tutor'])->leftJoin('subjects', function ($join) { $join->on('subjects.userid', '=', 'users.id'); })->whereIn('subject', $input)->orderBy('subjects.subject', 'ASC')->groupBy('users.id')->get(); $counttutor = count($t); $request->session()->put('tutorcount', $counttutor); } else { $counttutor = $request->session()->get('tutorcount'); $input = $request->session()->get('tutorsearch'); } $tutors = User::with('tutorinfo')->with('subjects')->select('users.*')->where(['type' => 'tutor'])->leftJoin('subjects', function ($join) { $join->on('subjects.userid', '=', 'users.id'); })->whereIn('subject', $input)->groupBy('users.id')->paginate(10); $tutors->setpath(URL::route('tutorsearch')); return view('project.main.findtutor')->with('title', 'Find Private Tutor | ' . $this->sitename)->with('tutors', $tutors)->with('tutorcount', $counttutor)->with('sort', $sort)->withsubjects($input)->with('defaultsubjects', $defaultsubjects); }
public function getLogout(Request $request) { $request->session()->forget('email'); $request->session()->forget('password'); $request->session()->forget('user'); return redirect()->to('login'); }
public function reset(Request $request) { Auth::logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect('/'); }
/** * Log the user out of the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function logout(Request $request) { $this->guard()->logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect('/login'); }
/** * Run the request filter. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$request->session()->has('sift_session_id')) { $request->session()->put('sift_session_id', Str::random(24)); } return $next($request); }
public function uploadImage(Request $request) { $file = Input::file('image1'); $rules = array('image1' => 'required|image'); $result = array('success' => 0); $validator = Validator::make(array('image1' => $file), $rules); if (!$validator->fails() && $file->isValid()) { if ($request->session()->has('image')) { @unlink($request->session()->get('image')); } $destpath = 'uploads'; $origname = $file->getClientOriginalName(); $ext = $file->getClientOriginalExtension(); $id = 1; while (file_exists($destpath . '/' . $id . '-' . $origname)) { $id++; } $filename = $id . '-' . $origname; $url = $destpath . '/' . $filename; $thumb_url = $destpath . '/thumbs/' . $filename; $file->move($destpath, $filename); $thumb = Image::make($url)->resize(222, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($thumb_url); $request->session()->put('image', $url); $result = array('success' => 1, 'url' => $url, 'thumb_url' => $thumb_url); } return response()->json($result); }
/** * @param Request $request * @return \Illuminate\Http\RedirectResponse */ public function getLogout(Request $request) { $request->session()->forget('user'); $request->session()->forget('email'); $request->session()->forget('password'); return redirect()->to('frontend/login/login')->withSuccess('Logged out successfully'); }
/** * Permet de ré-activer un compte * * @param Request $request * @param int $user_id Identifiant utilisateur * @param string $credentials_hash Hash des credentials de l'utilisateur * @param string $deleted_at_hash Hash de la date de la désactivation du compte * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function enable(Request $request, $user_id, $credentials_hash, $deleted_at_hash) { // Oui, c'est sale, mais c'est pour éviter de dire à un utilisateur malveillant que le compte n'existe pas, existe, // que c'est le hash des credentials qui est mauvais, ou que c'est le hash du deleted_at qui est mauvais // Au final, s'il y a une étape qui a merdée, on lui dit juste que la réactivation était impossible. :-) $error = false; // On n'oublie pas le withTrashed(), sinon ça ne renvoie rien $user = User::withTrashed()->find($user_id); if ($user === null) { $error = true; } if (!$error && ($credentials_hash !== $user->getHashedCredentials() || $deleted_at_hash !== $user->getHashedDeletedAt())) { $error = true; } if ($error) { $request->session()->flash('message', 'danger|La réactivation de ce compte est impossible.'); } else { // Réactivation du compte $user->deleted_at = null; $user->update(); Auth::loginUsingId($user->id); $request->session()->flash('message', 'success|Votre compte a été réactivé avec succès !'); } return redirect(route('index')); }
public function logout(Request $request) { if ($request->session()->has('ApiDocsPassword')) { $request->session()->forget('ApiDocsPassword'); } return redirect('apidocs/login'); }
/** * Log the user out of the application. * * @param Request $request * * @return \Illuminate\Http\Response */ public function getLogout(Request $request) { $this->guard()->logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect()->route('home')->with(['success' => 'You are logged out. Come again!']); }
/** * /login * Authenticate the user via Google OAuth then redirect to homepage. * * @param Request $request * @param Google_Client $googleClient * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse */ public function anyIndex(Request $request, Google_Client $googleClient) { if ($code = $request->input('code')) { if ($request->session()->get('state') != $request->input('state')) { App::abort(400, 'The session state did not match.'); } $googleClient->authenticate($code); // Now get the user and log them in to the app $oauth2 = new Google_Service_Oauth2($googleClient); $userInfo = $oauth2->userinfo->get(); if ($user = User::where('google_user_id', $userInfo->id)->first()) { // User is already in DB. } else { // Create a new user. $user = new User(['google_user_id' => $userInfo->id]); } $user->setAccessToken($googleClient->getAccessToken(), $googleClient->getRefreshToken()); $user->name = $userInfo->name; $user->save(); Auth::login($user); return redirect()->secure('/'); } $state = (string) mt_rand(); $googleClient->setState($state); $request->session()->flash('state', $state); $googleClient->setApprovalPrompt('force'); $authUrl = $googleClient->createAuthUrl(); return redirect($authUrl); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { // https://developers.google.com/identity/protocols/OAuth2WebServer $this->client->setAccessType('offline'); // To get a refresh token, per <http://stackoverflow.com/a/31237203/489916> $this->client->setApprovalPrompt('force'); if (\Storage::disk('local')->exists('google_access_token.json')) { $token = \Storage::disk('local')->get('google_access_token.json'); $this->client->setAccessToken($token); } if ($request->path() == 'oauth2callback' && $request->has('code')) { if ($request->session()->get('google_oauth_state') !== $request->get('state')) { abort(500, 'The session state did not match.'); } $this->client->authenticate($request->get('code')); \Storage::disk('local')->put('google_access_token.json', $this->client->getAccessToken()); return redirect('/'); } elseif (is_null($this->client->getAccessToken())) { // If the user hasn't authorized the app, initiate the OAuth flow $state = strval(mt_rand()); $this->client->setState($state); $request->session()->put('google_oauth_state', $state); $authUrl = $this->client->createAuthUrl(); return response()->view('google.authorize', ['authUrl' => $authUrl]); } return $next($request); }
/** * 完成税务申报 * @param Request $request * @return mixed * @author AndyLee <*****@*****.**> */ public function postFinishTaxApply(Request $request) { $input = $request->only('type', 'flag'); $map = ['user_id' => $request->session()->get('company_id'), 'company_id' => $request->session()->get('customer_id')]; /* * 国税部分 */ if ($input['type'] == 'guoshui') { $map['guoshui_status'] = 0; $tax = Tax::where($map)->first(); if (!empty($tax)) { $tax->guoshui_status = 1; $tax->save(); return \Response::json(['message' => '国税申报完成', 'state' => 'success']); } } if ($input['type'] == 'dishui') { $map['dishui_status'] = 0; $tax = Tax::where($map)->first(); if (!empty($tax)) { $tax->dishui_status = 1; $tax->save(); return \Response::json(['message' => '地税申报完成', 'state' => 'success']); } } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $weixin = $request->session()->get('wechat.oauth_user'); // 不接受无信用的凭证 if (empty($weixin['id']) || strlen($weixin['id']) !== 28) { return abort(405); } // 生成一个随机的userKEY用于会话验证 // 将该session的过期时间设置为比access_token // 的refresh时长多10s,一旦access_token刷新, // userKEY的值会重新计算并存储 $token = $weixin['token']; $refresh = $token['refresh_token']; $expires = $token['expires_in']; // 假设用户数据已经存在于数据库中 $user = Weixin_User::getFullyUserInfoWithOpenID($token['openid']); if (empty($user)) { $user = Weixin_User::storeNewUserInfo(new Weixin_User(), $weixin->toArray()); } $user_id = $user->user_id; $key = 'jk_session:' . $user_id . ':userKEY'; // 存储当前会话消息 $request->session()->put('jukebox_user', $user_id); // 计算并存储userKEY if (!\PRedis::command('get', [$key])) { \PRedis::command('setex', [$key, intval($expires) + 10, str_limit($refresh, 5) . str_random(1)]); } return $next($request); }
public function send(Request $request) { if ($request->session()->has('uid') == false) { return response()->json(['error' => 'Access denied'], 403, ['Access-Control-Allow-Origin' => '*', 'Access-Control-Allow-Credentials' => 'true']); } $message = $request->get('message'); $user = User::where('id', $request->session()->get('uid'))->first(); $user->last_seen = Carbon::now()->toDateTimeString(); $user->save(); $message = LinkFinder::replace($message); if (!$user) { exit; } $nickname = $user->nickname; if ($nickname == null) { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Credentials: true'); die('error'); } if ($nickname != null && $message != null) { $messages = new Messages(); $messages->user_id = $user->id; $messages->message = $message; Cache::put($nickname, $nickname, 10); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Credentials: true'); header('Content-Type: application/json'); echo json_encode(['success' => $messages->save(), 'message' => $messages->message]); exit; } return response()->json(['success' => false])->header('Access-Control-Allow-Origin', '*'); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (!$request->session()->has('app.authenticated') || !$request->session()->has('redbooth')) { return redirect('auth/login'); } return $next($request); }
public function store(Request $request) { if (Subscribers::where('email', $request->input('email'))->exists()) { $request->session()->flash('email', 'This email is already subscribed'); return redirect('/'); } else { $code = str_random(30); while (Subscribers::where('code', $code)->exists()) { $code = str_random(30); } $unsubscribe = str_random(45); while (Subscribers::where('unsubscribe', $unsubscribe)->exists()) { $unsubscribe = str_random(45); } $subscriber = new Subscribers(); $subscriber->email = $request->input('email'); $subscriber->code = $code; $subscriber->unsubscribe = $unsubscribe; Mail::send('email.verify', ['code' => $code], function ($message) use($subscriber) { $message->from('*****@*****.**', 'Granada Hills Speech & Debate'); $message->subject('Welcome to GHSnD!'); $message->to($subscriber->email); }); $subscriber->save(); $request->session()->flash('email', "Thanks for subscribing"); return redirect('/'); } }
public function validateAnswer(Request $request) { $params = $request->all(); $answer = ['a', 'c', 'a', 'a']; $incorrect = []; $correct = 0; foreach ($answer as $i => $a) { $answered = isset($params['answer' . ($i + 1)]) ? $params['answer' . ($i + 1)] : ''; if ($a == $answered) { $correct++; } else { $incorrect['answer' . ($i + 1)] = $answered; } } if ($correct === count($answer)) { $readTime = $params['words'] / $params['time']; $user = Auth::user(); $user->readtime = $readTime; $user->save(); //todo save to user return view('success', ['time' => round($readTime)]); } else { $request->session()->flash('incorrect', $incorrect); $request->session()->flash('message', 'You have incorrect answer'); return back()->withInput(); } }
public function checkLogin(Request $request) { $key = $request->input('key'); $user = DB::table('users')->where('keypass', $key)->first(); //$results = app('db')->select("SELECT * FROM user"); $requestStation = ""; if ($request->session()->has('requestStation')) { $requestStation = $request->session()->get('requestStation'); } $result = array('login' => 'error', 'code' => 0, 'url' => $requestStation); if ($user) { $new_sessid = \Session::getId(); //get new session_id after user sign in if ($user->lastSessionId != null) { $last_session = \Session::getHandler()->read($user->lastSessionId); // retrive last session if ($last_session) { if (\Session::getHandler()->destroy($user->lastSessionId)) { } } } DB::update('update users set lastSessionId = :lastSessionId where id = :id', ['lastSessionId' => $new_sessid, 'id' => $user->id]); $request->session()->put('group', $user->group); $request->session()->put('id', $user->id); $request->session()->put('login', true); $result['login'] = '******'; $result['code'] = '1'; $result['session'] = \Session::getId(); } return response()->json($result); }
public function __construct(Request $request) { $this->bearerToken = $request->session()->get('uber.token'); $this->refreshToken = $request->session()->get('uber.refresh_token'); $this->prod_url = 'https://api.uber.com/'; $this->sandbox_url = 'https://sandbox-api.uber.com/'; }
/** * Create a new profile composer. * * @param UserRepository $users * @return void */ public function __construct(Request $request) { // Dependencies automatically resolved by service container... if ($request->session()->get('id')) { $this->user_id = $request->session()->get('id'); } }
public function getActivity(Request $request) { $me = GitHub::me()->show(); $lastEventId = $request->session()->get('last_notification_id', false); $activity = []; $interval = 60; if ($lastEventId) { list($interval, $activity) = $this->findNewActivity($me['login'], $lastEventId); if ($activity) { $request->session()->set('last_notification_id', $activity[0]['id']); // Mark as read try { GitHub::notification()->markRead(); } catch (\Exception $e) { // Github returns empty string for this endpoint but the API library tries to parse it as json } foreach ($activity as &$notice) { $notice['html_url'] = $this->getRelatedHtmlUrl($notice['subject']); } } } $html = view('notifications.live', ['me' => $me, 'activity' => $activity]); $data = ['activity' => $html->render(), 'interval' => (int) $interval * 1000, 'count' => count($activity)]; $response = \Illuminate\Support\Facades\Response::make(json_encode($data), 200); $response->header('Content-Type', 'application/json'); return $response; }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $request->session()->forget('v'); $request->session()->forget('n'); $api = getenv('youtubeAPI'); $countryCode = getenv('countryCode'); $url = 'https://www.googleapis.com/youtube/v3/videos?chart=mostPopular&part=snippet®ionCode=' . $countryCode . '&maxResults=4&key=' . $api; $content = file_get_contents($url); $json = json_decode($content, true); $n = 0; foreach ($json['items'] as $item) { $link = new \stdClass(); $link->vidId = $item['id']; $link->title = $item['snippet']['title']; $link->thumb = $item['snippet']['thumbnails']['high']['url']; if ($n + 1 == 10) { $link->accesskey = '0'; } elseif ($n + 1 == 11) { $link->accesskey = 'a'; } elseif ($n + 1 == 12) { $link->accesskey = 'b'; } else { $link->accesskey = $n + 1; } $links[] = $link; //temp store array of vidId relative to search result position for next video functionality // $request->session()->flash($item['id']['videoId'], $n); $n++; } $data = ['links' => $links]; session(['v' => '']); return view('home')->with($data); }
public function logout(Request $request) { $request->session()->forget('access_token'); $request->session()->forget('credentials'); $request->session()->flush(); return redirect('/')->with('flash_notice', 'You\'ve successfully logged out!'); }
/** * Show the results of the queried modlog entries */ public function query(Request $request) { $input = []; if ($request->session()->has('input') && count($request->all()) < 2) { $input = $request->session()->get('input'); } else { $input = $request->all(); $request->session()->put('input', $input); } $input['mods'] = array_values($input['mods']); $input['actions'] = array_values($input['actions']); $input['startdate'] = strtotime($input['startdate']); $input['enddate'] = strtotime($input['enddate']) + 60 * 60 * 24; $input['order'] = intval($input['order']); $input['detail'] = $input['detail'] != '' ? "\"" . $input['detail'] . "\"" : ''; $db = DB::connection('mongodb'); $modlog = $db->collection('modlog'); $query = $modlog->whereIn('mod', $input['mods'])->whereIn('action', $input['actions'])->where('created_at', '>', $input['startdate'])->where('created_at', '<', $input['enddate']); if ($input['author'] != '') { $query->where('target_author', $input['author']); } if ($input['detail'] != '') { $query->where('$text', ['$search' => $input['detail']]); } $results = $query->orderBy('created_at', $input['order'] == 1 ? 'asc' : 'desc')->take(1500)->paginate(50); $filters = ['start' => number_format($results->perPage() * ($results->currentPage() - 1) + 1), 'end' => number_format($results->perPage() * $results->currentPage()), 'total' => number_format($results->total()), 'from' => strftime('%d %B %Y', $input['startdate']), 'to' => strftime('%d %B %Y', $input['enddate']), 'author' => $input['author'] != '' ? $input['author'] : "anyone", 'detail' => $input['detail'] != '' ? $input['detail'] : "anything"]; $data = ['labels' => $this->labels, 'filters' => $filters, 'results' => $results]; return view('log.mod.queryresults', $data); }
public function changeRoom(Request $request, $slotId) { if ($request->session()->has('currentBookingId')) { $bookingId = $request->session()->get('currentBookingId'); //Found Booking ID and Slot Id Both //Now Change the booking //Get the old slot Id - Update its status to AV //Make the status of new slot id as NA //Change the slot in the original booking object $booking = Booking::where('id', $bookingId)->first(); $venueRoomSlot = VenueRoomSlot::where('id', $slotId)->first(); if ($venueRoomSlot->status == "AV") { //Change the booking $venueRoomSlot->status = "NA"; $venueRoomSlot->save(); //Get the old venue slot id and change its status to av $oldVenueRoomSlotId = $booking->venue_room_slot_id; $oldVenueRoomSlot = VenueRoomSlot::where('id', $oldVenueRoomSlotId)->first(); if ($oldVenueRoomSlot->status == "NA") { $oldVenueRoomSlot->status = "AV"; $oldVenueRoomSlot->save(); $booking->venue_room_slot_id = $slotId; $booking->save(); return redirect('securitynewbookings'); } } dd("NHP"); } }
public function getFilters($form, $fields, Request $request) { $filters = $this->getFiltersValues($form, $fields); $filters['sort_url'] = $filters; unset($filters['sort_url']['sort']); $paginate = empty($request->session()->get('paginate')) ? 10 : $request->session()->get('paginate'); $filters['paginate'] = empty($form['paginate']) || !is_numeric($form['paginate']) ? $paginate : $form['paginate']; $request->session()->put('paginate', $filters['paginate']); if (empty($form['sort'])) { $filters['sort'] = $fields[0]; $filters['order'] = 'asc'; } else { $sort = explode("-", $form['sort']); $filters['order'] = array_pop($sort); $filters['sort'] = implode("-", $sort); if (!in_array($filters['sort'], $fields)) { $filters['sort'] = $fields[0]; } } $filters['pagination'] = $filters; $filters['pagination']['sort'] = str_replace("_", "-", $filters['sort']) . "-" . $filters['order']; unset($filters['pagination']['paginate']); unset($filters['pagination']['sort_url']); $filters = $this->getFiltersSortUrl($filters, $request); $filters['sort'] = str_replace("-", "_", $filters['sort']); return $filters; }
public function index(Request $request, $v) { $request->session()->forget('v'); $request->session()->forget('n'); $api = getenv('youtubeAPI'); $countryCode = getenv('countryCode'); $url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=' . $v . '®ionCode=' . $countryCode . '&videoSyndicated=any&videoEmbeddable=true&videoDimension=2d&order=relevance&type=video&safeSearch=strict&maxResults=12&key=' . $api; $content = file_get_contents($url); $json = json_decode($content, true); $n = 0; foreach ($json['items'] as $item) { $link = new \stdClass(); $link->vidId = $item['id']['videoId']; $link->title = $item['snippet']['title']; $link->thumb = $item['snippet']['thumbnails']['high']['url']; if ($n + 1 == 10) { $link->accesskey = '0'; } elseif ($n + 1 == 11) { $link->accesskey = 'a'; } elseif ($n + 1 == 12) { $link->accesskey = 'b'; } else { $link->accesskey = $n + 1; } $links[] = $link; //temp store array of vidId relative to search result position for next video functionality $request->session()->flash($item['id']['videoId'], $n); $n++; } $data = ['links' => $links, 'v' => $v]; session(['v' => $v]); return view('results')->with($data); }