コード例 #1
0
 /**
  * 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;
 }