/** * 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> "; } }
/** * 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); }