📄 memberwebhandler.java
字号:
StringBuffer bufferPicFile = new StringBuffer(256);
bufferPicFile.append(context.getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
bufferPicFile.append(File.separatorChar).append(memberName).append(".jpg");
String picFile = bufferPicFile.toString();
log.debug("Delete avatar = " + picFile);
File file = new File(picFile);
file.delete();// we dont need to check the returned value
//@todo delete table Post/Thread/Attachment if we support delete posted user
DAOFactory.getWatchDAO().delete_inMember(memberID);
DAOFactory.getMemberForumDAO().delete_inMember(memberID);
DAOFactory.getMemberGroupDAO().delete_inMember(memberID);
DAOFactory.getMemberPermissionDAO().delete_inMember(memberID);
DAOFactory.getFavoriteThreadDAO().delete_inMember(memberID);
//Delete message, attachmessage, folder, message statistics stuff
PrivateMessageUtil.deleteMessageFoldersInDatabase(memberID);
DAOFactory.getMessageStatisticsDAO().delete_inMember(memberID);
if (deleteSentMessages) {
DAOFactory.getMessageDAO().deleteSenderMessages(memberID);
}
//Delete company stuff
if (MVNForumConfig.getEnableCompany()) {
DAOFactory.getMemberCompanyDAO().delete_inMember(memberID);
DAOFactory.getMemberTutorDAO().deleteMembers_inTutor(memberID);
try {
DAOFactory.getMemberTutorDAO().delete(memberID);
} catch (ObjectNotFoundException ex) {
//ignore
}
}
//Delete in primary table
DAOFactory.getMemberDAO().deleteByPrimaryKey(memberID);
MemberIndexer.scheduleDeleteMemberTask(memberID);
*/
}
/**
* This method supports sorting base on many criteria
*/
public void prepareShowUserManagement(GenericRequest request)
throws DatabaseException, AssertionException, BadInputException, AuthenticationException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureCanAdminSystem();
Locale locale = I18nUtil.getLocaleInRequest(request);
// for sort and order stuff
String sort = GenericParamUtil.getParameter(request, "sort");
String order = GenericParamUtil.getParameter(request, "order");
if (sort.length() == 0) sort = "MemberCreationDate";
if (order.length()== 0) order = "DESC";
// we continue
int postsPerPage = onlineUser.getPostsPerPage();
int offset = 0;
try {
offset = GenericParamUtil.getParameterInt(request, "offset");
} catch (BadInputException e) {
// do nothing
}
int totalMembers = DAOFactory.getMemberDAO().getNumberOfMembers();
if (offset > totalMembers) {
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.offset_greater_than_total_rows");
throw new BadInputException(localizedMessage);
//throw new BadInputException("The offset is not allowed to be greater than total rows.");
}
Collection memberBeans = DAOFactory.getMemberDAO().getMembers_withSortSupport_limit(offset, postsPerPage, sort, order);
int enabledMembers = DAOFactory.getMemberDAO().getNumberOfMembers_inMemberStatus(MemberBean.MEMBER_STATUS_ENABLE);
int disabledMembers = DAOFactory.getMemberDAO().getNumberOfMembers_inMemberStatus(MemberBean.MEMBER_STATUS_DISABLE);
int activatedMembers = DAOFactory.getMemberDAO().getNumberOfMembers_inActivationStatus(true);
int nonactivatedMembers = DAOFactory.getMemberDAO().getNumberOfMembers_inActivationStatus(false);
if ((disabledMembers + enabledMembers) != totalMembers) {
// please do not localize this
throw new AssertionException("Assertion: (disabledMembers + enabledMembers) == totalMembers");
}
if ((activatedMembers + nonactivatedMembers) != totalMembers) {
// please do not localize this
throw new AssertionException("Assertion: (activatedMembers + nonactivatedMembers) == totalMembers");
}
request.setAttribute("MemberBeans", memberBeans);
request.setAttribute("TotalMembers", new Integer(totalMembers));
request.setAttribute("EnabledMembers", new Integer(enabledMembers));
request.setAttribute("DisabledMembers", new Integer(disabledMembers));
request.setAttribute("ActivatedMembers", new Integer(activatedMembers));
request.setAttribute("NonActivatedMembers", new Integer(nonactivatedMembers));
request.setAttribute("offset", new Integer(offset));
}
public void prepareListUserExpire(GenericRequest request)
throws DatabaseException, AssertionException, BadInputException, AuthenticationException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureCanAdminSystem();
// for sort and order stuff
String sort = GenericParamUtil.getParameter(request, "sort");
String order = GenericParamUtil.getParameter(request, "order");
if (sort.length() == 0) sort = "MemberExpireDate";
if (order.length()== 0) order = "ASC";
// we continue
int postsPerPage = onlineUser.getPostsPerPage();
int offset = 0;
try {
offset = GenericParamUtil.getParameterInt(request, "offset");
} catch (BadInputException e) {
// do nothing
}
Timestamp expiresoonDate = DateUtil.getCurrentGMTTimestampExpiredDay(MVNForumConfig.getUserTutorExpireSoonDate());
int totalExpireMembers = DAOFactory.getMemberDAO().getNumberOfMembers_inExpire(expiresoonDate);
if (offset > totalExpireMembers) {
//@todo : localize me
throw new BadInputException("The offset is not allowed to be greater than total members.");
}
Collection expireMemberBeans = DAOFactory.getMemberDAO().getMembers_inExpire_limit(expiresoonDate, offset, postsPerPage, sort, order);
request.setAttribute("TotalMembers", new Integer(totalExpireMembers));
request.setAttribute("ExpireMemberBeans", expireMemberBeans);
request.setAttribute("offset", new Integer(offset));
}
public void updateMemberExpireProcess(GenericRequest request)
throws DatabaseException, BadInputException, ObjectNotFoundException,
AssertionException, AuthenticationException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureCanAdminSystem();
//int expiredDays = MVNForumConfig.getExpireDateTutor();
String renew = GenericParamUtil.getParameter(request, "renew");
String disable = GenericParamUtil.getParameter(request, "disable");
String enable = GenericParamUtil.getParameter(request, "enable");
int expiredDays = GenericParamUtil.getParameterUnsignedInt(request, "addtime");
String[] checkList = request.getParameterValues("selectedmember");
if (checkList == null) return;
if (renew.equals("Renew")) {
//renew creation date and expire date
long offsetDate = expiredDays * DateUtil.DAY;
Timestamp now = DateUtil.getCurrentGMTTimestamp();
for (int i = 0; (checkList != null) && (i < checkList.length); i++) {
int memberID = Integer.parseInt(checkList[i]);
log.debug("Renew expiration date for MemberID = " + memberID);
try {
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID);
Timestamp expireDate = memberBean.getMemberExpireDate();
if (expireDate == null) {
expireDate = now;
}
Timestamp memberExpireDate = new Timestamp(expireDate.getTime() + offsetDate);
DAOFactory.getMemberDAO().updateMember_expireDate(memberID, memberExpireDate);
} catch (ObjectNotFoundException e) {
Locale locale = I18nUtil.getLocaleInRequest(request);
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object[] {new Integer(memberID)});
throw new ObjectNotFoundException(localizedMessage);
}
}
} else if (disable.equals("Disable")) {
for (int i = 0; (checkList != null) && (i < checkList.length); i++) {
int memberID = Integer.parseInt(checkList[i]);
log.debug("Disable member with MemberID = " + memberID);
try {
DAOFactory.getMemberDAO().updateStatus(memberID, MemberBean.MEMBER_STATUS_DISABLE);
} catch (ObjectNotFoundException e) {
Locale locale = I18nUtil.getLocaleInRequest(request);
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object[] {new Integer(memberID)});
throw new ObjectNotFoundException(localizedMessage);
}
}
} else if (enable.equals("Enable")) {
for (int i = 0; (checkList != null) && (i < checkList.length); i++) {
int memberID = Integer.parseInt(checkList[i]);
log.debug("Enable member with MemberID = " + memberID);
try {
DAOFactory.getMemberDAO().updateStatus(memberID, MemberBean.MEMBER_STATUS_ENABLE);
} catch (ObjectNotFoundException e) {
Locale locale = I18nUtil.getLocaleInRequest(request);
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object[] {new Integer(memberID)});
throw new ObjectNotFoundException(localizedMessage);
}
}
}
}
public void processSearch(GenericRequest request)
throws BadInputException, IOException, DatabaseException, ObjectNotFoundException,
AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureCanAdminSystem();
String memberNameKey = GenericParamUtil.getParameter(request, "membername", false);
String memberEmailKey = GenericParamUtil.getParameter(request, "email", false);
String memberLastNameKey = GenericParamUtil.getParameter(request, "lastname", false);
String memberFirstNameKey = GenericParamUtil.getParameter(request, "firstname", false);
String memberCountryKey = GenericParamUtil.getParameter(request, "country", false);
Locale locale = I18nUtil.getLocaleInRequest(request);
int defaultRows = onlineUser.getPostsPerPage();
int offset = GenericParamUtil.getParameterUnsignedInt(request, "offset", 0);
int rows = GenericParamUtil.getParameterUnsignedInt(request, "rows", defaultRows);
if (rows == 0) {
rows = defaultRows;// fix NullPointerException when rows = 0
}
// offset should be even when divide with rowsToReturn
offset = (offset / rows) * rows;
MemberSearchQuery query = new MemberSearchQuery();
boolean isNullKey = true;
if (memberNameKey.length() > 0) {
query.setMemberNameKey(memberNameKey);
isNullKey = false;
}
if (memberEmailKey.length() > 0) {
query.setMemberEmailKey(memberEmailKey);
isNullKey = false;
}
if (memberLastNameKey.length() > 0) {
query.setMemberLastNameKey(memberLastNameKey);
isNullKey = false;
}
if (memberFirstNameKey.length() > 0){
query.setMemberFirstNameKey(memberFirstNameKey);
isNullKey = false;
}
if (memberCountryKey.length() > 0) {
query.setCountry(memberCountryKey);
isNullKey = false;
}
if (isNullKey) {
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_search.key_is_null");
throw new BadInputException(localizedMessage);
}
int searchDate = GenericParamUtil.getParameterUnsignedInt(request, "date", MemberSearchQuery.SEARCH_ANY_DATE);
int searchBeforeAfter = GenericParamUtil.getParameterInt(request, "beforeafter", MemberSearchQuery.SEARCH_NEWER);
if ((searchDate != MemberSearchQuery.SEARCH_ANY_DATE) && (searchDate < 365 * 10)) { // 10 years
long deltaTime = DateUtil.DAY * searchDate;
Timestamp now = DateUtil.getCurrentGMTTimestamp();
Timestamp from = null;
Timestamp to = null;
long currentTime = now.getTime();
if (searchBeforeAfter == MemberSearchQuery.SEARCH_NEWER) {
from = new Timestamp(currentTime - deltaTime);
} else {// older
to = new Timestamp(currentTime - deltaTime);
}
query.setFromDate(from);
query.setToDate(to);
}
query.searchDocuments(offset, rows);
int hitCount = query.getHitCount();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -