1 25 26 package com.j2biz.blogunity.web.actions.my; 27 28 import java.io.BufferedWriter ; 29 import java.io.File ; 30 import java.io.FileWriter ; 31 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 35 import org.apache.commons.lang.StringUtils; 36 37 import com.j2biz.blogunity.BlogunityManager; 38 import com.j2biz.blogunity.dao.BlogDAO; 39 import com.j2biz.blogunity.exception.BlogunityException; 40 import com.j2biz.blogunity.i18n.I18N; 41 import com.j2biz.blogunity.i18n.I18NStatusFactory; 42 import com.j2biz.blogunity.pojo.Blog; 43 import com.j2biz.blogunity.web.ActionResultFactory; 44 import com.j2biz.blogunity.web.IActionResult; 45 46 53 public class EditThemeFileExecAction extends MyAbstractAction { 54 55 private static final IActionResult THEME_FILE_FORM_FORWARD = ActionResultFactory 56 .buildForward("/jsp/my/editThemeFileForm.jsp"); 57 58 64 public IActionResult execute(HttpServletRequest request, HttpServletResponse response) 65 throws BlogunityException { 66 67 if (!(BlogunityManager.getSystemConfiguration().isThemeEditingAllowed() || user 68 .isAdministrator())) { throw new BlogunityException(I18NStatusFactory 69 .create(I18N.ERRORS.THEME_EDITING_NOT_ALLOWED)); } 70 71 String blogId = request.getParameter("id"); 72 String fileName = request.getParameter("file"); 73 String fileContent = request.getParameter("fileContent"); 74 75 if (StringUtils.isEmpty(blogId)) { throw new BlogunityException(I18NStatusFactory.create( 76 I18N.ERRORS.ID_NOT_SETTED, "Blog")); } 77 78 if (StringUtils.isEmpty(fileName)) { throw new BlogunityException(I18NStatusFactory 79 .create(I18N.ERRORS.THEME_FILE_NOT_SETTED)); } 80 81 Blog blog = (new BlogDAO()).getBlogByID(new Long (blogId)); 82 83 if (user.getId().longValue() != blog.getFounder().getId().longValue() 85 && !user.isAdministrator()) { throw new BlogunityException(I18NStatusFactory 86 .create(I18N.ERRORS.USER_NOT_AUTHORIZED_FOR_EXECUTION)); } 87 88 File blogsDir = BlogunityManager.getSystemConfiguration().getBlogsDirectory(); 89 File themeFile = new File (blogsDir, blog.getUrlName() + "/theme/" + fileName); 90 91 if (!themeFile.exists() || !themeFile.isFile() || !themeFile.canRead() 92 || !themeFile.canWrite()) { 93 94 throw new BlogunityException(I18NStatusFactory.create(I18N.ERRORS.THEME_FILE_READ_ERROR, 95 themeFile.getName())); 96 97 } 98 99 try { 100 String line = null; 101 BufferedWriter writer = new BufferedWriter (new FileWriter (themeFile)); 102 writer.write(fileContent); 103 writer.close(); 104 } catch (Exception e) { 105 106 throw new BlogunityException(I18NStatusFactory.create( 107 I18N.ERRORS.THEME_FILE_WRITE_ERROR, themeFile.getName(), e)); 108 } 109 110 return navigationStack.pop(); 111 } 112 } | Popular Tags |