/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $token = $request->get('token'); if ($token) { $cacheTag = ['managers', 'auth']; $cacheKey = $token; $data = Cache::tags($cacheTag)->remember($cacheKey, 60 * 48, function () use($request, $token) { $_manager = Managers::where('token', urldecode($token))->where('ip', $request->ip()); if ($_manager->count() > 0) { return $_manager->first()->toArray(); } else { return false; } }); if ($data) { config(['global.token' => $token]); config(['global.managers.current.id' => $data['id']]); config(['global.managers.current.name' => $data['name']]); config(['global.managers.current.role' => $data['role']]); config(['global.managers.current.active' => $data['active']]); } else { Cache::tags($cacheTag)->forget($cacheKey); } } return $next($request); }
public function reset($request) { if (!empty($request) && $request['email']) { $_manager = Managers::where('email', $request['email']); if ($_manager->count() > 0) { $hash = md5(Hash::make($request['email'])); if ($_manager->update(['recovercode' => $hash])) { Auth::sendRecoverEmail($hash, $request['email']); return true; } else { return new \Exception('<b>Err...</b> Tivemos um problema para iniciar o processo de redefinição de senha. Tente novamente mais tarde.'); } } else { return new \Exception('<b>Estranho...</b> O email digitado não aparece em nosso banco de dados ;/'); } } else { return new \Exception('Você precisa digitar um email'); } }
public function store($request) { if ($request['username'] && $request['password']) { $_manager = Managers::where('email', $request['username'])->where('active', 1)->select(['id', 'password', 'token']); if ($_manager->count() > 0) { if (Hash::check($request['password'], $_manager->first()->password)) { $token = Crypt::encrypt($request['username'] . config('global.ip.current')); $oldToken = $_manager->first()->token; if (!empty($oldToken)) { Cache::tags(['managers', 'auth'])->forget($oldToken); } $_manager->update(['token' => $token, 'ip' => config('global.ip.current')]); return redirect()->away('http://' . config('global.origin.current') . $request['redirectonsuccess'] . '?token=' . urlencode($token)); } else { return redirect()->away('http://' . config('global.origin.current') . $request['redirectonerror'] . '?message=Usuário ou senha inválidos...'); } } else { return redirect()->away('http://' . config('global.origin.current') . $request['redirectonerror'] . '?message=Usuário ou senha inválidos..'); } } else { return redirect()->away('http://' . config('global.origin.current') . $request['redirectonerror'] . '?message=Usuário ou senha inválidos.'); } }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $token = config('global.token'); if (!empty($token)) { $cacheTag = ['managers', 'auth']; $cacheKey = $token; $data = Cache::tags($cacheTag)->remember($cacheKey, 60 * 48, function () use($token) { $_manager = Managers::where('token', $token)->where('ip', $request->ip()); if ($_manager->count() > 0) { return $_manager->first()->toArray(); } else { return false; } }); if ($data) { return $next($request); } else { return response()->json(["status" => 'fatal-error', "data" => [], "message" => 'Você não tem permissão para acessar este módulo (token not found).']); } } else { return response()->json(["status" => 'fatal-error', "data" => [], "message" => 'Você não tem permissão para acessar este módulo (empty token).']); } }
public function store($companyId, $request) { $cacheTag = ['companies', 'company' . $companyId, 'managers']; $cacheKey = 'index'; $_companies = Companies::find($companyId); if ($_companies) { $_manager = Managers::where('email', '=', $request['email']); if ($_manager->count() > 0) { $_company_manager = $_companies->managers()->where('email', '=', $request['email']); if ($_company_manager->count() === 0) { Cache::tags($cacheTag)->flush(); Logs::create(['activity' => 'store', 'module' => 'companies_managers', 'ref' => $request['email']]); return $_companies->managers()->attach($_manager->select(['id'])->first()->id); } else { return new \Exception("O usuário que você está tentando adicionar já é administrador desta empresa"); } } else { return new \Exception("<b>Que estranho...</b> Parece que esse email não está cadastrado em nosso sistema."); } } else { return new \Exception("Houve um erro ao localizar registro (id not found)"); } }