package fi.otavanopisto.muikku.plugins.internalauth; import javax.inject.Inject; import org.apache.commons.codec.digest.DigestUtils; import fi.otavanopisto.muikku.model.users.UserEntity; import fi.otavanopisto.muikku.plugins.internalauth.dao.InternalAuthDAO; import fi.otavanopisto.muikku.plugins.internalauth.model.InternalAuth; import fi.otavanopisto.muikku.users.UserEntityController; public class InternalAuthController { @Inject private InternalAuthDAO internalAuthDAO; @Inject private UserEntityController userEntityController; public InternalAuth findInternalAuthByEmailAndPassword(String email, String password) { String passwordHash = DigestUtils.md5Hex(password); UserEntity userEntity = userEntityController.findUserEntityByEmailAddress(email); if (userEntity != null) { InternalAuth internalAuth = internalAuthDAO.findByUserIdAndPassword(userEntity.getId(), passwordHash); return internalAuth; } return null; } public boolean updateUserEntityPassword(Long userEntityId, String hashedPassword) { InternalAuth internalAuth = internalAuthDAO.findByUserId(userEntityId); if (internalAuth != null) { internalAuth.setPassword(hashedPassword); return true; } else { return false; } } public boolean confirmUserPassword(UserEntity user, String password) { String passwordHash = DigestUtils.md5Hex(password); InternalAuth internalAuth = internalAuthDAO.findByUserIdAndPassword(user.getId(), passwordHash); return internalAuth != null; } public void updateUserPassword(UserEntity user, String passwordHash, String newPasswordHash) { if (confirmUserPassword(user, passwordHash)) { String passwordHashCoded = DigestUtils.md5Hex(passwordHash); String newPasswordHashCoded = DigestUtils.md5Hex(newPasswordHash); internalAuthDAO.updatePassword(user, passwordHashCoded, newPasswordHashCoded); } } }