FloodControlListener.java :  » JBoss » jboss-forums » org » jboss » portlet » forums » ui » event » Java Open Source

Java Open Source » JBoss » jboss forums 
jboss forums » org » jboss » portlet » forums » ui » event » FloodControlListener.java
package org.jboss.portlet.forums.ui.event;

import java.util.Date;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import org.jboss.portal.identity.User;
import org.jboss.portlet.forums.ui.BaseController;
import org.jboss.portlet.forums.ui.PortalUtil;

public class FloodControlListener implements ActionListener {

    private long floodInterval;

    public FloodControlListener() {
        super();
        
        try 
        {
            floodInterval = BaseController.getForumsModule().getFloodInterval();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void processAction(ActionEvent event) throws AbortProcessingException {
        
        long lastPostTime = 0;
        
        try 
        {
            User user = PortalUtil.getUser();
            
            if (user != null) {
                Date lastPost = BaseController.getForumsModule().findLastPostDateForUser(user);
            
                if (lastPost != null)
                {
                    lastPostTime = lastPost.getTime();
                }
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }

        if (lastPostTime > 0)
        {
           long now = new Date().getTime();
           
           long interval = (now - lastPostTime) / 1000;
           
           if (interval < floodInterval)
           {
               throw new AbortProcessingException("interval < floodInterval");
           }
        }
    }
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.