/**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $rota = Request::segment(1);
     if ($rota == 'auth' && Auth::guest()) {
         return redirect('/auth/login');
     }
     print time();
     dd('rrr');
     //dd($rota);
     if ($request->is('auth')) {
         dd('ddd');
         return redirect('/auth/login');
     }
     if (!$request->is('/auth/login') && Auth::guest()) {
         //    dd('oi');
         return redirect('/auth/login');
     }
     print $rota;
     if (($rota == null || $rota == 'auth' || $rota == 'home' || $request->is('permissao/negada')) && Auth::guest()) {
         return $next($request);
     }
     //dd( $request->is('Auth/logout') );
     $url = Request::url();
     print_r($url);
     //dd();
     if (!Infra_Permissao::tem_permissao()) {
         //die( 'NÂO tem permssao - redirecionar para uma view sem permissao');
         print time();
         //dd();
         return redirect('permissao/negada');
     }
     return $next($request);
 }
 /**
  * Valida se o usuário tem permissão de acesso
  *
  * @param    string     acao   
  * @return   boolean    
  */
 public static function tem_permissao($acao = null)
 {
     $resultado = false;
     $rota = Request::segment(1);
     // se o usuário é "master" - o acesso é liberado
     $user = User::find(Auth::user()->id);
     if ($user->master) {
         return true;
     }
     // inserir aqui as "rotas" com acesso liberado.
     if ($rota == '' || $rota == 'home') {
         return true;
     }
     // rota: tools somente para usuário master
     if ($rota == 'tools' && !$user->master) {
         return false;
     }
     // obtém o id do menu para verificar a permissão
     Infra_Permissao::obter_id_menu($id_menu, $rota, $acao);
     if ($id_menu == '') {
         dd('id_menu não encontrado - problemas na tabela: tbmenus');
     }
     // verifica permissão
     Infra_Permissao::obter_grupos_do_usuario($grupos);
     foreach ($grupos as $indice => $item) {
         if (self::permite_acesso($item->id_grupo, $id_menu)) {
             $resultado = true;
             break;
         }
     }
     return $resultado;
 }
 /**
  * Desenha uma HTML tag link,
  *             se o usuário logado tiver permissão para acessar a rota+ação
  *
  * @param    string     acao
  * @param    int        id
  * @return   void   
  */
 public static function criar_link_com_permissao($acao = 'incluir', $id = 0)
 {
     self::obter_classe($classe, $acao);
     $url = Request::url();
     $url = "{$url}/{$acao}/{$id}";
     if (Infra_Permissao::tem_permissao($acao)) {
         echo "<a href='{$url}'><span class='{$classe}'></span></a>&nbsp;&nbsp;";
     }
 }
Beispiel #4
0
 /**
  * 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('auth/login');
         }
     } else {
         // nesse momento o usuário está logado
         $rota = Request::segment(1);
         // verifica a permissão
         if (!Infra_Permissao::tem_permissao()) {
             return Redirect::to('home')->with('mensagem', 'Permissão negada.');
         }
     }
     return $next($request);
 }