package fr.openwide.core.basicapp.core.business.user.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import fr.openwide.core.basicapp.core.business.history.model.atomic.HistoryEventType; import fr.openwide.core.basicapp.core.business.history.model.bean.HistoryLogAdditionalInformationBean; import fr.openwide.core.basicapp.core.business.history.service.IHistoryLogService; import fr.openwide.core.basicapp.core.business.user.dao.IUserDao; import fr.openwide.core.basicapp.core.business.user.model.User; import fr.openwide.core.jpa.exception.SecurityServiceException; import fr.openwide.core.jpa.exception.ServiceException; import fr.openwide.core.jpa.security.business.person.service.GenericSimpleUserServiceImpl; import fr.openwide.core.jpa.security.service.IAuthenticationService; import fr.openwide.core.jpa.util.HibernateUtils; import fr.openwide.core.spring.util.StringUtils; @Service("personService") public class UserServiceImpl extends GenericSimpleUserServiceImpl<User> implements IUserService { @Autowired private IUserDao userDao; @Autowired private IAuthenticationService authenticationService; @Autowired private IHistoryLogService historyLogService; // @Autowired // private IUserDifferenceService userDifferenceService; @Autowired public UserServiceImpl(IUserDao userDao) { super(userDao); this.userDao = userDao; } @Override public List<User> listByUserName(String userName) { return userDao.listByUserName(userName); } @Override public void onSignIn(User user) throws ServiceException, SecurityServiceException { historyLogService.log(HistoryEventType.SIGN_IN, user, HistoryLogAdditionalInformationBean.empty()); } @Override public void onSignInFail(User user) throws ServiceException, SecurityServiceException { historyLogService.log(HistoryEventType.SIGN_IN_FAIL, user, HistoryLogAdditionalInformationBean.empty()); } @Override public void onCreate(User user, User author) throws ServiceException, SecurityServiceException { historyLogService.log(HistoryEventType.CREATE, user, HistoryLogAdditionalInformationBean.empty()); } @Override public void setActive(User person, boolean active) throws ServiceException, SecurityServiceException { super.setActive(person, active); historyLogService.log(active ? HistoryEventType.ENABLE : HistoryEventType.DISABLE, person, HistoryLogAdditionalInformationBean.empty()); } @Override protected void updateEntity(User person) throws ServiceException, SecurityServiceException { // NOSONAR super.updateEntity(person); // historyLogService.logWithDifferences(HistoryEventType.UPDATE, person, HistoryLogObjectsBean.of(person), // userDifferenceService.getMinimalDifferenceGenerator(), // userDifferenceService); } @Override public User getByEmailCaseInsensitive(String email) { if (!StringUtils.hasText(StringUtils.lowerCase(email))) { return null; } return userDao.getByEmailCaseInsensitive(email); } @Override public User getAuthenticatedUser() { String userName = authenticationService.getUserName(); if (userName == null) { return null; } return HibernateUtils.unwrap(getByUserName(userName)); } }