Search in sources :

Example 1 with User

use of pl.pollub.cs.pentagoncafe.flare.domain.User in project Flare-event-calendar by PollubCafe.

the class RegistrationServiceImpl method register.

@Transactional(rollbackFor = { MessagingException.class, ObjectNotFoundException.class })
public void register(RegistrationReqDTO registrationReqDTO) {
    String token = UUID.randomUUID().toString();
    ActivationToken activationToken = new ActivationToken(token);
    User user = User.builder().name(registrationReqDTO.getName()).surname(registrationReqDTO.getSurname()).nick(registrationReqDTO.getNick()).email(registrationReqDTO.getEmail()).phoneNumber(registrationReqDTO.getPhoneNumber()).password(passwordEncoder.encode(registrationReqDTO.getPassword())).role(Role.DISABLED).activationToken(activationToken).build();
    userRepository.save(user);
    Email activationEmail = emailBuilder.buildActivationEmail(token).to(user.getEmail());
    this.sendActivationEmail(activationEmail);
}
Also used : User(pl.pollub.cs.pentagoncafe.flare.domain.User) Email(pl.pollub.cs.pentagoncafe.flare.component.email.Email) HtmlEmail(pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail) ActivationToken(pl.pollub.cs.pentagoncafe.flare.domain.ActivationToken) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with User

use of pl.pollub.cs.pentagoncafe.flare.domain.User in project Flare-event-calendar by PollubCafe.

the class RegistrationServiceImpl method finishRegistration.

public void finishRegistration(String token) {
    User user = userRepository.findByActivationToken(token).orElseThrow(() -> new ObjectNotFoundException(User.class));
    if (user.isEnabled())
        throw new UserAlreadyActivatedException(user.getNick());
    ActivationToken activationToken = user.getActivationToken();
    if (activationToken.getExpirationDate().isBefore(Instant.now())) {
        throw new TokenExpiredException();
    }
    user.setEnabled(true);
    user.setRole(Role.USER);
    userRepository.save(user);
}
Also used : User(pl.pollub.cs.pentagoncafe.flare.domain.User) ActivationToken(pl.pollub.cs.pentagoncafe.flare.domain.ActivationToken)

Example 3 with User

use of pl.pollub.cs.pentagoncafe.flare.domain.User in project Flare-event-calendar by PollubCafe.

the class RegistrationServiceImpl method resendToken.

@Transactional(rollbackFor = { MessagingException.class, ObjectNotFoundException.class })
public void resendToken(EmailReqDTO emailReqDTO) {
    User user = userRepository.findByEmail(emailReqDTO.getEmail()).orElseThrow(() -> new ObjectNotFoundException(User.class, "e-mail", emailReqDTO.getEmail()));
    if (user.isEnabled())
        throw new UserAlreadyActivatedException(user.getNick());
    String newToken = UUID.randomUUID().toString();
    ActivationToken newActivationToken = user.getActivationToken();
    newActivationToken.setToken(newToken);
    newActivationToken.refreshDate();
    userRepository.save(user);
    Email repeatedActivationEmail = emailBuilder.buildActivationEmail(newToken).to(user.getEmail());
    this.sendActivationEmail(repeatedActivationEmail);
}
Also used : User(pl.pollub.cs.pentagoncafe.flare.domain.User) Email(pl.pollub.cs.pentagoncafe.flare.component.email.Email) HtmlEmail(pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail) ActivationToken(pl.pollub.cs.pentagoncafe.flare.domain.ActivationToken) Transactional(org.springframework.transaction.annotation.Transactional)

Example 4 with User

use of pl.pollub.cs.pentagoncafe.flare.domain.User in project Flare-event-calendar by PollubCafe.

the class SecurityServiceImpl method resetPassword.

@Override
@Transactional(rollbackFor = { MessagingException.class, ObjectNotFoundException.class, ResetPasswordException.class })
public void resetPassword(EmailReqDTO emailReqDTO) {
    String recipientAddress = emailReqDTO.getEmail();
    User user = userRepository.findByEmail(recipientAddress).orElseThrow(() -> new ObjectNotFoundException(User.class, "e-mail", emailReqDTO.getEmail()));
    if (!user.isEnabled()) {
        throw new ResetPasswordException(messages.get("login.userAccount.disabled"));
    }
    if (user.isBanned()) {
        throw new ResetPasswordException(messages.get("login.userAccount.locked"));
    }
    String generatedPassword = RandomPasswordGenerator.generate();
    user.setPassword(passwordEncoder.encode(generatedPassword));
    userRepository.save(user);
    Email resetPasswordEmail = emailBuilder.buildResetPasswordEmail(generatedPassword).to(recipientAddress);
    this.sendResetPasswordEmail(resetPasswordEmail);
}
Also used : User(pl.pollub.cs.pentagoncafe.flare.domain.User) Email(pl.pollub.cs.pentagoncafe.flare.component.email.Email) HtmlEmail(pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail) ObjectNotFoundException(pl.pollub.cs.pentagoncafe.flare.exception.ObjectNotFoundException) ResetPasswordException(pl.pollub.cs.pentagoncafe.flare.exception.ResetPasswordException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with User

use of pl.pollub.cs.pentagoncafe.flare.domain.User in project Flare-event-calendar by PollubCafe.

the class EmailSenderServiceImpl method sendEmail.

@Override
public void sendEmail(EmailToEventAuthorReqDTO emailToEventAuthorReqDTO) {
    Event event = eventRepository.findById(emailToEventAuthorReqDTO.getEventID()).orElseThrow(() -> new ObjectNotFoundException(Event.class, "id", emailToEventAuthorReqDTO.getEventID()));
    User eventAuthor = event.getOrganizer();
    String message = emailToEventAuthorReqDTO.getContent();
    String subject = emailToEventAuthorReqDTO.getSubject();
    Email email = emailBuilder.buildEmailToEventAuthor(message, subject).to(eventAuthor.getEmail());
    try {
        checkArgument(email instanceof HtmlEmail);
        emailSender.send((HtmlEmail) email);
    } catch (MessagingException e) {
        e.printStackTrace();
        throw new SendingEmailException("Email to author sending filed.");
    }
}
Also used : User(pl.pollub.cs.pentagoncafe.flare.domain.User) Email(pl.pollub.cs.pentagoncafe.flare.component.email.Email) HtmlEmail(pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail) MessagingException(javax.mail.MessagingException) ObjectNotFoundException(pl.pollub.cs.pentagoncafe.flare.exception.ObjectNotFoundException) HtmlEmail(pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail) Event(pl.pollub.cs.pentagoncafe.flare.domain.Event) SendingEmailException(pl.pollub.cs.pentagoncafe.flare.exception.sendingEmail.SendingEmailException)

Aggregations

User (pl.pollub.cs.pentagoncafe.flare.domain.User)6 Email (pl.pollub.cs.pentagoncafe.flare.component.email.Email)4 HtmlEmail (pl.pollub.cs.pentagoncafe.flare.component.email.HtmlEmail)4 Transactional (org.springframework.transaction.annotation.Transactional)3 ActivationToken (pl.pollub.cs.pentagoncafe.flare.domain.ActivationToken)3 ObjectNotFoundException (pl.pollub.cs.pentagoncafe.flare.exception.ObjectNotFoundException)2 MessagingException (javax.mail.MessagingException)1 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)1 UserDetailsImpl (pl.pollub.cs.pentagoncafe.flare.DTO.security.UserDetailsImpl)1 Event (pl.pollub.cs.pentagoncafe.flare.domain.Event)1 ResetPasswordException (pl.pollub.cs.pentagoncafe.flare.exception.ResetPasswordException)1 TooManyLoginAttempts (pl.pollub.cs.pentagoncafe.flare.exception.auth.TooManyLoginAttempts)1 SendingEmailException (pl.pollub.cs.pentagoncafe.flare.exception.sendingEmail.SendingEmailException)1