mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
cleanup demo account every 24h (#1014)
This commit is contained in:
@@ -18,6 +18,7 @@ import com.commafeed.backend.favicon.AbstractFaviconFetcher;
|
|||||||
import com.commafeed.backend.favicon.DefaultFaviconFetcher;
|
import com.commafeed.backend.favicon.DefaultFaviconFetcher;
|
||||||
import com.commafeed.backend.favicon.FacebookFaviconFetcher;
|
import com.commafeed.backend.favicon.FacebookFaviconFetcher;
|
||||||
import com.commafeed.backend.favicon.YoutubeFaviconFetcher;
|
import com.commafeed.backend.favicon.YoutubeFaviconFetcher;
|
||||||
|
import com.commafeed.backend.task.DemoAccountCleanupTask;
|
||||||
import com.commafeed.backend.task.OldEntriesCleanupTask;
|
import com.commafeed.backend.task.OldEntriesCleanupTask;
|
||||||
import com.commafeed.backend.task.OldStatusesCleanupTask;
|
import com.commafeed.backend.task.OldStatusesCleanupTask;
|
||||||
import com.commafeed.backend.task.OrphanedContentsCleanupTask;
|
import com.commafeed.backend.task.OrphanedContentsCleanupTask;
|
||||||
@@ -68,6 +69,7 @@ public class CommaFeedModule extends AbstractModule {
|
|||||||
taskMultibinder.addBinding().to(OldEntriesCleanupTask.class);
|
taskMultibinder.addBinding().to(OldEntriesCleanupTask.class);
|
||||||
taskMultibinder.addBinding().to(OrphanedFeedsCleanupTask.class);
|
taskMultibinder.addBinding().to(OrphanedFeedsCleanupTask.class);
|
||||||
taskMultibinder.addBinding().to(OrphanedContentsCleanupTask.class);
|
taskMultibinder.addBinding().to(OrphanedContentsCleanupTask.class);
|
||||||
|
taskMultibinder.addBinding().to(DemoAccountCleanupTask.class);
|
||||||
|
|
||||||
ApplicationSettings settings = config.getApplicationSettings();
|
ApplicationSettings settings = config.getApplicationSettings();
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,14 @@
|
|||||||
package com.commafeed.backend.service;
|
package com.commafeed.backend.service;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
import com.commafeed.CommaFeedApplication;
|
|
||||||
import com.commafeed.CommaFeedConfiguration;
|
import com.commafeed.CommaFeedConfiguration;
|
||||||
import com.commafeed.backend.dao.UnitOfWork;
|
import com.commafeed.backend.dao.UnitOfWork;
|
||||||
import com.commafeed.backend.dao.UserDAO;
|
import com.commafeed.backend.dao.UserDAO;
|
||||||
import com.commafeed.backend.model.UserRole.Role;
|
|
||||||
|
|
||||||
import io.dropwizard.lifecycle.Managed;
|
import io.dropwizard.lifecycle.Managed;
|
||||||
import liquibase.Liquibase;
|
import liquibase.Liquibase;
|
||||||
@@ -77,10 +73,9 @@ public class StartupService implements Managed {
|
|||||||
private void initialData() {
|
private void initialData() {
|
||||||
log.info("Populating database with default values");
|
log.info("Populating database with default values");
|
||||||
try {
|
try {
|
||||||
userService.register(CommaFeedApplication.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER),
|
userService.createAdminUser();
|
||||||
true);
|
|
||||||
if (config.getApplicationSettings().getCreateDemoAccount()) {
|
if (config.getApplicationSettings().getCreateDemoAccount()) {
|
||||||
userService.register(CommaFeedApplication.USERNAME_DEMO, "demo", "demo@commafeed.com", Arrays.asList(Role.USER), true);
|
userService.createDemoUser();
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.commafeed.backend.service;
|
package com.commafeed.backend.service;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -12,6 +13,7 @@ import javax.inject.Singleton;
|
|||||||
import org.apache.commons.codec.digest.DigestUtils;
|
import org.apache.commons.codec.digest.DigestUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import com.commafeed.CommaFeedApplication;
|
||||||
import com.commafeed.CommaFeedConfiguration;
|
import com.commafeed.CommaFeedConfiguration;
|
||||||
import com.commafeed.backend.dao.FeedCategoryDAO;
|
import com.commafeed.backend.dao.FeedCategoryDAO;
|
||||||
import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
||||||
@@ -116,6 +118,14 @@ public class UserService {
|
|||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void createAdminUser() {
|
||||||
|
register(CommaFeedApplication.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createDemoUser() {
|
||||||
|
register(CommaFeedApplication.USERNAME_DEMO, "demo", "demo@commafeed.com", Arrays.asList(Role.USER), true);
|
||||||
|
}
|
||||||
|
|
||||||
public void unregister(User user) {
|
public void unregister(User user) {
|
||||||
userSettingsDAO.delete(userSettingsDAO.findByUser(user));
|
userSettingsDAO.delete(userSettingsDAO.findByUser(user));
|
||||||
userRoleDAO.delete(userRoleDAO.findAll(user));
|
userRoleDAO.delete(userRoleDAO.findAll(user));
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package com.commafeed.backend.task;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
|
import com.commafeed.CommaFeedApplication;
|
||||||
|
import com.commafeed.CommaFeedConfiguration;
|
||||||
|
import com.commafeed.backend.dao.UnitOfWork;
|
||||||
|
import com.commafeed.backend.dao.UserDAO;
|
||||||
|
import com.commafeed.backend.model.User;
|
||||||
|
import com.commafeed.backend.service.UserService;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor(onConstructor = @__({ @Inject }))
|
||||||
|
@Singleton
|
||||||
|
@Slf4j
|
||||||
|
public class DemoAccountCleanupTask extends ScheduledTask {
|
||||||
|
|
||||||
|
private final CommaFeedConfiguration config;
|
||||||
|
private final SessionFactory sessionFactory;
|
||||||
|
private final UserDAO userDAO;
|
||||||
|
private final UserService userService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void run() {
|
||||||
|
if (!config.getApplicationSettings().getCreateDemoAccount()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("recreating demo user account");
|
||||||
|
UnitOfWork.run(sessionFactory, () -> {
|
||||||
|
User demoUser = userDAO.findByName(CommaFeedApplication.USERNAME_DEMO);
|
||||||
|
if (demoUser == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
userService.unregister(demoUser);
|
||||||
|
userService.createDemoUser();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected long getInitialDelay() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected long getPeriod() {
|
||||||
|
return getTimeUnit().convert(24, TimeUnit.HOURS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected TimeUnit getTimeUnit() {
|
||||||
|
return TimeUnit.MINUTES;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user