You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/05/02 00:23:34 UTC
svn commit: r398712 [29/32] - in /incubator/roller/trunk/src/org/apache: ./
roller/ roller/business/ roller/business/hibernate/
roller/business/referrers/ roller/business/runnable/
roller/business/search/ roller/business/search/operations/ roller/busin...
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/UserNewAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/UserNewAction.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/UserNewAction.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/UserNewAction.java Mon May 1 15:23:02 2006
@@ -0,0 +1,228 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.presentation.website.actions;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.TimeZone;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+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.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.roller.RollerException;
+import org.apache.roller.config.RollerRuntimeConfig;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.pojos.UserData;
+import org.apache.roller.presentation.BasePageModel;
+import org.apache.roller.presentation.RollerContext;
+import org.apache.roller.presentation.RollerRequest;
+import org.apache.roller.presentation.website.formbeans.UserFormEx;
+import org.apache.roller.util.StringUtils;
+
+/////////////////////////////////////////////////////////////////////////////
+/**
+ * Actions for creating a new user.
+ *
+ * @struts.action name="userFormEx" path="/user"
+ * scope="session" parameter="method"
+ *
+ * @struts.action-forward name="registerUser.page" path=".UserNew"
+ * @struts.action-forward name="welcome.page" path=".welcome"
+ */
+public class UserNewAction extends UserBaseAction
+{
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(UserNewAction.class);
+
+ //------------------------------------------------------------------------
+ /** Process GET of new user page (allows admin to create a user) */
+ public ActionForward createUser(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ UserFormEx userForm = (UserFormEx)actionForm;
+ userForm.setAdminCreated(true);
+ return registerUser(mapping, actionForm, request, response);
+ }
+
+ public ActionForward cancel(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ return mapping.findForward("main");
+ }
+
+ //------------------------------------------------------------------------
+ /** Process GET of user registration page (allows users to register themselves). */
+ public ActionForward registerUser(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("registerUser.page");
+ ActionErrors errors = new ActionErrors();
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ try
+ {
+ UserFormEx userForm = (UserFormEx)actionForm;
+
+ userForm.setLocale(Locale.getDefault().toString());
+ userForm.setTimeZone(TimeZone.getDefault().getID());
+
+ userForm.setPasswordText(null);
+ userForm.setPasswordConfirm(null);
+ request.setAttribute("model", new BasePageModel(
+ "newUser.addNewUser", request, response, mapping));
+ }
+ catch (Exception e)
+ {
+ errors.add(ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.editing.user", e.toString()));
+ mLogger.error("ERROR in newUser", e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /** Process POST of new user information. */
+ public ActionForward add(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ UserFormEx form = (UserFormEx)actionForm;
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ ServletContext ctx = rreq.getServletContext();
+ RollerContext rollerContext = RollerContext.getRollerContext();
+
+ boolean reg_allowed =
+ RollerRuntimeConfig.getBooleanProperty("users.registration.enabled");
+
+ if ( !reg_allowed && !request.isUserInRole("admin"))
+ {
+ throw new ServletException("New users disabled!");
+ }
+
+ ActionMessages msgs = new ActionMessages();
+ ActionMessages errors = validate(form, new ActionErrors());
+ if (!errors.isEmpty())
+ {
+ saveErrors(request, errors);
+ }
+ else try
+ {
+ // Add new user
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+
+ UserData ud = new UserData();
+ form.copyTo(ud, request.getLocale()); // doesn't copy password
+ ud.setId(null);
+ ud.setDateCreated(new java.util.Date());
+ ud.setEnabled(Boolean.TRUE);
+
+ // If user set both password and passwordConfirm then reset password
+ if ( !StringUtils.isEmpty(form.getPasswordText())
+ && !StringUtils.isEmpty(form.getPasswordConfirm()))
+ {
+ ud.resetPassword(RollerFactory.getRoller(),
+ form.getPasswordText(), form.getPasswordConfirm());
+ }
+
+ // save new user
+ mgr.addUser(ud);
+ RollerFactory.getRoller().flush();
+
+ if (form.getAdminCreated())
+ {
+ // User created for admin, so return to new user page with empty form
+ msgs.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("newUser.created"));
+ saveMessages(request, msgs);
+ form.reset(mapping, request);
+ return createUser(mapping, actionForm, request, response);
+ }
+ else
+ {
+ // User registered, so go to welcome page
+ String weblogURL = rollerContext.getAbsoluteContextUrl(request)
+ + "/page/"+ud.getUserName();
+ request.setAttribute("weblogURL",weblogURL);
+ String rssURL = rollerContext.getAbsoluteContextUrl(request)
+ + "/rss/"+ud.getUserName();
+ request.setAttribute("rssURL",rssURL);
+ request.setAttribute("contextURL",
+ rollerContext.getAbsoluteContextUrl(request));
+ return mapping.findForward("welcome.page");
+ }
+ }
+ catch (RollerException e)
+ {
+ errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(e.getMessage()));
+ saveErrors(request,errors);
+ mLogger.error("ERROR in addUser", e);
+ form.setUserName("");
+ }
+
+ if (form.getAdminCreated())
+ {
+ return mapping.findForward("createUser");
+ }
+ else
+ {
+ // Error occured, send user back to new user form
+ return mapping.findForward("registerUser");
+ }
+ }
+
+ //------------------------------------------------------------------------
+ /** Validate user form. TODO: replace with Struts validation. */
+ protected ActionMessages validate( UserFormEx form, ActionMessages errors ) {
+ super.validate(form, errors);
+ if ( StringUtils.isEmpty(form.getPasswordText())
+ && StringUtils.isEmpty(form.getPasswordConfirm()))
+ {
+ errors.add( ActionErrors.GLOBAL_ERROR,
+ new ActionError("error.add.user.missingPassword"));
+ }
+ return errors;
+ }
+}
\ No newline at end of file
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WeblogTemplateFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WeblogTemplateFormAction.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WeblogTemplateFormAction.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WeblogTemplateFormAction.java Mon May 1 15:23:02 2006
@@ -0,0 +1,441 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.presentation.website.actions;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+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.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.actions.DispatchAction;
+import org.apache.roller.RollerException;
+import org.apache.roller.RollerPermissionsException;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.pojos.WeblogTemplate;
+import org.apache.roller.pojos.UserData;
+import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.presentation.BasePageModel;
+import org.apache.roller.presentation.RollerRequest;
+import org.apache.roller.presentation.RollerSession;
+import org.apache.roller.presentation.cache.CacheManager;
+import org.apache.roller.presentation.forms.WeblogTemplateForm;
+import org.apache.roller.util.StringUtils;
+import org.apache.roller.util.Utilities;
+/////////////////////////////////////////////////////////////////////////////
+/**
+ * Page form action.
+ * @struts.action name="weblogTemplateForm" path="/editor/page"
+ * scope="session" parameter="method"
+ *
+ * @struts.action-forward name="removePage.page" path=".remove-page"
+ * @struts.action-forward name="editPage.page" path=".edit-page"
+ * @struts.action-forward name="editPages.page" path=".edit-pages"
+ */
+public final class WeblogTemplateFormAction extends DispatchAction
+{
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(WeblogTemplateFormAction.class);
+
+ public ActionForward add(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("editPages.page");
+ try
+ {
+ request.setAttribute("model", new BasePageModel(
+ "pagesForm.title", request, response, mapping));
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ RollerSession rses = RollerSession.getRollerSession(request);
+ WebsiteData website = rreq.getWebsite();
+ if ( rses.isUserAuthorizedToAdmin(website) )
+ {
+ WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
+ WeblogTemplate data = new WeblogTemplate();
+ form.copyTo(data, request.getLocale());
+ data.setWebsite(website);
+ data.setLastModified( new java.util.Date() );
+ data.setDescription("");
+ data.setContents("");
+ validateLink( data );
+
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ mgr.savePage( data );
+ RollerFactory.getRoller().flush();
+
+ ActionMessages uiMessages = new ActionMessages();
+ uiMessages.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("pagesForm.addNewPage.success",
+ data.getName()));
+ saveMessages(request, uiMessages);
+
+ actionForm.reset(mapping,request);
+
+ addModelObjects(request, response, mapping, website);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("editPage.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WeblogTemplate pd = (WeblogTemplate)rreq.getPage();
+
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin(pd.getWebsite()) )
+ {
+ BasePageModel pageModel = new BasePageModel(
+ "pageForm.title", request, response, mapping);
+ pageModel.setWebsite(pd.getWebsite());
+ request.setAttribute("model", pageModel);
+
+ WeblogTemplateForm pf = (WeblogTemplateForm)actionForm;
+ pf.copyFrom(pd, request.getLocale());
+
+ addModelObjects(request, response, mapping, pd.getWebsite());
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward editPages(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("editPages.page");
+ try
+ {
+ WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ RollerSession rses = RollerSession.getRollerSession(request);
+ request.setAttribute("model", new BasePageModel(
+ "pagesForm.title", request, response, mapping));
+
+ WebsiteData website = rreq.getWebsite();
+ if (website == null && form.getId()!=null)
+ {
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ WeblogTemplate template = mgr.getPage(form.getId());
+ website = template.getWebsite();
+ }
+
+ if ( rses.isUserAuthorizedToAdmin(website))
+ {
+ addModelObjects(request, response, mapping, website);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward remove(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("editPages");
+ request.setAttribute("model", new BasePageModel(
+ "pagesForm.title", request, response, mapping));
+ try
+ {
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
+ WeblogTemplate template = mgr.getPage(form.getId());
+ WebsiteData website = template.getWebsite();
+
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin(website) )
+ {
+ if(!template.isRequired()) {
+
+ mgr.removePage(template);
+ RollerFactory.getRoller().flush();
+
+ // notify cache
+ CacheManager.invalidate(template);
+ } else {
+
+ // someone trying to remove a required template
+ throw new RollerException("Cannot remove required page");
+ }
+
+ addModelObjects(
+ request, response, mapping, template.getWebsite());
+ actionForm.reset(mapping, request);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (RollerException e)
+ {
+ ActionErrors errors = new ActionErrors();
+ errors.add(null, new ActionError(
+ "error.internationalized",e.getRootCauseMessage()));
+ saveErrors(request, errors);
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /** Send user to remove confirmation page */
+ public ActionForward removeOk(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("removePage.page");
+ try
+ {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WeblogTemplate page = (WeblogTemplate) rreq.getPage();
+ WebsiteData website = page.getWebsite();
+ if ( rses.isUserAuthorizedToAdmin(website) )
+ {
+ WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
+ form.copyFrom(page, request.getLocale());
+
+ addModelObjects(request, response, mapping, page.getWebsite());
+
+ BasePageModel pageModel = new BasePageModel(
+ "editPages.title.removeOK", request, response, mapping);
+ pageModel.setWebsite(website);
+ request.setAttribute("model", pageModel);
+
+ UserData ud = rses.getAuthenticatedUser();
+ request.setAttribute("user",ud);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward update(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("editPage.page");
+ try
+ {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WeblogTemplateForm form = (WeblogTemplateForm)actionForm;
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ WeblogTemplate data = mgr.getPage(form.getId());
+ WebsiteData website = data.getWebsite();
+
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if (rses.isUserAuthorizedToAdmin(website))
+ {
+ form.copyTo(data, request.getLocale());
+ data.setLastModified( new java.util.Date() );
+
+ validateLink( data );
+
+ mgr.savePage( data );
+ RollerFactory.getRoller().flush();
+
+ // set the (possibly) new link back into the Form bean
+ ((WeblogTemplateForm)actionForm).setLink( data.getLink() );
+
+ ActionMessages uiMessages = new ActionMessages();
+ uiMessages.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("pageForm.save.success",
+ data.getName()));
+ saveMessages(request, uiMessages);
+
+ CacheManager.invalidate(data);
+
+ BasePageModel pageModel = new BasePageModel(
+ "pageForm.title", request, response, mapping);
+ pageModel.setWebsite(website);
+ request.setAttribute("model", pageModel);
+ }
+ else
+ {
+ forward = mapping.findForward("access-denied");
+ }
+
+ // Don't reset this form. Allow user to keep on tweaking.
+ //actionForm.reset(mapping,request);
+ }
+ catch (RollerPermissionsException e)
+ {
+ ActionErrors errors = new ActionErrors();
+ errors.add(null, new ActionError("error.permissions.deniedSave"));
+ saveErrors(request, errors);
+ forward = mapping.findForward("access-denied");
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Ensures that the page has a safe value for the link
+ * field. "Safe" is defined as containing no html
+ * or any other non-alphanumeric characters.
+ * While this is overly strict (there are non-alphanum
+ * characters that are web-safe), this is a much easier
+ * test-and-correct. Otherwise we would need a RegEx package.
+ */
+ private void validateLink( WeblogTemplate data )
+ {
+ // if data.getLink() is null or empty
+ // use the title ( data.getName() )
+ if ( StringUtils.isEmpty( data.getLink() ) )
+ {
+ data.setLink( data.getName() );
+ }
+
+ // if link contains any nonAlphanumeric, strip them
+ // first we must remove any html, as this is
+ // non-instructional markup. Then do a straight
+ // removeNonAlphanumeric.
+ if ( !StringUtils.isAlphanumeric( data.getLink() ) )
+ {
+ String link = Utilities.removeHTML( data.getLink() );
+ link = Utilities.removeNonAlphanumeric( link );
+ data.setLink( link );
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward cancel(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ request.setAttribute("model", new BasePageModel(
+ "pagesForm.title", request, response, mapping));
+ return (mapping.findForward("editPages"));
+ }
+
+ //-----------------------------------------------------------------------
+ private void addModelObjects(
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping,
+ WebsiteData website)
+ throws RollerException
+ {
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ RollerSession rses = RollerSession.getRollerSession(request);
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+
+ UserData user = rses.getAuthenticatedUser();
+ request.setAttribute("user", user);
+
+ WebsiteData wd = rreq.getWebsite();
+ request.setAttribute("website", website);
+
+ List pages = mgr.getPages(website);
+ request.setAttribute("pages", pages);
+
+ request.setAttribute("page", rreq.getPage());
+ }
+}
+
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WebsiteFormAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WebsiteFormAction.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WebsiteFormAction.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/WebsiteFormAction.java Mon May 1 15:23:02 2006
@@ -0,0 +1,383 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.presentation.website.actions;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang.BooleanUtils;
+
+import org.apache.commons.lang.StringUtils;
+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.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.actions.DispatchAction;
+import org.apache.velocity.VelocityContext;
+import org.apache.roller.RollerException;
+import org.apache.roller.RollerPermissionsException;
+import org.apache.roller.config.RollerConfig;
+import org.apache.roller.config.RollerRuntimeConfig;
+import org.apache.roller.model.PagePluginManager;
+import org.apache.roller.model.Roller;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.model.WeblogManager;
+import org.apache.roller.pojos.UserData;
+import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.presentation.BasePageModel;
+import org.apache.roller.presentation.RollerContext;
+import org.apache.roller.presentation.RollerRequest;
+import org.apache.roller.presentation.RollerSession;
+import org.apache.roller.presentation.cache.CacheManager;
+import org.apache.roller.presentation.website.formbeans.WebsiteFormEx;
+import org.apache.roller.util.Blacklist;
+
+
+/////////////////////////////////////////////////////////////////////////////
+/**
+ * Website Settings action.
+ *
+ * @struts.action name="websiteFormEx" path="/editor/website"
+ * scope="session" parameter="method"
+ *
+ * @struts.action-forward name="editWebsite.page" path=".edit-website"
+ * @struts.action-forward name="removeWebsite.page" path=".WebsiteRemove"
+ */
+public final class WebsiteFormAction extends DispatchAction {
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(WebsiteFormAction.class);
+
+ public ActionForward add(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception {
+ return update( mapping, actionForm, request, response );
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException {
+ ActionForward forward = mapping.findForward("editWebsite.page");
+ try {
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WebsiteData website = rreq.getWebsite();
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if (rses.isUserAuthorizedToAdmin(website)) {
+ Roller roller = RollerFactory.getRoller();
+ UserManager umgr = roller.getUserManager();
+ WeblogManager wmgr = roller.getWeblogManager();
+ UserData ud = rses.getAuthenticatedUser();
+ request.setAttribute("user",ud);
+
+ WebsiteFormEx wf = (WebsiteFormEx)actionForm;
+ wf.copyFrom(website, request.getLocale());
+
+ List cd = wmgr.getWeblogCategories(website, true);
+ request.setAttribute("categories",cd);
+
+ List bcd = wmgr.getWeblogCategories(website, false);
+ request.setAttribute("bloggerCategories",bcd);
+
+ List pages = umgr.getPages(website);
+ request.setAttribute("pages",pages);
+
+ ServletContext ctx = request.getSession().getServletContext();
+ String editorPages =
+ RollerRuntimeConfig.getProperty("users.editor.pages");
+
+ List epages = Arrays.asList(StringUtils.split(
+ StringUtils.deleteWhitespace(editorPages), ","));
+ request.setAttribute("editorPagesList", epages);
+
+
+ WebsitePageModel pageModel = new WebsitePageModel(
+ "websiteSettings.title", request, response, mapping, website);
+ request.setAttribute("model",pageModel);
+ } else {
+ forward = mapping.findForward("access-denied");
+ }
+ } catch (Exception e) {
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+
+ //-----------------------------------------------------------------------
+ public ActionForward update(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception {
+ ActionErrors errors = new ActionErrors();
+ ActionMessages messages = new ActionMessages();
+ ActionForward forward = mapping.findForward("editWebsite");
+ try {
+ WebsiteFormEx form = (WebsiteFormEx)actionForm;
+ WeblogManager wmgr = RollerFactory.getRoller().getWeblogManager();
+ UserManager umgr = RollerFactory.getRoller().getUserManager();
+
+ WebsiteData wd = umgr.getWebsite(form.getId());
+
+ // Set website in request, so subsequent action gets it
+ RollerRequest.getRollerRequest(request).setWebsite(wd);
+
+ RollerSession rollerSession = RollerSession.getRollerSession(request);
+ if ( rollerSession.isUserAuthorizedToAdmin(wd)) {
+ checkBlacklist(errors, messages, form.getBlacklist());
+ if (errors.isEmpty()) {
+ // ensure getEnabled can't be changed
+ form.setEnabled(wd.getEnabled());
+ form.copyTo(wd, request.getLocale());
+
+ // ROL-485: comments not be allowed on inactive weblogs
+ if (wd.getActive() != null && !wd.getActive().booleanValue()) {
+ wd.setAllowComments(Boolean.FALSE);
+ messages.add(null, new ActionMessage(
+ "websiteSettings.commentsOffForInactiveWeblog"));
+ }
+
+ umgr.saveWebsite(wd);
+
+ // ROL-1050: apply comment defaults to existing entries
+ if (form.isApplyCommentDefaults()) {
+ wmgr.applyCommentDefaultsToEntries(wd);
+ }
+
+ RollerFactory.getRoller().getRefererManager().applyRefererFilters(wd);
+
+ RollerFactory.getRoller().flush();
+
+ messages.add(null,
+ new ActionMessage("websiteSettings.savedChanges"));
+
+ request.getSession().setAttribute(
+ RollerRequest.WEBSITEID_KEY, form.getId());
+
+ // Clear cache entries associated with website
+ CacheManager.invalidate(wd);
+
+ actionForm.reset(mapping,request);
+ }
+
+ // set the Editor Page list
+ ServletContext ctx = request.getSession().getServletContext();
+ String editorPages =
+ RollerRuntimeConfig.getProperty("users.editor.pages");
+
+ List epages = Arrays.asList(StringUtils.split(
+ org.apache.commons.lang.StringUtils.deleteWhitespace(editorPages), ","));
+ request.setAttribute("editorPagesList", epages);
+
+ WebsitePageModel pageModel =
+ new WebsitePageModel("websiteSettings.title",
+ request, response, mapping, wd);
+ request.setAttribute("model",pageModel);
+
+ } else {
+ forward = mapping.findForward("access-denied");
+ }
+
+ } catch (RollerPermissionsException e) {
+ errors.add(null, new ActionError("error.permissions.deniedSave"));
+ forward = mapping.findForward("access-denied");
+ } catch (RollerException re) {
+ mLogger.error("Unexpected exception",re.getRootCause());
+ throw new ServletException(re);
+ } catch (Exception e) {
+ mLogger.error("Unexpected exception",e);
+ throw new ServletException(e);
+ }
+ if (errors.size() > 0) saveErrors(request, errors);
+ if (messages.size() > 0) saveMessages(request, messages);
+ return forward;
+ }
+
+ /** Count string and regex ignore words, check regex for Syntax errors */
+ private void checkBlacklist(
+ ActionErrors errors, ActionMessages messages, String blacklist) {
+ List regexRules = new ArrayList();
+ List stringRules = new ArrayList();
+ try {
+ // just for testing/counting, this does not persist rules in any way
+ Blacklist.populateSpamRules(blacklist, stringRules, regexRules, null);
+ messages.add(null, new ActionMessage(
+ "websiteSettings.acceptedBlacklist",
+ new Integer(stringRules.size()), new Integer(regexRules.size())));
+ } catch (Throwable e) {
+ errors.add(null, new ActionMessage(
+ "websiteSettings.error.processingBlacklist", e.getMessage()));
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /** Send user to remove confirmation page */
+ public ActionForward removeOk(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception {
+ WebsiteFormEx form = (WebsiteFormEx)actionForm;
+ UserManager umgr = RollerFactory.getRoller().getUserManager();
+ WebsiteData website = umgr.getWebsite(form.getId());
+ ActionForward forward = mapping.findForward("removeWebsite.page");
+ request.setAttribute("model", new WebsitePageModel(
+ "websiteRemove.title", request, response, mapping, website));
+ try {
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if (rses.isUserAuthorizedToAdmin(website)) {
+ form.copyFrom(website, request.getLocale());
+ request.setAttribute("website", website);
+ } else {
+ forward = mapping.findForward("access-denied");
+ }
+ } catch (Exception e) {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ //-----------------------------------------------------------------------
+ public ActionForward remove(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception {
+ ActionForward forward = mapping.findForward("yourWebsites");
+ try {
+ UserManager umgr = RollerFactory.getRoller().getUserManager();
+ WebsiteFormEx form = (WebsiteFormEx)actionForm;
+ WebsiteData website = umgr.getWebsite(form.getId());
+
+ RollerSession rses = RollerSession.getRollerSession(request);
+ if ( rses.isUserAuthorizedToAdmin(website) ) {
+
+ // remove website
+ umgr.removeWebsite(website);
+ RollerFactory.getRoller().flush();
+
+ CacheManager.invalidate(website);
+
+ actionForm.reset(mapping, request);
+ } else {
+ forward = mapping.findForward("access-denied");
+ }
+ } catch (RollerException e) {
+ ActionErrors errors = new ActionErrors();
+ errors.add(null, new ActionError(
+ "error.internationalized",e.getRootCauseMessage()));
+ saveErrors(request, errors);
+ } catch (Exception e) {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ return forward;
+ }
+
+ public class WebsitePageModel extends BasePageModel {
+ private List permissions = new ArrayList();
+ private boolean groupBloggingEnabled = false;
+ private boolean emailNotificationEnabled = false;
+ private boolean moderationRequired = false;
+ public WebsitePageModel(
+ String titleKey,
+ HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping,
+ WebsiteData website) throws RollerException {
+ super(titleKey, request, response, mapping);
+ this.website = website;
+ Roller roller = RollerFactory.getRoller();
+ RollerSession rollerSession = RollerSession.getRollerSession(request);
+ UserData user = rollerSession.getAuthenticatedUser();
+ permissions = roller.getUserManager().getAllPermissions(website);
+ groupBloggingEnabled =
+ RollerConfig.getBooleanProperty("groupblogging.enabled");
+ emailNotificationEnabled =
+ RollerRuntimeConfig.getBooleanProperty("users.comments.emailnotify");
+ moderationRequired =
+ RollerRuntimeConfig.getBooleanProperty("users.moderation.required");
+ }
+ public boolean isGroupBloggingEnabled() {
+ return groupBloggingEnabled;
+ }
+ public boolean isEmailNotificationEnabled() {
+ return emailNotificationEnabled;
+ }
+ public boolean isModerationRequired() {
+ return moderationRequired;
+ }
+ public boolean getHasPagePlugins() {
+ boolean ret = false;
+ try {
+ Roller roller = RollerFactory.getRoller();
+ PagePluginManager ppmgr = roller.getPagePluginManager();
+ ret = ppmgr.hasPagePlugins();
+ } catch (RollerException e) {
+ mLogger.error(e);
+ }
+ return ret;
+ }
+
+ public List getPagePlugins() {
+ List list = new ArrayList();
+ try {
+ if (getHasPagePlugins()) {
+ Roller roller = RollerFactory.getRoller();
+ PagePluginManager ppmgr = roller.getPagePluginManager();
+ Map plugins = ppmgr.createAndInitPagePlugins(
+ getWebsite(),
+ RollerContext.getRollerContext().getServletContext(),
+ RollerContext.getRollerContext().getAbsoluteContextUrl(),
+ new VelocityContext());
+ Iterator it = plugins.values().iterator();
+ while (it.hasNext()) list.add(it.next());
+ }
+ } catch (Exception e) {
+ mLogger.error(e);
+ }
+ return list;
+ }
+ }
+}
+
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourProfileAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourProfileAction.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourProfileAction.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourProfileAction.java Mon May 1 15:23:02 2006
@@ -0,0 +1,195 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.actions;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+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.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.roller.RollerException;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.pojos.UserData;
+import org.apache.roller.presentation.BasePageModel;
+import org.apache.roller.presentation.RollerSession;
+import org.apache.roller.presentation.website.formbeans.UserFormEx;
+import org.apache.roller.util.StringUtils;
+
+/**
+ * Allows user to edit his/her profile.
+ *
+ * @struts.action name="userFormEx" path="/editor/yourProfile" parameter="method"
+ * @struts.action-forward name="yourProfile.page" path=".YourProfile"
+ */
+public class YourProfileAction extends UserBaseAction
+{
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(YourProfileAction.class);
+
+ /** If method param is not specified, use HTTP verb to pick method to call */
+ public ActionForward unspecified(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ if (request.getMethod().equals("GET"))
+ {
+ return edit(mapping, actionForm, request, response);
+ }
+ return save(mapping, actionForm, request, response);
+ }
+
+ public ActionForward cancel(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ return mapping.findForward("yourWebsites");
+ }
+
+ /** Load form with authenticated user and forward to your-profile page */
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ ActionForward forward = mapping.findForward("yourProfile.page");
+ try
+ {
+ RollerSession rollerSession = RollerSession.getRollerSession(request);
+ UserData ud = rollerSession.getAuthenticatedUser();
+ UserFormEx form = (UserFormEx)actionForm;
+ form.copyFrom(ud, request.getLocale());
+ form.setPasswordText(null);
+ form.setPasswordConfirm(null);
+ form.setLocale(ud.getLocale());
+ form.setTimeZone(ud.getTimeZone());
+ request.setAttribute("model", new BasePageModel(
+ "yourProfile.title", request, response, mapping));
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ // if user logged in with a cookie, display a warning that they
+ // can't change passwords
+ if (mLogger.isDebugEnabled())
+ {
+ log.debug("checking for cookieLogin...");
+ }
+ if (request.getSession().getAttribute("cookieLogin") != null) {
+ ActionMessages messages = new ActionMessages();
+
+ // add warning messages
+ messages.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("yourProfile.cookieLogin"));
+ saveMessages(request, messages);
+ }
+ return forward;
+ }
+
+ /** Update user based on posted form data */
+ public ActionForward save(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws IOException, ServletException
+ {
+ UserFormEx form = (UserFormEx)actionForm;
+ ActionForward forward = mapping.findForward("yourProfile.page");
+ ActionMessages msgs = new ActionMessages();
+ try
+ {
+ ActionMessages errors = validate(form, new ActionErrors());
+ if (errors.size() == 0)
+ {
+ // We ONLY modify the user currently logged in
+ RollerSession rollerSession = RollerSession.getRollerSession(request);
+ UserData data = rollerSession.getAuthenticatedUser();
+
+ // We want to be VERY selective about what data gets updated
+ data.setFullName(form.getFullName());
+ data.setEmailAddress(form.getEmailAddress());
+ data.setLocale(form.getLocale());
+ data.setTimeZone(form.getTimeZone());
+
+ // If user set both password and passwordConfirm then reset password
+ if ( !StringUtils.isEmpty(form.getPasswordText())
+ && !StringUtils.isEmpty(form.getPasswordConfirm()))
+ {
+ try
+ {
+ data.resetPassword(RollerFactory.getRoller(),
+ form.getPasswordText(),
+ form.getPasswordConfirm());
+ }
+ catch (RollerException e)
+ {
+ msgs.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("yourProfile.passwordResetError"));
+ }
+ }
+
+ // save the updated profile
+ UserManager mgr = RollerFactory.getRoller().getUserManager();
+ mgr.saveUser(data);
+ RollerFactory.getRoller().flush();
+
+ request.setAttribute("model", new BasePageModel(
+ "yourProfile.title", request, response, mapping));
+
+ saveMessages(request, msgs);
+ }
+ else
+ {
+ saveErrors(request, errors);
+ }
+ return mapping.findForward("yourWebsites");
+ }
+ catch (Exception e)
+ {
+ mLogger.error("ERROR in action",e);
+ throw new ServletException(e);
+ }
+ }
+
+}
+
+
+
+
+
+
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourWebsitesAction.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourWebsitesAction.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourWebsitesAction.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/YourWebsitesAction.java Mon May 1 15:23:02 2006
@@ -0,0 +1,242 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.apache.struts.actions.DispatchAction;
+import org.apache.roller.RollerException;
+import org.apache.roller.config.RollerConfig;
+import org.apache.roller.model.Roller;
+import org.apache.roller.model.RollerFactory;
+import org.apache.roller.model.UserManager;
+import org.apache.roller.pojos.PermissionsData;
+import org.apache.roller.pojos.UserData;
+import org.apache.roller.pojos.WebsiteData;
+import org.apache.roller.presentation.BasePageModel;
+import org.apache.roller.presentation.RollerRequest;
+import org.apache.roller.presentation.RollerSession;
+import org.apache.roller.presentation.website.formbeans.YourWebsitesForm;
+
+/**
+ * Allows user to view and pick from list of his/her websites.
+ *
+ * @struts.action path="/editor/yourWebsites" name="yourWebsitesForm" parameter="method"
+ * @struts.action-forward name="yourWebsites.page" path=".YourWebsites"
+ */
+public class YourWebsitesAction extends DispatchAction
+{
+ private static Log mLogger =
+ LogFactory.getFactory().getInstance(YourWebsitesAction.class);
+
+ /** If method param is not specified, use HTTP verb to pick method to call */
+ public ActionForward unspecified(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ if (request.getMethod().equals("GET"))
+ {
+ return edit(mapping, actionForm, request, response);
+ }
+ return edit(mapping, actionForm, request, response);
+ }
+
+ public ActionForward edit(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ request.setAttribute("model",
+ new YourWebsitesPageModel(request, response, mapping));
+
+ ActionForward forward = mapping.findForward("yourWebsites.page");
+ return forward;
+ }
+
+ public ActionForward accept(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ YourWebsitesForm form = (YourWebsitesForm)actionForm;
+
+ UserManager userMgr = RollerFactory.getRoller().getUserManager();
+ PermissionsData perms = userMgr.getPermissions(form.getInviteId());
+
+ // TODO ROLLER_2.0: notify inviter that invitee has accepted invitation
+ // TODO EXCEPTIONS: better exception handling
+ perms.setPending(false);
+ userMgr.savePermissions(perms);
+ RollerFactory.getRoller().flush();
+
+ ActionMessages msgs = new ActionMessages();
+ msgs.add(null, new ActionMessage(
+ "yourWebsites.accepted", perms.getWebsite().getHandle()));
+ saveMessages(request, msgs);
+
+ request.setAttribute("model",
+ new YourWebsitesPageModel(request, response, mapping));
+ ActionForward forward = mapping.findForward("yourWebsites.page");
+ return forward;
+ }
+
+ public ActionForward decline(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ YourWebsitesForm form = (YourWebsitesForm)actionForm;
+
+ UserManager userMgr = RollerFactory.getRoller().getUserManager();
+ PermissionsData perms = userMgr.getPermissions(form.getInviteId());
+
+ // TODO ROLLER_2.0: notify inviter that invitee has declined invitation
+ // TODO EXCEPTIONS: better exception handling here
+ userMgr.removePermissions(perms);
+ RollerFactory.getRoller().flush();
+
+ ActionMessages msgs = new ActionMessages();
+ msgs.add(null, new ActionMessage(
+ "yourWebsites.declined", perms.getWebsite().getHandle()));
+ saveMessages(request, msgs);
+
+ request.setAttribute("model",
+ new YourWebsitesPageModel(request, response, mapping));
+ ActionForward forward = mapping.findForward("yourWebsites.page");
+ return forward;
+ }
+
+ public ActionForward resign(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception
+ {
+ YourWebsitesForm form = (YourWebsitesForm)actionForm;
+
+ RollerSession rses = RollerSession.getRollerSession(request);
+ UserData user = rses.getAuthenticatedUser();
+ RollerRequest rreq = RollerRequest.getRollerRequest(request);
+ WebsiteData website = rreq.getWebsite();
+
+ UserManager userMgr = RollerFactory.getRoller().getUserManager();
+ PermissionsData perms = userMgr.getPermissions(website, user);
+
+ if (perms != null)
+ {
+ // TODO ROLLER_2.0: notify website members that user has resigned
+ // TODO EXCEPTIONS: better exception handling
+ userMgr.removePermissions(perms);
+ RollerFactory.getRoller().flush();
+ }
+
+ ActionMessages msgs = new ActionMessages();
+ msgs.add(null, new ActionMessage(
+ "yourWebsites.resigned", perms.getWebsite().getHandle()));
+ saveMessages(request, msgs);
+
+ request.setAttribute("model",
+ new YourWebsitesPageModel(request, response, mapping));
+ ActionForward forward = mapping.findForward("yourWebsites.page");
+ return forward;
+ }
+
+ public static class YourWebsitesPageModel extends BasePageModel
+ {
+ private boolean planetAggregatorEnabled = false;
+ private boolean groupBloggingEnabled = false;
+ private List permissions = new ArrayList();
+ private List pendings = new ArrayList();
+ private int userWeblogCount = 0;
+
+ public YourWebsitesPageModel(HttpServletRequest request,
+ HttpServletResponse response, ActionMapping mapping) throws RollerException
+ {
+ super("yourWebsites.title", request, response, mapping);
+ Roller roller = RollerFactory.getRoller();
+ RollerSession rollerSession = RollerSession.getRollerSession(request);
+ UserData user = rollerSession.getAuthenticatedUser();
+ permissions = roller.getUserManager().getAllPermissions(user);
+ userWeblogCount = permissions.size();
+ pendings = roller.getUserManager().getPendingPermissions(user);
+ groupBloggingEnabled =
+ RollerConfig.getBooleanProperty("groupblogging.enabled");
+ setPlanetAggregatorEnabled(RollerConfig.getBooleanProperty("planet.aggregator.enabled"));
+ }
+ public List getPermissions()
+ {
+ return permissions;
+ }
+ public void setPermissions(List permissions)
+ {
+ this.permissions = permissions;
+ }
+ public List getPendings()
+ {
+ return pendings;
+ }
+ public void setPendings(List pendings)
+ {
+ this.pendings = pendings;
+ }
+
+ public boolean isGroupBloggingEnabled() {
+ return groupBloggingEnabled;
+ }
+
+ public void setGroupBloggingEnabled(boolean groupBloggingEnabled) {
+ this.groupBloggingEnabled = groupBloggingEnabled;
+ }
+
+ public boolean isPlanetAggregatorEnabled() {
+ return planetAggregatorEnabled;
+ }
+
+ public void setPlanetAggregatorEnabled(boolean planetAggregatorEnabled) {
+ this.planetAggregatorEnabled = planetAggregatorEnabled;
+ }
+
+ public int getUserWeblogCount() {
+ return userWeblogCount;
+ }
+ public void setUserWeblogCount(int count) {
+ userWeblogCount = count;
+ }
+ }
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/package.html
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/package.html?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/package.html (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/actions/package.html Mon May 1 15:23:02 2006
@@ -0,0 +1,27 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. The ASF licenses this file to You
+ under the Apache License, Version 2.0 (the "License"); you may not
+ use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License. For additional information regarding
+ copyright in this work, please see the NOTICE file in the top level
+ directory of this distribution.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <title></title>
+</head>
+<body>
+Struts actions for managing Roller config, website settings and admin.
+
+</body>
+</html>
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/CreateWebsiteForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/CreateWebsiteForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/CreateWebsiteForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/CreateWebsiteForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,112 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.formbeans;
+
+import java.util.Locale;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.roller.pojos.WebsiteData;
+
+/**
+ * @struts.form name="createWebsiteForm"
+ * @author Dave M Johnson
+ */
+public class CreateWebsiteForm extends ActionForm
+{
+ private String handle;
+ private String name;
+ private String description;
+ private String emailAddress;
+ private String locale;
+ private String timeZone;
+ private String theme;
+
+ public CreateWebsiteForm()
+ {
+
+ }
+ public String getDescription()
+ {
+ return description;
+ }
+ public void setDescription(String description)
+ {
+ this.description = description;
+ }
+ public String getEmailAddress()
+ {
+ return emailAddress;
+ }
+ public void setEmailAddress(String emailAddress)
+ {
+ this.emailAddress = emailAddress;
+ }
+ public String getHandle()
+ {
+ return handle;
+ }
+ public void setHandle(String handle)
+ {
+ this.handle = handle;
+ }
+ public String getLocale()
+ {
+ return locale;
+ }
+ public void setLocale(String locale)
+ {
+ this.locale = locale;
+ }
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+ public String getTheme()
+ {
+ return theme;
+ }
+ public void setTheme(String theme)
+ {
+ this.theme = theme;
+ }
+ public String getTimeZone()
+ {
+ return timeZone;
+ }
+ public void setTimeZone(String timeZone)
+ {
+ this.timeZone = timeZone;
+ }
+
+ /**
+ * @param wd
+ * @param locale2
+ */
+ public void copyTo(WebsiteData wd, Locale locale)
+ {
+ wd.setHandle(handle);
+ wd.setName(name);
+ wd.setDescription(description);
+ wd.setLocale(this.locale);
+ wd.setTimeZone(timeZone);
+ }
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/InviteMemberForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/InviteMemberForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/InviteMemberForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/InviteMemberForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,49 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * @struts.form name="inviteMemberForm"
+ * @author Dave M Johnson
+ */
+public class InviteMemberForm extends ActionForm
+{
+ private String userName;
+ private String websiteId;
+
+ public String getUserName()
+ {
+ return userName;
+ }
+ public void setUserName(String userName)
+ {
+ this.userName = userName;
+ }
+
+ public String getWebsiteId()
+ {
+ return websiteId;
+ }
+
+ public void setWebsiteId(String websiteId)
+ {
+ this.websiteId = websiteId;
+ }
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MaintenanceForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MaintenanceForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MaintenanceForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MaintenanceForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,28 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * @struts.form name="maintenanceForm"
+ * @author Dave M Johnson
+ */
+public class MaintenanceForm extends ActionForm
+{
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MemberPermissionsForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MemberPermissionsForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MemberPermissionsForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/MemberPermissionsForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,37 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * @struts.form name="memberPermissionsForm"
+ * @author Dave M Johnson
+ */
+public class MemberPermissionsForm extends ActionForm
+{
+ private String websiteId;
+ public String getWebsiteId()
+ {
+ return websiteId;
+ }
+ public void setWebsiteId(String websiteId)
+ {
+ this.websiteId = websiteId;
+ }
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/RollerConfigFormEx.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/RollerConfigFormEx.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/RollerConfigFormEx.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/RollerConfigFormEx.java Mon May 1 15:23:02 2006
@@ -0,0 +1,89 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.presentation.website.formbeans;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.struts.action.ActionMapping;
+import org.apache.roller.RollerException;
+import org.apache.roller.pojos.RollerConfigData;
+import org.apache.roller.presentation.forms.RollerConfigForm;
+
+/**
+ * These properties are not persistent and are only needed for the UI.
+ *
+ * @struts.form name="rollerConfigFormEx"
+ * @author Lance Lavandowska
+ */
+public class RollerConfigFormEx extends RollerConfigForm
+{
+ public RollerConfigFormEx()
+ {
+ }
+
+ public RollerConfigFormEx( RollerConfigData config, java.util.Locale locale ) throws RollerException
+ {
+ super(config, locale);
+ }
+
+ /**
+ * Override for non-primitive values
+ */
+ public void copyFrom(org.apache.roller.pojos.RollerConfigData dataHolder, java.util.Locale locale) throws RollerException
+ {
+ super.copyFrom(dataHolder, locale);
+ fixNulls();
+ this.uploadMaxFileMB = dataHolder.getUploadMaxFileMB();
+ this.uploadMaxDirMB = dataHolder.getUploadMaxDirMB();
+ }
+
+ /**
+ * Override for non-primitive values
+ */
+ public void copyTo(org.apache.roller.pojos.RollerConfigData dataHolder, java.util.Locale locale) throws RollerException
+ {
+ fixNulls();
+ super.copyTo(dataHolder, locale);
+ dataHolder.setUploadMaxFileMB(this.uploadMaxFileMB);
+ dataHolder.setUploadMaxDirMB(this.uploadMaxDirMB);
+ }
+
+ /**
+ * Method allows Struts to handle empty checkboxes for booleans
+ */
+ public void reset(ActionMapping mapping, HttpServletRequest request)
+ {
+ setAbsoluteURL( null );
+ fixNulls();
+ }
+
+ private void fixNulls()
+ {
+ if (getRssUseCache() == null) setRssUseCache( Boolean.FALSE );
+ if (getNewUserAllowed() == null) setNewUserAllowed( Boolean.FALSE );
+ if (getEnableAggregator() == null) setEnableAggregator( Boolean.FALSE );
+ if (getUploadEnabled() == null) setUploadEnabled( Boolean.FALSE );
+ if (getMemDebug() == null) setMemDebug( Boolean.FALSE );
+ if (getAutoformatComments() == null) setAutoformatComments( Boolean.FALSE );
+ if (getEscapeCommentHtml() == null) setEscapeCommentHtml( Boolean.FALSE );
+ if (getEmailComments() == null) setEmailComments( Boolean.FALSE );
+ if (getEnableLinkback() == null) setEnableLinkback( Boolean.FALSE );
+ if (getEncryptPasswords() == null) setEncryptPasswords( Boolean.FALSE );
+ }
+}
\ No newline at end of file
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/ThemeEditorForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/ThemeEditorForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/ThemeEditorForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/ThemeEditorForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,70 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+package org.apache.roller.presentation.website.formbeans;
+
+import org.apache.struts.action.ActionForm;
+
+/**
+ * Holds the name of the theme chosen or
+ * the template being edited.
+ *
+ * @struts.form name="themeEditorForm"
+ *
+ * @author llavandowska
+ */
+public class ThemeEditorForm extends ActionForm
+{
+ private String themeName;
+ private String themeTemplate;
+ /**
+ * Returns the themeName.
+ * @return String
+ */
+ public String getThemeName()
+ {
+ return themeName;
+ }
+
+ /**
+ * Returns the themeTemplate.
+ * @return String
+ */
+ public String getThemeTemplate()
+ {
+ return themeTemplate;
+ }
+
+ /**
+ * Sets the themeName.
+ * @param themeName The themeName to set
+ */
+ public void setThemeName(String themeName)
+ {
+ this.themeName = themeName;
+ }
+
+ /**
+ * Sets the themeTemplate.
+ * @param themeTemplate The themeTemplate to set
+ */
+ public void setThemeTemplate(String themeTemplate)
+ {
+ this.themeTemplate = themeTemplate;
+ }
+
+}
Added: incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/UploadFileForm.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/UploadFileForm.java?rev=398712&view=auto
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/UploadFileForm.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/presentation/website/formbeans/UploadFileForm.java Mon May 1 15:23:02 2006
@@ -0,0 +1,104 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. The ASF licenses this file to You
+* under the Apache License, Version 2.0 (the "License"); you may not
+* use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License. For additional information regarding
+* copyright in this work, please see the NOTICE file in the top level
+* directory of this distribution.
+*/
+
+package org.apache.roller.presentation.website.formbeans;
+
+import java.util.ArrayList;
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts.upload.FormFile;
+
+
+/**
+ * Form holds data for 5 uploaded files and array of file names of files to be deleted.
+ * @struts.form name="uploadFiles"
+ */
+public class UploadFileForm
+ extends org.apache.struts.action.ActionForm {
+
+ // TODO: can file-upload be improved to allow an arbitrary number of files?
+ protected transient FormFile upload0 = null;
+ protected transient FormFile upload1 = null;
+ protected transient FormFile upload2 = null;
+ protected transient FormFile upload3 = null;
+ protected transient FormFile upload4 = null;
+ protected transient FormFile upload5 = null;
+ protected transient FormFile upload6 = null;
+ protected transient FormFile upload7 = null;
+ protected transient FormFile upload8 = null;
+ protected transient FormFile upload9 = null;
+
+ protected String[] deleted;
+
+ public UploadFileForm() {
+ super();
+ }
+
+ public FormFile[] getUploadedFiles() {
+ ArrayList formFiles = new ArrayList();
+ if (upload0 != null && !StringUtils.isEmpty(upload0.getFileName()))
+ formFiles.add(upload0);
+ if (upload1 != null && !StringUtils.isEmpty(upload1.getFileName()))
+ formFiles.add(upload1);
+ if (upload2 != null && !StringUtils.isEmpty(upload2.getFileName()))
+ formFiles.add(upload2);
+ if (upload3 != null && !StringUtils.isEmpty(upload3.getFileName()))
+ formFiles.add(upload3);
+ if (upload4 != null && !StringUtils.isEmpty(upload4.getFileName()))
+ formFiles.add(upload4);
+ if (upload5 != null && !StringUtils.isEmpty(upload5.getFileName()))
+ formFiles.add(upload5);
+ if (upload6 != null && !StringUtils.isEmpty(upload6.getFileName()))
+ formFiles.add(upload6);
+ if (upload7 != null && !StringUtils.isEmpty(upload7.getFileName()))
+ formFiles.add(upload7);
+ if (upload8 != null && !StringUtils.isEmpty(upload8.getFileName()))
+ formFiles.add(upload8);
+ if (upload9 != null && !StringUtils.isEmpty(upload9.getFileName()))
+ formFiles.add(upload9);
+ return (FormFile[])formFiles.toArray(new FormFile[formFiles.size()]);
+ }
+
+ public void setUploadedFile0(FormFile file) { upload0 = file; }
+ public void setUploadedFile1(FormFile file) { upload1 = file; }
+ public void setUploadedFile2(FormFile file) { upload2 = file; }
+ public void setUploadedFile3(FormFile file) { upload3 = file; }
+ public void setUploadedFile4(FormFile file) { upload4 = file; }
+ public void setUploadedFile5(FormFile file) { upload5 = file; }
+ public void setUploadedFile6(FormFile file) { upload6 = file; }
+ public void setUploadedFile7(FormFile file) { upload7 = file; }
+ public void setUploadedFile8(FormFile file) { upload8 = file; }
+ public void setUploadedFile9(FormFile file) { upload9 = file; }
+
+ public FormFile getUploadedFile0() { return upload0; }
+ public FormFile getUploadedFile1() { return upload1; }
+ public FormFile getUploadedFile2() { return upload2; }
+ public FormFile getUploadedFile3() { return upload3; }
+ public FormFile getUploadedFile4() { return upload4; }
+ public FormFile getUploadedFile5() { return upload5; }
+ public FormFile getUploadedFile6() { return upload6; }
+ public FormFile getUploadedFile7() { return upload7; }
+ public FormFile getUploadedFile8() { return upload8; }
+ public FormFile getUploadedFile9() { return upload9; }
+
+ public void setDeleteFiles(String[] fileNames) {
+ deleted = fileNames;
+ }
+
+ public String[] getDeleteFiles() { return deleted; }
+}
+