Controle de acesso ao link da aplicação - (Dia, Mês, Ano)
07/06/2016 22:16
0
Estou precisando  controlar os acessos ao link da aplicação, algo implementado ou sugestão?

Preciso gerar relatório com os seguintes itens:

Dia| Mês| Ano|
Tags: Grails, controle de link, persistencia


0
Oi Anderson,

você pode implementar um interceptador ou filtro que englobe todas ou pelo menos as URLs que lhe interessam e, a cada acesso, persistir o momento de acesso no banco de dados.


0
Ola! Henrique
Irei me basear pelo tela de login que pretendo acessar como pagina principal, este interceptador deve ser implementado no controller?
Poderia me passar um modelo ou ideia de como seria?
08/06/2016 14:08


0
Oi Anderson,

se for Grails 3.x, você irá usar interceptadores, http://docs.grails.org/3.0.14/guide/theWebLayer.html#interceptors

se for Grails 2.x, você irá usar filtros: http://docs.grails.org/2.5.4/guide/theWebLayer.html#filters


1
Google analytics não faz isso pra vc?


0
Oi Victor, na realidade, faz em parte: nem sempre o script do Analytics é executado.

Outra alternativa interessante é habilitar o log de acesso do servidor de aplicação. Assim você consegue detectar qualquer requisição que chegue no seu projeto.


0
Com as respostas surgiram algumas dúvidas:

Usando o analytics consigo criar uma view para apresentar os itens Dia| Mês| Ano| na aplicação?
Para a segunda opção como faço para habilitar e obter as informações que preciso?
16/06/2016 10:51


0
Ola! kico
Tenho a seguinte estrutura abaixo + views e controllers gerado pelo scaffold
Perguntas:
É possível executar este antes da execução da página index padrão?
É possível ao executar o filters executar um insert na bd Visita conforme descrito no VisitaFilters ?

Aguardo sugestões..VisitaFilters 

?package comum

class Visita {

Date dataVisita

static constraints = {
 dataVisita(nullable: false)
}

}


class VisitaFilters {

def filters = {
 all(controller: '*', action: 'index') {//aqui seria o index da pagina inicial padrão grails
before = {
 //antes da execução da index adiciona uma visita na bd
 //Visita novaVisita = new Visita(pegar data sistema).save(flush: true)
}
after = { Map model ->

}
afterView = { Exception e ->

}
 }
}
}


22/06/2016 00:49


0
Ola! Kico
* criei os controllers e Views pelo generate-all e o seguinte filters, porém ao executar o app não está realizando o insert 
na tabela visita.
Preciso de ajuda com esse problema.


package comum

class Visita {

    Date dataVisita


    static constraints = {
       
    }



}


package tf_allocator

import comum.Visita

class VisitaFilters {

    def filters = {
        all(controller: '*', action: '*') {
            before = {

                if(controllerName == null ) {

                    def vst = new Visita(data: new Date()).save()


                }

            }
        }
    }
}
23/06/2016 13:34


0
Qual o erro?


0
Ola! Victor
Na verdade ele não executa o insert, não sei onde estou falhando!
Estou expondo as classes para que tenha um melhor entendimento do problema, basicamente estou fazendo um insert de Visita quando executado a aplicação.

?package tfds

class Visita {

    Date dataAcesso

    static constraints = {

        dataAcesso(nullable: false, blank: false)
    }
}




import tfds.Visita

class UserController {

    def index() {
    }

    def save() {
        def visita = new Visita(params)
        visita.save()
        render (view: "visita", model: [visita: visita])
    }

}



package tfds

import tfds.Visita

class VisitaFilters {

    def filters = {
        all(controller: '*', action: '*') {
            before = {
                def vst = new Visita(data: new Date()).save(flush: true)
                //def vst = new Visita(data: new Date()).save()
            }

            }
        }

}


23/06/2016 16:28


0
Já debugou pra ver se o código está sendo executando no momento que você espera?


0
Ola!
Consegui resolver parte do problema, porém tenho algumas dúvidas
Preciso criar variáveis locais para passar como parâmetro na query, hoje estou passando os valores diretamente mokado.
dia = "dia atual"  
mes = "mês atual"
ano = "ano atual"

?package tfds
class ConsultaController {
    def index() {
        //Acessos por dia, mês e ano
        
        def listaDia = Acesso.executeQuery("from Acesso where DAY(data_acesso) = '24'")
        def listaMes = Acesso.executeQuery("from Acesso where MONTH(data_acesso) = '06'")
        def listaAno = Acesso.executeQuery("from Acesso where YEAR(data_acesso) = '2016'")
        
        render(view: "index", model:[listaDia: listaDia, listaMes: listaMes, listaAno: listaAno ])
    }
}
24/06/2016 19:19



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto