1 25 26 package com.j2biz.blogunity.web.actions.my; 27 28 import java.io.File ; 29 import java.io.FileFilter ; 30 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 34 import org.apache.commons.lang.StringUtils; 35 36 import com.j2biz.blogunity.BlogunityManager; 37 import com.j2biz.blogunity.dao.BlogDAO; 38 import com.j2biz.blogunity.exception.BlogunityException; 39 import com.j2biz.blogunity.i18n.I18N; 40 import com.j2biz.blogunity.i18n.I18NStatusFactory; 41 import com.j2biz.blogunity.pojo.Blog; 42 import com.j2biz.blogunity.util.BlogUtils; 43 import com.j2biz.blogunity.web.ActionResultFactory; 44 import com.j2biz.blogunity.web.IActionResult; 45 46 53 public class EditBlogThemeFormAction extends MyAbstractAction { 54 55 private static final IActionResult THEME_FORM_FORWARD = ActionResultFactory 56 .buildForward("/jsp/my/editBlogThemeForm.jsp"); 57 58 64 public IActionResult execute(HttpServletRequest request, HttpServletResponse response) 65 throws BlogunityException { 66 67 String blogId = request.getParameter("id"); 68 69 if (StringUtils.isEmpty(blogId)) 70 throw new BlogunityException(I18NStatusFactory.create(I18N.ERRORS.ID_NOT_SETTED, 71 "Blog")); 72 73 if (!(BlogunityManager.getSystemConfiguration().isThemeEditingAllowed() || user 74 .isAdministrator())) { throw new BlogunityException(I18NStatusFactory 75 .create(I18N.ERRORS.THEME_EDITING_NOT_ALLOWED)); } 76 77 BlogDAO dao = new BlogDAO(); 78 Blog blog = dao.getBlogByID(new Long (blogId)); 79 80 if (user.getId().longValue() != blog.getFounder().getId().longValue() 82 && !user.isAdministrator()) { throw new BlogunityException(I18NStatusFactory 83 .create(I18N.ERRORS.USER_NOT_AUTHORIZED_FOR_EXECUTION)); } 84 85 File blogsDir = BlogunityManager.getSystemConfiguration().getBlogsDirectory(); 86 File blogThemeDir = new File (blogsDir, blog.getUrlName() + "/theme"); 87 88 if (!blogThemeDir.exists() || !blogThemeDir.isDirectory() || !blogThemeDir.canRead() 89 || !blogThemeDir.canWrite()) { throw new BlogunityException(I18NStatusFactory 90 .create(I18N.ERRORS.THEME_READ_ERROR, blog.getUrlName())); } 91 92 File [] themeFiles = blogThemeDir.listFiles(new FileFilter () { 93 public boolean accept(File f) { 94 String name = f.getName(); 96 if (f.isFile() 97 && (name.endsWith(".vm") || name.endsWith(".css") || name.endsWith(".jpg") 98 || name.endsWith(".jpeg") || name.endsWith(".gif") || name 99 .endsWith(".png"))) return true; 100 return false; 101 102 } 103 }); 104 105 File [] themeDirs = BlogUtils.getInstance().getThemeDirectories(); 106 107 request.setAttribute("blog", blog); 108 request.setAttribute("themeFiles", themeFiles); 109 request.setAttribute("themeDirs", themeDirs); 110 111 navigationStack.push(ActionResultFactory.buildRedirect(I18N.MESSAGES.NAVI_EDIT_BLOG_THEME, 112 currentActionPath)); 113 114 return THEME_FORM_FORWARD; 115 } 116 117 } | Popular Tags |