package scrum.server.admin; import ilarkesto.concurrent.ACollectionTask; import ilarkesto.core.logging.Log; import ilarkesto.persistence.TransactionService; import java.util.Collection; public class DisableUsersWithUnverifiedEmailsTask extends ACollectionTask<User> { private static Log log = Log.get(DisableUsersWithUnverifiedEmailsTask.class); // --- dependencies --- private UserDao userDao; private TransactionService transactionService; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void setTransactionService(TransactionService transactionService) { this.transactionService = transactionService; } // --- --- @Override protected Collection<User> prepare() throws InterruptedException { return userDao.getUsersByEmailVerified(false); } @Override protected void perform(User user) throws InterruptedException { if (user.isDisabled()) return; if (user.isAdmin()) return; if (user.isEmailVerificationOverdue()) { log.warn("Disabling user:", user); user.setDisabled(true); } } @Override protected void cleanup() throws InterruptedException { transactionService.commit(); super.cleanup(); } }