1 41 package com.mvnforum.admin; 42 43 import java.sql.Timestamp ; 44 import java.util.Collection ; 45 import java.util.Locale ; 46 47 import com.mvnforum.MVNForumResourceBundle; 48 import com.mvnforum.MyUtil; 49 import com.mvnforum.auth.*; 50 import com.mvnforum.db.CategoryBean; 51 import com.mvnforum.db.CategoryCache; 52 import com.mvnforum.db.DAOFactory; 53 import net.myvietnam.mvncore.exception.*; 54 import net.myvietnam.mvncore.filter.DisableHtmlTagFilter; 55 import net.myvietnam.mvncore.util.*; 56 import net.myvietnam.mvncore.web.GenericRequest; 57 import net.myvietnam.mvncore.web.GenericResponse; 58 59 public class CategoryWebHandler { 60 61 private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance(); 62 63 public CategoryWebHandler() { 64 } 65 66 69 public void processAdd(GenericRequest request, GenericResponse response) 70 throws BadInputException, CreateException, DatabaseException, DuplicateKeyException, 71 ForeignKeyNotFoundException, AuthenticationException, AssertionException { 72 73 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 74 MVNForumPermission permission = onlineUser.getPermission(); 75 permission.ensureCanAddCategory(); 76 77 MyUtil.saveVNTyperMode(request, response); 78 79 Timestamp now = DateUtil.getCurrentGMTTimestamp(); 80 81 int parentCategoryID = 0; 82 String categoryName = GenericParamUtil.getParameterSafe(request, "CategoryName", true); 83 categoryName = DisableHtmlTagFilter.filter(categoryName); 84 String categoryDesc = GenericParamUtil.getParameterSafe(request, "CategoryDesc", false); 85 categoryDesc = DisableHtmlTagFilter.filter(categoryDesc); 86 int categoryOption = 0; int categoryStatus = 0; 89 DAOFactory.getCategoryDAO().create(parentCategoryID, categoryName, categoryDesc, 90 now, now, 0, 91 categoryOption, categoryStatus); 92 93 CategoryCache.getInstance().clear(); 95 96 request.setAttribute("CategoryName", categoryName); 97 } 98 99 public void prepareDelete(GenericRequest request) 100 throws ObjectNotFoundException, BadInputException, DatabaseException, AuthenticationException, AssertionException { 101 102 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 103 MVNForumPermission permission = onlineUser.getPermission(); 104 permission.ensureCanDeleteCategory(); 105 106 int categoryID = GenericParamUtil.getParameterInt(request, "category"); 108 109 Locale locale = I18nUtil.getLocaleInRequest(request); 110 111 Collection forumsInCategory = DAOFactory.getForumDAO().getForums_inCategory(categoryID); 112 if (forumsInCategory.isEmpty() == false) { 113 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_delete_not_empty_category"); 114 throw new BadInputException(localizedMessage); 115 } 117 118 CategoryBean categoryBean = DAOFactory.getCategoryDAO().getCategory(categoryID); 119 120 request.setAttribute("CategoryBean", categoryBean); 121 } 122 123 public void processDelete(GenericRequest request) 124 throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException { 125 126 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 127 MVNForumPermission permission = onlineUser.getPermission(); 128 129 permission.ensureIsAuthenticated(); 131 132 permission.ensureCanDeleteCategory(); 133 134 Locale locale = I18nUtil.getLocaleInRequest(request); 135 136 int categoryID = GenericParamUtil.getParameterInt(request, "category"); 138 139 Collection forumsInCategory = DAOFactory.getForumDAO().getForums_inCategory(categoryID); 140 if (forumsInCategory.isEmpty() == false) { 141 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_delete_not_empty_category"); 142 throw new BadInputException(localizedMessage); 143 } 145 146 MyUtil.ensureCorrectCurrentPassword(request); 148 149 155 DAOFactory.getWatchDAO().delete_inCategory(categoryID); 156 157 DAOFactory.getCategoryDAO().delete(categoryID); 158 159 CategoryCache.getInstance().clear(); 161 } 162 163 166 public void prepareEdit(GenericRequest request) 167 throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException { 168 169 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 170 MVNForumPermission permission = onlineUser.getPermission(); 171 permission.ensureCanEditCategory(); 172 173 int categoryID = GenericParamUtil.getParameterInt(request, "category"); 175 176 CategoryBean categoryBean = DAOFactory.getCategoryDAO().getCategory(categoryID); 177 178 request.setAttribute("CategoryBean", categoryBean); 179 } 180 181 184 public void processUpdate(GenericRequest request, GenericResponse response) 185 throws BadInputException, DatabaseException, DuplicateKeyException, 186 ObjectNotFoundException, AuthenticationException, AssertionException { 187 188 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 189 MVNForumPermission permission = onlineUser.getPermission(); 190 permission.ensureCanEditCategory(); 191 192 MyUtil.saveVNTyperMode(request, response); 193 194 Timestamp now = DateUtil.getCurrentGMTTimestamp(); 195 196 int categoryID = GenericParamUtil.getParameterInt(request, "CategoryID"); 198 199 String categoryName = GenericParamUtil.getParameterSafe(request, "CategoryName", true); 201 categoryName = DisableHtmlTagFilter.filter(categoryName); 202 String categoryDesc = GenericParamUtil.getParameterSafe(request, "CategoryDesc", false); 203 categoryDesc = DisableHtmlTagFilter.filter(categoryDesc); 204 int categoryOrder = GenericParamUtil.getParameterUnsignedInt(request, "CategoryOrder"); 205 int categoryOption = 0; int categoryStatus = 0; 208 DAOFactory.getCategoryDAO().update(categoryID, categoryName, categoryDesc, now, 210 categoryOrder, categoryOption, categoryStatus); 211 212 CategoryCache.getInstance().clear(); 214 } 215 216 219 public void processUpdateCategoryOrder(GenericRequest request) 220 throws BadInputException, DatabaseException, 221 ObjectNotFoundException, AuthenticationException, AssertionException { 222 223 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 224 MVNForumPermission permission = onlineUser.getPermission(); 225 permission.ensureCanEditCategory(); 226 227 Locale locale = I18nUtil.getLocaleInRequest(request); 228 229 Timestamp now = DateUtil.getCurrentGMTTimestamp(); 230 231 int categoryID = GenericParamUtil.getParameterInt(request, "category"); 233 234 String action = GenericParamUtil.getParameterSafe(request, "action", true); 235 if (action.equals("up")) { 236 DAOFactory.getCategoryDAO().decreaseCategoryOrder(categoryID, now); 237 } else if (action.equals("down")) { 238 DAOFactory.getCategoryDAO().increaseCategoryOrder(categoryID, now); 239 } else { 240 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_update_category.unknown_action", new Object [] {action}); 241 throw new BadInputException(localizedMessage); 242 } 244 245 CategoryCache.getInstance().clear(); 247 } 248 } 249
| Popular Tags
|