package fi.otavanopisto.pyramus.dao.users; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import fi.otavanopisto.pyramus.dao.PyramusEntityDAO; import fi.otavanopisto.pyramus.domainmodel.users.InternalAuth; import fi.otavanopisto.pyramus.domainmodel.users.InternalAuth_; @Stateless public class InternalAuthDAO extends PyramusEntityDAO<InternalAuth> { public InternalAuth create(String username, String password) { EntityManager entityManager = getEntityManager(); InternalAuth internalAuth = new InternalAuth(); internalAuth.setUsername(username); internalAuth.setPassword(password); entityManager.persist(internalAuth); return internalAuth; } public InternalAuth findByUsernameAndPassword(String username, String passwordEncoded) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<InternalAuth> criteria = criteriaBuilder.createQuery(InternalAuth.class); Root<InternalAuth> root = criteria.from(InternalAuth.class); criteria.select(root); criteria.where( criteriaBuilder.and( criteriaBuilder.equal(root.get(InternalAuth_.username), username), criteriaBuilder.equal(root.get(InternalAuth_.password), passwordEncoded) )); return getSingleResult(entityManager.createQuery(criteria)); } public InternalAuth update(InternalAuth internalAuth, String username) { EntityManager entityManager = getEntityManager(); internalAuth.setUsername(username); entityManager.persist(internalAuth); return internalAuth; } public InternalAuth updateUsername(InternalAuth internalAuth, String username) { EntityManager entityManager = getEntityManager(); internalAuth.setUsername(username); entityManager.persist(internalAuth); return internalAuth; } public InternalAuth updatePassword(InternalAuth internalAuth, String password) { EntityManager entityManager = getEntityManager(); internalAuth.setPassword(password); entityManager.persist(internalAuth); return internalAuth; } public void setInternalAuthPassword(InternalAuth internalAuth, String password) { EntityManager entityManager = getEntityManager(); internalAuth.setPassword(password); entityManager.persist(internalAuth); } @Override public void delete(InternalAuth internalAuth) { super.delete(internalAuth); } }