📄 memberwebhandler.java
字号:
throw new AssertionException("Cannot process uploaded avatar with a form field.");
}
/*
if (myFile.isMissing()) {
throw new BadInputException("No file has been selected for upload. Please try again.");
}*/
// now everything all right, go ahead and create thumbnail
java.io.InputStream inputStream = myFile.getInputStream();
StringBuffer bufferPicFile = new StringBuffer(128);
bufferPicFile.append(config.getServletContext().getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
bufferPicFile.append(java.io.File.separatorChar).append(memberName).append(".jpg");
String thumbnailFile = bufferPicFile.toString();
System.out.println("uploaded file = " + thumbnailFile);
//System.out.println("String length = " + thumbnailFile.length());
ImageUtil.createThumbnail(inputStream, thumbnailFile, 150/*maxWidth*/, 150/*maxHeight*/);
// now the image has been save, go ahead and update database
StringBuffer bufferVirtualFile = new StringBuffer(128);
bufferVirtualFile.append(request.getContextPath());
bufferVirtualFile.append(MVNForumGlobal.UPLOADED_AVATAR_DIR);
bufferVirtualFile.append("/").append(memberName).append(".jpg");
String virtualFile = bufferVirtualFile.toString();
try {
MemberWebHelper.updateMemberAvatar(memberID, virtualFile);
} catch (DatabaseException ex) {// we dont need to catch BadInputException since the memberID is already exits
System.out.println("Assertion in MemberWebHandler.uploadPicture");// we dont want it to be here
// nead delete the file if the above database task fail
FileUtil.deleteFile(thumbnailFile);
throw ex;
}
}
public void forgotPassword(HttpServletRequest request)
throws BadInputException, DatabaseException, javax.mail.MessagingException, AssertionException {
int memberID = 0;
String memberName = ParamUtil.getParameter(request, "MemberName");
String memberEmail = ParamUtil.getParameter(request, "MemberEmail");
if (memberEmail.length() > 0) {
memberEmail = ParamUtil.getParameterEmail(request, "MemberEmail");
}
if (memberName.length() > 0) {// user enter his MemberName
// we find the email of this memberID, not the provided email
memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);
MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);
memberEmail = bean.getMemberEmail();
} else if (memberEmail.length() > 0) {// user enter his email
// we find the MemberID of this mail, now we sure that user didnt enter his MemberID
memberID = MemberWebHelper.getMemberIDFromMemberEmail(memberEmail);
} else {// user didnt enter any thing
throw new BadInputException("You must enter at least your MemberName or email");
}
// now we have the correct pair of MemberID and MemberEmail
// Check the assumption above
MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);
if (!memberEmail.equals(bean.getMemberEmail())) {
throw new AssertionException("Assertion when process forgot password. This is a serious bug. Please contact the Web site administrator to report the bug.");
}
// end check
//generate a temp password
String tempPassword = Encoder.getMD5_Base64(String.valueOf(System.currentTimeMillis()));
String urlEncodedTempPassword = java.net.URLEncoder.encode(tempPassword);
MemberWebHelper.updateMemberTempPassword(memberID, tempPassword);
// we have pass the assertion check, go ahead
String serverName = ParamUtil.getServer2(request);
StringBuffer passwordResetUrl = new StringBuffer(256);
passwordResetUrl.append(serverName);
passwordResetUrl.append(ParamUtil.getContextPath());
passwordResetUrl.append(UserModuleConfig.getUrlPattern());
passwordResetUrl.append("/resetpassword?temppassword=");
passwordResetUrl.append(urlEncodedTempPassword);
passwordResetUrl.append("&member=");
passwordResetUrl.append(memberName);
/** @todo use StringBuffer */
String subject= "Your MEMBER password of website " + serverName;
String body = "This email is sent to you because you (or someone) have requested PASSWORD RESET from web site " + serverName + ".\n" +
"If you did not request this password reset feature, just ignore and DELETE this email.\n" +
"If you do want to reset your password, please use this url to reset your password:\n" +
passwordResetUrl.toString() + "\n" +
"Thank you for using " + MVNForumInfo.PRODUCT_DESC + " and we hope that you enjoy our forum.\n" +
serverName + " webmaster\n\n" +
"Your Member Name = " + memberName + "\n" +
"Your temporary password = " + tempPassword + "\n";
System.out.println("subject = " + subject);
System.out.println("body = " + body);
MailUtil.sendMail(MVNForumConfig.getWebMasterEmail()/*use the default MailFrom value*/,
memberEmail/*to*/, ""/*cc*/, ""/*bcc*/, subject, body);
}
void resetPassword(HttpServletRequest request)
throws BadInputException, DatabaseException {
String memberName = ParamUtil.getParameter(request, "member", true);
// IMPORTANT: MUST check that temp password is not empty, because temppassword = empty
// means cannot reset password
String memberTempPassword = ParamUtil.getParameter(request, "temppassword", true);
int memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);
String currentTempPassword = MemberWebHelper.getMemberTempPassword(memberID);
if (memberTempPassword.equals(currentTempPassword) == false) {
throw new BadInputException("Your temporary password is not correct, please try the forgot password feature.");
}
String memberPassword1 = ParamUtil.getParameterPassword(request, "MemberMatkhau", 3, 0);
String memberPassword2 = ParamUtil.getParameterPassword(request, "MemberMatkhauConfirm", 3, 0);
if (!memberPassword1.equals(memberPassword2)) {
throw new BadInputException("Password and confirmed password are not the same, please try again.");
}
String memberPassword = Encoder.getMD5_Base64(memberPassword1);
MemberWebHelper.updateMemberPassword(memberID, memberPassword);
MemberWebHelper.updateMemberTempPassword(memberID, "");// reset the temp password
}
/*************************************************
* For public view
*************************************************/
public static void prepareView_forPublic(HttpServletRequest request)
throws BadInputException, DatabaseException, AssertionException {
String memberName = ParamUtil.getParameter(request, "member", false);
// primary key column(s)
int memberID;
if (memberName.length() == 0) {
memberID = ParamUtil.getParameterInt(request, "memberid");
} else {
/**@todo: improve this for better performance(dont use this method,
* and write 2 new methods)*/
memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);
}
MemberWebHelper.increaseViewCount(memberID);
MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);
request.setAttribute("MemberBean", bean);
}
/**
* This method supports sorting base on many criteria
*/
public void prepareListMembers_forPublic(HttpServletRequest request)
throws DatabaseException, AssertionException, BadInputException {
// for sort and order stuff
String sort = net.myvietnam.mvncore.util.ParamUtil.getParameter(request, "sort");
String order = net.myvietnam.mvncore.util.ParamUtil.getParameter(request, "order");
if (sort.length() == 0) sort = "MemberCreationDate";
if (order.length()== 0) order = "DESC";
// we continue
int offset = 0;
try {
offset = ParamUtil.getParameterInt(request, "offset");
} catch (BadInputException e) {
// do nothing
}
int totalMembers = MemberWebHelper.getNumberOfMembers();
if (offset > totalMembers) {
throw new BadInputException("The offset is not allowed to be greater than total members.");
}
Collection memberRows = MemberWebHelper.getMembers_withSortSupport_limit(offset, MVNForumConfig.ROWS_IN_MEMBERS, sort, order);
MyUtil.prepareNavigate(request, offset, memberRows.size(), totalMembers, MVNForumConfig.ROWS_IN_MEMBERS);
request.setAttribute("MemberBeans", memberRows);
request.setAttribute("TotalMembers", new Integer(totalMembers));
request.setAttribute("offset", new Integer(offset));
}
/****************************************************************************
* Login/Logout stuffs
****************************************************************************/
/*
public void processLogin(HttpServletRequest request)
throws AuthenticationException, AssertionException, DatabaseException, BadInputException {
String memberName = ParamUtil.getParameter(request, "MemberName", true);
String memberPassword = ParamUtil.getParameter(request, "MemberMatkhau", true);
String encodedPassword = Encoder.getMD5_Base64(memberPassword);
try {
userManager.login(request, memberName, encodedPassword);
} catch (AuthenticationException ex) {
if (ex.getReason() == NotLoginException.WRONG_PASSWORD) {
request.setAttribute("MemberName", memberName);// so user dont have to retype USER NAME
}
throw ex;
}
}
public void processLogout(HttpServletRequest request)
throws DatabaseException, AssertionException {
userManager.logout(request);
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -