Extract afterLogin into a separate class

This commit is contained in:
Sankaranarayanan Viswanathan
2014-10-08 21:39:39 -04:00
parent 47da4a2a1a
commit 67d7315003
2 changed files with 47 additions and 20 deletions

View File

@@ -12,7 +12,6 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateUtils;
import com.commafeed.CommaFeedConfiguration;
import com.commafeed.backend.dao.FeedCategoryDAO;
@@ -21,6 +20,7 @@ import com.commafeed.backend.dao.UserSettingsDAO;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.service.internal.PostLoginActivities;
import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
@@ -107,25 +107,7 @@ public class UserService {
* Note: Visibility changed to package private to enabled spying on this method
*/
void afterLogin(User user) {
Date lastLogin = user.getLastLogin();
Date now = new Date();
boolean saveUser = false;
// only update lastLogin field every hour in order to not
// invalidate the cache everytime someone logs in
if (lastLogin == null || lastLogin.before(DateUtils.addHours(now, -1))) {
user.setLastLogin(now);
saveUser = true;
}
if (config.getApplicationSettings().isHeavyLoad()
&& (user.getLastFullRefresh() == null || user.getLastFullRefresh().before(DateUtils.addMinutes(now, -30)))) {
user.setLastFullRefresh(now);
saveUser = true;
feedSubscriptionService.refreshAll(user);
}
if (saveUser) {
userDAO.merge(user);
}
new PostLoginActivities(userDAO, feedSubscriptionService, config).afterLogin(user);
}
public User register(String name, String password, String email, Collection<Role> roles) {