Ejemplo n.º 1
0
 /**
  * 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');
     }
 }
Ejemplo n.º 3
0
 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.');
     }
 }
Ejemplo n.º 4
0
 /**
  * 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).']);
     }
 }
Ejemplo n.º 5
0
 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)");
     }
 }