/**
*
*/
package net.conselldemallorca.helium.core.security.audit;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* Implementació d'un action logger que guarda els logs
* a base de dades emprant hibernate.
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class HibernateActionLogger extends HibernateDaoSupport implements ActionLogger {
private LocalSessionFactoryBean sessionFactoryBean;
public void createLog(
String accio,
Object entitat,
String[] propietats,
String usuari) {
if (!(entitat instanceof ActionLog)) {
ActionLog actionLog = new ActionLog();
EntityParser ep = new EntityParser(entitat, propietats, sessionFactoryBean);
actionLog.setAccio(accio);
actionLog.setData(new Date());
actionLog.setUsuari(usuari);
actionLog.setTaula(ep.extractTableName());
actionLog.setColumnaPk(ep.extractPrimaryKeyColumn());
actionLog.setValors(ep.extractColumnValues());
getHibernateTemplate().save(actionLog);
}
}
@Autowired
public void setSessionFactoryBean(LocalSessionFactoryBean sessionFactoryBean) {
this.sessionFactoryBean = sessionFactoryBean;
}
}