Erro ao editar Perfil (fixes bug #6331)

Tempo: 02 horas

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@44321 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2015-05-25 19:14:18 +00:00
parent 8e6347b131
commit f13aebecd4
5 changed files with 126 additions and 61 deletions

View File

@ -12,5 +12,8 @@ import java.util.List;
* @author rodrigo * @author rodrigo
*/ */
public interface PerfilDAO extends GenericDAO<Perfil, Integer> { public interface PerfilDAO extends GenericDAO<Perfil, Integer> {
public List<Perfil> buscar(String dscPerfil); public List<Perfil> buscar(String dscPerfil);
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario);
} }

View File

@ -4,10 +4,10 @@
*/ */
package com.rjconsultores.ventaboletos.dao.hibernate; package com.rjconsultores.ventaboletos.dao.hibernate;
import com.rjconsultores.ventaboletos.dao.PerfilDAO;
import com.rjconsultores.ventaboletos.entidad.Perfil;
import java.util.List; import java.util.List;
import org.hibernate.Criteria; import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order; import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions; import org.hibernate.criterion.Restrictions;
@ -15,32 +15,58 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.PerfilDAO;
import com.rjconsultores.ventaboletos.entidad.Perfil;
import com.rjconsultores.ventaboletos.vo.segurida.PerfilJerarquia;
/** /**
* *
* @author rodrigo * @author rodrigo
*/ */
@Repository("perfilDAO") @Repository("perfilDAO")
public class PerfilHibernateDAO extends GenericHibernateDAO<Perfil, Integer> public class PerfilHibernateDAO extends GenericHibernateDAO<Perfil, Integer>
implements PerfilDAO { implements PerfilDAO {
@Autowired @Autowired
public PerfilHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) { public PerfilHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory); setSessionFactory(factory);
} }
@Override @Override
public List<Perfil> obtenerTodos() { public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario) {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.not(Restrictions.eq("descperfil", "RJ")));
c.addOrder(Order.asc("descperfil"));
return c.list(); PerfilJerarquia usuarioJerarquia = perfilUsuario.getIndJerarquia() == null ? PerfilJerarquia.NORMAL : PerfilJerarquia.buscar(perfilUsuario.getIndJerarquia());
}
public List<Perfil> buscar(String dscPerfil) { StringBuilder sb = new StringBuilder();
sb.append(" from Perfil p ");
sb.append(" where p.activo = 1 ");
return this.findByCriteria(Restrictions.eq("descperfil", dscPerfil.trim()),Restrictions.eq("activo", Boolean.TRUE)); if (!usuarioJerarquia.equals(PerfilJerarquia.ADMIN)) {
if (!usuarioJerarquia.equals(PerfilJerarquia.NORMAL)) {
sb.append(" and (p.indJerarquia >= " + usuarioJerarquia.getValor() + " or p.indJerarquia <=" + PerfilJerarquia.NORMAL.getValor() + " or p.indJerarquia is null ) ");
} else {
sb.append(" and (p.indJerarquia is null or p.indJerarquia <=" + PerfilJerarquia.NORMAL.getValor() + " ) ");
}
}
sb.append(" order by p.descperfil ");
} Query query = getSession().createQuery(sb.toString());
return query.list();
}
@Override
public List<Perfil> obtenerTodos() {
Criteria c = getSession().createCriteria(getPersistentClass());
c.add(Restrictions.eq("activo", Boolean.TRUE));
c.add(Restrictions.not(Restrictions.eq("descperfil", "RJ")));
c.addOrder(Order.asc("descperfil"));
return c.list();
}
public List<Perfil> buscar(String dscPerfil) {
return this.findByCriteria(Restrictions.eq("descperfil", dscPerfil.trim()), Restrictions.eq("activo", Boolean.TRUE));
}
} }

View File

@ -12,17 +12,20 @@ import com.rjconsultores.ventaboletos.entidad.Perfil;
* *
* @author rodrigo * @author rodrigo
*/ */
public interface PerfilService{ public interface PerfilService {
public List<Perfil> obtenerTodos(); public List<Perfil> obtenerTodos();
public Perfil obtenerID(Integer id); public Perfil obtenerID(Integer id);
public Perfil suscribir(Perfil entidad); public Perfil suscribir(Perfil entidad);
public Perfil actualizacion(Perfil entidad); public Perfil actualizacion(Perfil entidad);
public void borrar(Perfil entidad); public void borrar(Perfil entidad);
public List<Perfil> buscar(String dscPerfil);
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario);
public List<Perfil> buscar(String dscPerfil);
} }

View File

@ -21,45 +21,49 @@ import org.springframework.transaction.annotation.Transactional;
@Service("perfilService") @Service("perfilService")
public class PerfilServiceImpl implements PerfilService { public class PerfilServiceImpl implements PerfilService {
@Autowired @Autowired
private PerfilDAO perfilDAO; private PerfilDAO perfilDAO;
public List<Perfil> obtenerTodos() { public List<Perfil> obtenerTodos() {
return perfilDAO.obtenerTodos(); return perfilDAO.obtenerTodos();
} }
public Perfil obtenerID(Integer id) { public Perfil obtenerID(Integer id) {
return perfilDAO.obtenerID(id); return perfilDAO.obtenerID(id);
} }
@Transactional @Transactional
public Perfil suscribir(Perfil entidad) { public Perfil suscribir(Perfil entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.TRUE); entidad.setActivo(Boolean.TRUE);
return perfilDAO.suscribir(entidad); return perfilDAO.suscribir(entidad);
} }
@Transactional @Transactional
public Perfil actualizacion(Perfil entidad) { public Perfil actualizacion(Perfil entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.TRUE); entidad.setActivo(Boolean.TRUE);
return perfilDAO.actualizacion(entidad); return perfilDAO.actualizacion(entidad);
} }
@Transactional @Transactional
public void borrar(Perfil entidad) { public void borrar(Perfil entidad) {
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
entidad.setFecmodif(Calendar.getInstance().getTime()); entidad.setFecmodif(Calendar.getInstance().getTime());
entidad.setActivo(Boolean.FALSE); entidad.setActivo(Boolean.FALSE);
perfilDAO.actualizacion(entidad); perfilDAO.actualizacion(entidad);
} }
public List<Perfil> buscar(String dscPerfil) { public List<Perfil> buscar(String dscPerfil) {
return perfilDAO.buscar(dscPerfil); return perfilDAO.buscar(dscPerfil);
} }
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario) {
return perfilDAO.buscaPerfilJerarquia(perfilUsuario);
}
} }

View File

@ -0,0 +1,29 @@
package com.rjconsultores.ventaboletos.vo.segurida;
public enum PerfilJerarquia {
NORMAL(0), ADMIN(1), JERARQUIA_2(2), JERARQUIA_3(3), JERARQUIA_4(4);
private Integer valor;
private PerfilJerarquia(Integer valor) {
this.valor = valor;
}
public Integer getValor() {
return valor;
}
public static PerfilJerarquia buscar(Integer valor) {
if (valor == null)
return NORMAL;
for (PerfilJerarquia jerarquia : PerfilJerarquia.values()) {
if (jerarquia.getValor().equals(valor)) {
return jerarquia;
}
}
return null;
}
}