1 41 42 package com.mvnforum.admin; 43 44 import java.util.*; 45 46 import com.mvnforum.MVNForumResourceBundle; 47 import com.mvnforum.auth.*; 48 import com.mvnforum.db.*; 49 import net.myvietnam.mvncore.exception.*; 50 import net.myvietnam.mvncore.util.*; 51 import net.myvietnam.mvncore.web.GenericRequest; 52 import org.apache.commons.logging.Log; 53 import org.apache.commons.logging.LogFactory; 54 55 public class MemberForumWebHandler 56 { 57 private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance(); 58 59 private static Log log = LogFactory.getLog(MemberForumWebHandler.class); 60 61 public MemberForumWebHandler() { 62 } 63 64 public void prepareAssignForumToMember(GenericRequest request) 65 throws BadInputException, DatabaseException, ObjectNotFoundException, 66 AuthenticationException, AssertionException { 67 68 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 69 MVNForumPermission permission = onlineUser.getPermission(); 70 permission.ensureCanAdminSystem(); 71 72 Locale locale = I18nUtil.getLocaleInRequest(request); 73 int memberID = GenericParamUtil.getParameterInt(request, "memberid"); 74 MemberBean memberBean = null; 75 try { 76 memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID); 77 } catch (ObjectNotFoundException e) { 78 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object [] {new Integer (memberID)}); 79 throw new ObjectNotFoundException(localizedMessage); 80 } 81 82 Collection memberForumBeans = DAOFactory.getMemberForumDAO().getBeans_inMember(memberID); 83 84 request.setAttribute("MemberBean", memberBean); 85 request.setAttribute("MemberForumBeans", memberForumBeans); 86 } 87 88 public void prepareAssignMemberToForum(GenericRequest request) 89 throws BadInputException, DatabaseException, ObjectNotFoundException, 90 AuthenticationException, AssertionException { 91 92 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 93 MVNForumPermission permission = onlineUser.getPermission(); 94 95 int forumID = GenericParamUtil.getParameterInt(request, "forum"); 96 97 permission.ensureCanAssignToForum(forumID); 98 Locale locale = I18nUtil.getLocaleInRequest(request); 99 ForumBean forumBean = null; 100 101 try { 102 forumBean = ForumCache.getInstance().getBean(forumID); 103 } catch (ObjectNotFoundException e) { 104 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.forumid_not_exists", new Object [] {new Integer (forumID)}); 105 throw new ObjectNotFoundException(localizedMessage); 106 } 107 Collection groupsBeans = DAOFactory.getGroupsDAO().getGroups(); 108 Collection groupForumBeans = DAOFactory.getGroupForumDAO().getBeans_inForum(forumID); 109 Collection memberForumBeans = DAOFactory.getMemberForumDAO().getBeans_inForum(forumID); 110 111 for (Iterator iter = groupForumBeans.iterator(); iter.hasNext(); ) { 112 GroupForumBean groupForumBean = (GroupForumBean)iter.next(); 113 groupForumBean.setGroupsBean(GroupsBean.getGroupsBean(groupsBeans, groupForumBean.getGroupID())); 114 } 115 for (Iterator iter = memberForumBeans.iterator(); iter.hasNext(); ) { 116 MemberForumBean memberForumBean = (MemberForumBean)iter.next(); 117 MemberBean memberBean = null; 119 int memberID = memberForumBean.getMemberID(); 120 try { 121 memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID); 122 } catch (ObjectNotFoundException e) { 123 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object [] {new Integer (memberID)}); 124 throw new ObjectNotFoundException(localizedMessage); 125 } 126 memberForumBean.setMemberBean(memberBean); 127 } 128 129 request.setAttribute("ForumBean", forumBean); 130 request.setAttribute("GroupForumBeans", groupForumBeans); 131 request.setAttribute("MemberForumBeans", memberForumBeans); 132 } 133 134 public void processUpdate(GenericRequest request) 135 throws CreateException, ObjectNotFoundException, BadInputException, DatabaseException, 136 DuplicateKeyException, ForeignKeyNotFoundException, AuthenticationException, AssertionException { 137 138 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 139 MVNForumPermission permission = onlineUser.getPermission(); 140 141 Locale locale = I18nUtil.getLocaleInRequest(request); 142 143 String btnAdd = request.getParameter("btnAdd"); 144 String btnRemove = request.getParameter("btnRemove"); 145 boolean addAction = false; 146 if ((btnAdd != null) && btnAdd.equals("Add")) { 147 addAction = true; 148 } else if ((btnRemove != null) && btnRemove.equals("Remove")) { 149 addAction = false; 150 } else { 151 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_process.no_add_or_remove_is_specified"); 152 throw new BadInputException(localizedMessage); 153 } 155 156 int memberID = GenericParamUtil.getParameterInt(request, "memberid"); 157 int forumID = GenericParamUtil.getParameterInt(request, "forum"); 158 159 permission.ensureCanAssignToForum(forumID); 160 161 if (addAction) { 162 log.debug("Add List:" + btnAdd); 163 String [] addList = request.getParameterValues("add"); 164 for (int i = 0; (addList != null) && (i < addList.length); i++) { 165 int perm = Integer.parseInt(addList[i]); 166 log.debug("perm = " + perm); 167 DAOFactory.getMemberForumDAO().create(memberID, forumID, perm); 168 } 169 } else { 170 log.debug("Remove List:" + btnRemove); 171 String [] removeList = request.getParameterValues("remove"); 172 for (int i = 0; (removeList != null) && (i < removeList.length); i++) { 173 int perm = Integer.parseInt(removeList[i]); 174 log.debug("perm = " + removeList[i]); 175 DAOFactory.getMemberForumDAO().delete(memberID, forumID, perm); 176 } 177 } } 179 180 public void prepareList(GenericRequest request) 181 throws DatabaseException, BadInputException, ObjectNotFoundException, 182 AuthenticationException, AssertionException { 183 184 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 185 MVNForumPermission permission = onlineUser.getPermission(); 186 Locale locale = I18nUtil.getLocaleInRequest(request); 187 int memberID = -1; 188 String memberName = GenericParamUtil.getParameterSafe(request, "member", false); 189 if (memberName.length() > 0) { 190 StringUtil.checkGoodName(memberName); try { 192 memberID = DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName); 193 } catch (ObjectNotFoundException e) { 194 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.membername_not_exists", new Object [] {memberName}); 195 throw new ObjectNotFoundException(localizedMessage); 196 } 197 } else { 198 memberID = GenericParamUtil.getParameterInt(request, "memberid"); 199 } 200 int forumID = GenericParamUtil.getParameterInt(request, "forum"); 201 202 permission.ensureCanAssignToForum(forumID); 203 204 MemberBean memberBean = null; 205 try { 206 memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID); 207 } catch (ObjectNotFoundException e) { 208 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object [] {new Integer (memberID)}); 209 throw new ObjectNotFoundException(localizedMessage); 210 } 211 ForumBean forumBean = null; 212 try { 213 forumBean = ForumCache.getInstance().getBean(forumID); 214 } catch (ObjectNotFoundException e) { 215 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.forumid_not_exists", new Object [] {new Integer (forumID)}); 216 throw new ObjectNotFoundException(localizedMessage); 217 } 218 ArrayList memberForumBeans = (ArrayList) DAOFactory.getMemberForumDAO().getBeans_inMemberForum(memberID, forumID); 219 220 int currentSize = memberForumBeans.size(); 221 int[] currentPermissions = new int[currentSize]; 222 for (int i = 0; i < currentSize; i++) { 223 MemberForumBean memberForumBean = (MemberForumBean) memberForumBeans.get(i); 224 currentPermissions[i] = memberForumBean.getPermission(); 225 } 226 227 request.setAttribute("MemberBean", memberBean); 228 request.setAttribute("ForumBean", forumBean); 229 request.setAttribute("CurrentPermissions", currentPermissions); 230 } 231 } 232 | Popular Tags |