1 41 package com.mvnforum.admin; 42 43 import java.io.*; 44 import java.sql.Timestamp ; 45 import java.util.Collection ; 46 import java.util.Locale ; 47 48 import com.mvnforum.*; 49 import com.mvnforum.auth.*; 50 import com.mvnforum.db.DAOFactory; 51 import com.mvnforum.db.GroupsBean; 52 import net.myvietnam.mvncore.exception.*; 53 import net.myvietnam.mvncore.util.*; 54 import net.myvietnam.mvncore.web.GenericRequest; 55 import org.apache.commons.logging.Log; 56 import org.apache.commons.logging.LogFactory; 57 58 public class MemberGroupWebHandler { 59 60 private static Log log = LogFactory.getLog(MemberGroupWebHandler.class); 61 62 private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance(); 63 64 public MemberGroupWebHandler() { 65 } 66 67 public void processAdd(GenericRequest request) 68 throws IOException, BadInputException, CreateException, DatabaseException, 69 ObjectNotFoundException, AuthenticationException, AssertionException { 70 71 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 72 MVNForumPermission permission = onlineUser.getPermission(); 73 permission.ensureCanAdminSystem(); 74 75 Locale locale = I18nUtil.getLocaleInRequest(request); 76 77 Timestamp now = DateUtil.getCurrentGMTTimestamp(); 78 Timestamp expireDate = new Timestamp (now.getTime() + DateUtil.DAY * 90); 80 int groupID = GenericParamUtil.getParameterInt(request, "group"); 81 82 if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) { 84 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_add_member_to_virtual_group_registered_members"); 86 throw new AssertionException(localizedMessage); 87 } else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) { 89 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_add_member_to_virtual_reserved_group"); 90 throw new AssertionException(localizedMessage); 91 } 93 94 String memberNames = GenericParamUtil.getParameterSafe(request, "MemberNames", true); 95 int privilege = 0; 97 int isActive = 0; 99 int relationType = 0; 100 int relationOption = 0; 101 int relationStatus = 0; 102 int companyID = 0; 103 GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID); 104 String groupName = groupsBean.getGroupName(); 105 if (groupName.toLowerCase().startsWith(MVNForumGlobal.COMPANY_GROUP_FREFIX.toLowerCase())) { 106 try { 107 companyID = DAOFactory.getCompanyDAO().getCompanyIDFromGroupID(groupID); 108 } catch (ObjectNotFoundException e) { 109 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.company_not_exists.with_groupid", new Object [] {new Integer (groupID)}); 110 throw new ObjectNotFoundException(localizedMessage); 111 } 112 } 113 115 StringReader stringReader = new StringReader(memberNames); 117 BufferedReader reader = new BufferedReader(stringReader); 118 119 String memberName = null; 120 while ((memberName = reader.readLine()) != null) { 121 memberName = memberName.trim(); 123 if (memberName.length() > 0) { 124 try { 125 DAOFactory.getMemberGroupDAO().create(groupID, memberName, privilege, 126 now, now); 127 128 if (companyID > 0) { 130 int memberID = DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName); 132 DAOFactory.getMemberCompanyDAO().create(memberID, memberName, companyID, 133 now, expireDate, isActive, 134 relationType, relationOption, relationStatus); 135 } 136 } catch (DuplicateKeyException ex) { 138 } catch (ForeignKeyNotFoundException ex) { 140 } 142 } } } 145 146 149 public void processDelete(GenericRequest request) 150 throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException { 151 152 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 153 MVNForumPermission permission = onlineUser.getPermission(); 154 permission.ensureCanAdminSystem(); 155 156 int groupID = GenericParamUtil.getParameterInt(request, "group"); 158 int memberID= GenericParamUtil.getParameterInt(request, "memberid"); 159 160 int companyID = 0; 162 GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID); 163 String groupName = groupsBean.getGroupName(); 164 if (groupName.toLowerCase().startsWith(MVNForumGlobal.COMPANY_GROUP_FREFIX.toLowerCase())) { 165 try { 166 companyID = DAOFactory.getCompanyDAO().getCompanyIDFromGroupID(groupID); 167 } catch (ObjectNotFoundException e) { 168 Locale locale = I18nUtil.getLocaleInRequest(request); 169 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.company_not_exists.with_groupid", new Object [] {new Integer (groupID)}); 170 throw new ObjectNotFoundException(localizedMessage); 171 } 172 } 173 175 DAOFactory.getMemberGroupDAO().delete(groupID, memberID); 176 177 if (companyID > 0) { 179 DAOFactory.getMemberCompanyDAO().delete(memberID, companyID); 180 } 181 182 if (MVNForumConfig.getEnableCompany()) { 184 DAOFactory.getMemberTutorDAO().deleteMembers_inTutor(memberID); 186 } 187 } 188 189 public void prepareList_inGroup_limit(GenericRequest request) 190 throws DatabaseException, BadInputException, ObjectNotFoundException, AuthenticationException, AssertionException { 191 192 OnlineUser onlineUser = onlineUserManager.getOnlineUser(request); 193 MVNForumPermission permission = onlineUser.getPermission(); 194 permission.ensureCanAdminSystem(); 195 196 Locale locale = I18nUtil.getLocaleInRequest(request); 197 198 int groupID = GenericParamUtil.getParameterInt(request, "group"); 199 200 if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) { 202 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_list_member_in_virtual_group_registered_members"); 204 throw new AssertionException(localizedMessage); 205 } else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) { 207 String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_list_member_in_reserved_group"); 208 throw new AssertionException(localizedMessage); 209 } 211 212 GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID); 213 Collection memberGroupBeans = DAOFactory.getMemberGroupDAO().getBeans_inGroup(groupID); 214 215 request.setAttribute("MemberGroupBeans", memberGroupBeans); 216 request.setAttribute("GroupsBean", groupsBean); 217 } 218 } 219 | Popular Tags |