This is an automated email from the git hooks/post-receive script. New commit to branch feature/spgeed in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit c3d598efe51f165944c8bdddd724f3f54a4309d2 Author: Killian <killian.herbreteau@epitech.eu> Date: Fri Oct 25 12:06:43 2019 +0200 Pollen User Service passed to Spgeed only missing (Delete emailaddress) --- .../pollen/services/service/PollenUserService.java | 111 ++++++++++++--------- 1 file changed, 63 insertions(+), 48 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java index f7f5eda1..31db0127 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenUserService.java @@ -22,12 +22,11 @@ package org.chorem.pollen.services.service; */ import com.google.common.base.Preconditions; -import org.apache.commons.collections4.CollectionUtils; +import com.google.common.base.Predicate; +import org.apache.commons.collections4.bag.CollectionBag; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.pollen.persistence.Dao.PollenPollSpgeedDao; -import org.chorem.pollen.persistence.Dao.PollenUserSpgeedDao; import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.PollenService; import org.chorem.pollen.services.bean.PaginationParameterBean; @@ -39,12 +38,18 @@ import org.chorem.pollen.services.bean.UserCredentialBean; import org.chorem.pollen.services.bean.UsersRight; import org.chorem.pollen.services.bean.resource.ResourceFileBean; import org.chorem.pollen.services.service.security.*; +import org.junit.Assert; +import org.nuiton.spgeed.Chunk; +import org.nuiton.spgeed.ChunkArrayList; +import org.nuiton.topia.persistence.TopiaIdFactory; +import org.nuiton.topia.persistence.internal.ShortTopiaIdFactory; import org.nuiton.util.pagination.PaginationOrder; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; +import org.omg.CORBA.DynAnyPackage.Invalid; -import java.util.Date; -import java.util.List; +import javax.annotation.CheckForNull; +import java.util.*; import java.util.stream.Collectors; import static org.nuiton.i18n.I18n.l; @@ -62,7 +67,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer public PollenUserBean toPollenUserBean(PollenUser entity) { PollenUserBean bean = new PollenUserBean(); - System.out.println(entity); bean.setEntityId(entity.getTopiaId()); bean.setName(entity.getName()); @@ -119,13 +123,16 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer checkIsAdmin(); PaginationParameter page = getPaginationParameter(paginationParameter); - if (CollectionUtils.isEmpty(page.getOrderClauses())) { - page.getOrderClauses().add(new PaginationOrder(PollenUser.PROPERTY_NAME, false)); + PaginationOrder order = page.getOrderClauses().get(0); + + if (order.getClause() == null) { + order.setClause(PollenUser.PROPERTY_NAME); } + Chunk<PollenUser> users = getSpgeedUserDao().getAllUsers(Chunk.init(page.getPageSize()), order.getClause()); PaginationResult<PollenUser> pollenUsers = getPollenUserDao().findAll(page, search); + checkNotNull(users); return toPaginationListBean(pollenUsers, this::toPollenUserBean); - } public PollenUserBean getUser() { @@ -133,7 +140,6 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenUser pollenUser = checkAndGetConnectedUser(); return toPollenUserBean(pollenUser); - } public PollenUserBean getUser(String userId) { @@ -143,13 +149,21 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer if (!userId.equals(pollenUser.getTopiaId())) { checkIsAdmin(); - SpgeedDummyService spgeedDummyService = new SpgeedDummyService(); - //pollenUser = spgeedDummyService.getSpgeedDao(PollenUserSpgeedDao.class).getUser(userId); - //pollenUser = getUser0(userId); - System.out.println(pollenUser); + pollenUser = getUser0(userId); } return toPollenUserBean(pollenUser); + } + private void saveUser(PollenUser user) { + PollenUserEmailAddress emailAddress = user.getDefaultEmailAddress(); + + if (emailAddress != null) { + getSpgeedUserEmailAddressDao().saveEmail(emailAddress); + } + getSpgeedUserDao().saveUser(user); + if (emailAddress != null) { + getSpgeedUserEmailAddressDao().saveEmail(emailAddress, user.getTopiaId()); + } } public PollenEntityRef<PollenUser> createUser(PollenUserBean user) throws InvalidFormException { @@ -166,14 +180,11 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer errorMap.failIfNotEmpty(); PollenUser result = savePollenUser(user); - commit(); + saveUser(result); - String token = getSecurityService().generateEmailToken(result.getDefaultEmailAddress()); - - getNotificationService().onUserCreated(result, token); + getNotificationService().onUserCreated(result, getSecurityService().generateEmailToken(result.getDefaultEmailAddress())); return PollenEntityRef.of(result); - } public PollenUserBean editUser(PollenUserBean user) throws InvalidFormException { @@ -187,12 +198,11 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer errorMap.failIfNotEmpty(); PollenUser result = savePollenUser(user); - commit(); getNotificationService().onUserEdited(result); + saveUser(result); return toPollenUserBean(result); - } public boolean deleteUser(String userId, boolean anonymize) { @@ -201,11 +211,14 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer PollenUser user = getUser0(userId); + checkNotNull(user); if (anonymize) { anonymizeUser(user); } - getUserCredentialDao().deleteAll(user.getUserCredential()); + /*getSpgeedUserDao().deleteUser(user); + if (user.getUserCredential() + */getUserCredentialDao().deleteAll(user.getUserCredential()); getPollenUserDao().delete(user); commit(); @@ -371,14 +384,17 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer emailAddress = checkUserEmailAddress(errors, emailAddress); errors.failIfNotEmpty(); - PollenUserEmailAddress address = getPollenUserEmailAddressDao().create(); + PollenUserEmailAddress address = new PollenUserEmailAddressImpl(); address.setEmailAddress(emailAddress); address.setValidated(false); user.addEmailAddresses(address); - commit(); String token = getSecurityService().generateEmailToken(address); + TopiaIdFactory idFactory = new ShortTopiaIdFactory(); + address.setTopiaId(idFactory.newTopiaId(PollenUserEmailAddress.class, address)); + getSpgeedUserEmailAddressDao().saveEmail(address, user.getTopiaId()); + getNotificationService().onUserEmailAddressAdded(user, address, token); return PollenEntityRef.of(address); @@ -390,7 +406,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer if (emailNotblank) { checkValidEmail(errors, "email", emailAddress, l(getLocale(), "pollen.error.user.mailInvalid")); checkEmailPattern(errors, "email", emailAddress, l(getLocale(), "pollen.error.user.mailUnauthorized")); - check(errors, "email", !getPollenUserEmailAddressDao().emailExists(emailAddress), l(getLocale(), "pollen.error.user.mailExist")); + check(errors, "email", getSpgeedUserEmailAddressDao().findEmailAddress(emailAddress) == null, l(getLocale(), "pollen.error.user.mailExist")); } return emailAddress; } @@ -407,13 +423,13 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer protected void setDefaultEmailAddress(PollenUser user, String emailAddressId) throws PollenEmailNotValidatedException { checkNotNull(emailAddressId); - PollenUserEmailAddress emailAddress = user.getEmailAddressesByTopiaId(emailAddressId); + PollenUserEmailAddress emailAddress = getSpgeedUserEmailAddressDao().getEmailAddress(emailAddressId); checkNotNull(emailAddress); + user.setDefaultEmailAddress(emailAddress); if (!emailAddress.isValidated()) { throw new PollenEmailNotValidatedException(); } - user.setDefaultEmailAddress(emailAddress); - commit(); + getSpgeedUserDao().saveUser(user); } public void removeEmailAddress(String emailAddressId) throws PollenDefaultEmailAddressException { @@ -431,11 +447,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer if (user.getDefaultEmailAddress() != null && user.getDefaultEmailAddress().getTopiaId().equals(emailAddressId)) { throw new PollenDefaultEmailAddressException(); } - PollenUserEmailAddress emailAddress = user.getEmailAddressesByTopiaId(emailAddressId); - checkNotNull(emailAddress); - user.removeEmailAddresses(emailAddress); - getPollenUserEmailAddressDao().delete(emailAddress); - commit(); + getSpgeedUserEmailAddressDao().deleteEmail(emailAddressId); } protected ErrorMap checkPollenUser(PollenUserBean user) { @@ -465,25 +477,27 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer } protected PollenUser savePollenUser(PollenUserBean user) { - - boolean userExists = user.isPersisted(); - PollenUser toSave; - if (userExists) { + if (user.isPersisted()) { toSave = getUser0(user.getEntityId()); } else { + TopiaIdFactory idFactory = new ShortTopiaIdFactory(); - toSave = getPollenUserDao().create(); + toSave = new PollenUserImpl(); + toSave.setTopiaId(idFactory.newTopiaId(PollenUser.class, toSave)); PollenUserEmailAddressBean emailAddress = user.getDefaultEmailAddress(); if (emailAddress != null) { - PollenUserEmailAddress defaultEmailAddress = getPollenUserEmailAddressDao().create(); - String cleanMail = getCleanMail(emailAddress.getEmailAddress()); - defaultEmailAddress.setEmailAddress(cleanMail); + PollenUserEmailAddress defaultEmailAddress = new PollenUserEmailAddressImpl(); + + defaultEmailAddress.setTopiaId(idFactory.newTopiaId(PollenUserEmailAddress.class, defaultEmailAddress)); + + defaultEmailAddress.setEmailAddress(getCleanMail(emailAddress.getEmailAddress())); defaultEmailAddress.setValidated(false); + toSave.addEmailAddresses(defaultEmailAddress); toSave.setDefaultEmailAddress(defaultEmailAddress); } @@ -495,8 +509,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer getSecurityService().setUserPassword(toSave, user.getPassword()); } - PollenSecurityContext securityContext = getSecurityContext(); - if (securityContext.isAdmin()) { + if (getSecurityContext().isAdmin()) { toSave.setAdministrator(user.isAdministrator()); toSave.setBanned(user.isBanned()); toSave.setPremiumTo(user.getPremiumTo()); @@ -508,13 +521,17 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer } return toSave; - } protected PollenUser getUser0(String userId) { + PollenUser user = getSpgeedUserDao().getUser(userId); - return getPollenUserDao().forTopiaIdEquals(userId).findUnique(); - + Assert.assertEquals(getSpgeedUserCredentialDao().getUserCredential(userId), user.getUserCredential()); + user = getPollenUserDao().forTopiaIdEquals(userId).findUnique(); + if (user == null) { + throw new IllegalArgumentException(); + } + return user; } protected PaginationParameter getPaginationParameter(PaginationParameterBean paginationParameter) { @@ -556,9 +573,7 @@ public class PollenUserService extends PollenServiceSupport implements PollenSer anonymousUser.setName(VoteTopiaDao.ANONYMOUS_NAME); comment.setAuthor(anonymousUser); } - commit(); - } public boolean isPremium(PollenUser user) { -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.