Package org.nemesis.forum.webapp.admin.action

Source Code of org.nemesis.forum.webapp.admin.action.AddForumAction

package org.nemesis.forum.webapp.admin.action;

import java.util.Iterator;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.nemesis.forum.Forum;
import org.nemesis.forum.ForumFactory;
import org.nemesis.forum.ProfileManager;
import org.nemesis.forum.User;
import org.nemesis.forum.config.Constants;
import org.nemesis.forum.exception.AlreadyExistsException;
import org.nemesis.forum.exception.UnauthorizedException;
import org.nemesis.forum.webapp.admin.bean.ForumBean;



/**
* @author dlaurent
*
* 20 f�vr. 2003
*/
public class AddForumAction extends BaseAction {

  static protected Log log =LogFactory.getLog(AddForumAction.class);


  public ActionForward execute(ActionMapping mapping,
         ActionForm form,
         HttpServletRequest request,
         HttpServletResponse response)
  throws Exception {
    //check logon
    checkUser(request);
    //check permission
    checkPermission(request,OperationConstants.ADD_FORUM);
   
   
    ActionErrors errors = new ActionErrors();
    //    user need cancel
    if (isCancelled(request)) {
        return (mapping.findForward("cancel"));
     }
    
    try {
         
       
        ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
        ProfileManager manager = forumFactory.getProfileManager();
        User user = manager.getUser(getAuthToken(request).getUserID());
        try {
         
          ForumBean fb=(ForumBean)PropertyUtils.getProperty(form, "forumBean");
          ForumFactory ff =ForumFactory.getInstance(getAuthToken(request));
          Forum f =ff.createForum(fb.getName(),fb.getDescription());
         
          //ForumPermissions permissions = forumFactory.getPermissions(getAuthToken(request));
          //boolean isSystemAdmin = permissions.get(ForumPermissions.SYSTEM_ADMIN);
          //boolean isUserAdmin   = permissions.get(ForumPermissions.FORUM_ADMIN);
         
          //f.addUserPermission(user,Constants.FORUM_ADMIN);
          f.addUserPermission(user,Constants.READ);
          f.addUserPermission(user,Constants.MODERATOR);
          f.addUserPermission(user,Constants.CREATE_THREAD);
          f.addUserPermission(user,Constants.CREATE_MESSAGE);
          f.addUserPermission(user,Constants.FORUM_ADMIN);
          //if(SecurityTools.isSystemAdmin(getAuthToken(request)))
          //f.addUserPermission(user,Constants.SYSTEM_ADMIN);
         
          f.setModerationType(fb.getModerationType());
         
          //properties
          String temp=null;
          for(Iterator it=fb.getProperties().keySet().iterator();it.hasNext();){
            temp=(String)it.next();
            f.setProperty(temp,(String)fb.getProperties().get(temp));
          }
         
         
        }
        catch( AlreadyExistsException aee ) {
          errors.add("general"new ActionError("addForum.alreadyExist"));
        }
        catch( UnauthorizedException aee ) {
          aee.printStackTrace();
          errors.add("general"new ActionError("addForum.unauthorized"));
          saveErrors(request, errors);
          return mapping.findForward("cancel");
        }
       
    } catch (Exception e) {
      String eid=this.getClass().getName()+"_"+System.currentTimeMillis();
      log.error("eid:"+eid+"\nsessionID" +request.getSession().getId(),e;     
      errors.add("general"new ActionError("error.general","erreur id:"+eid));           
    }
   
    if (!errors.isEmpty()) {
      saveErrors(request, errors);
      return (mapping.getInputForward());
    }
   
    return mapping.findForward("success");
  }

}
TOP

Related Classes of org.nemesis.forum.webapp.admin.action.AddForumAction

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.