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