📄 memberwebhandler.java
字号:
memberGender, memberBirthday, memberAddress,
memberCity, memberState, memberCountry,
memberPhone, memberMobile, memberFax,
memberCareer, memberHomepage, memberYahoo,
memberAol, memberIcq, memberMsn,
memberCoolLink1, memberCoolLink2);
// now, update the new displayed language option
onlineUser.reloadProfile();
}
/*
* @todo: use new method of WebHelper
*/
void prepareEditEmail(HttpServletRequest request)
throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
request.setAttribute("MemberEmail", memberBean.getMemberEmail());
}
void processUpdateEmail(HttpServletRequest request)
throws BadInputException, ObjectNotFoundException, DatabaseException, InterceptorException,
DuplicateKeyException, AuthenticationException, AssertionException, MessagingException,IOException, TemplateException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
// column(s) to update
String memberEmail = ParamUtil.getParameterEmail(request, "MemberEmail");
String memberEmailConfirm = ParamUtil.getParameterEmail(request, "MemberEmailConfirm");
if (memberEmail.length() > MVNForumGlobal.MAX_MEMBER_EMAIL_LENGTH) {
throw new BadInputException("MemberEmail cannot be longer than 60 characters.");
}
InterceptorService.getInstance().validateMail(memberEmail);
// now check the password
MyUtil.ensureCorrectCurrentPassword(request);
if (!memberEmail.equals(memberEmailConfirm)) {
throw new BadInputException("Email and confirmed email are not the same, please try again.");
}
// invalidate the activate status
DAOFactory.getMemberDAO().updateActivateCode(memberID, "");
DAOFactory.getMemberDAO().updateEmail(memberID, memberEmail);
// now reload the permission if this online user change email (not activated now)
onlineUser.reloadPermission();
// now, if require activation, then we will send mail
if (MVNForumConfig.getRequireActivation()) {
String serverName = ParamUtil.getServer2(request);
SendMailUtil.sendActivationCodeEmail(memberID, serverName);
}
}
void processUpdatePassword(HttpServletRequest request)
throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
// NOTE: that we dont use getParameterPassword here since it will not forward-compatible
String memberOldPassword = ParamUtil.getParameter(request, "MemberOldMatkhau", true);
String oldEncodedPassword = Encoder.getMD5_Base64(memberOldPassword);
String currentPassword = DAOFactory.getMemberDAO().getPassword(memberID);
if (!currentPassword.equals(oldEncodedPassword)) {
throw new BadInputException("You have typed the wrong current password, please try again.");
}
// column(s) to update
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);
if (currentPassword.equals(memberPassword)) {
throw new BadInputException("Old password and new password cannot equal, please try again.");
}
DAOFactory.getMemberDAO().updatePassword(memberID, // primary key
memberPassword);
}
void prepareView_forCurrentMember(HttpServletRequest request)
throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
request.setAttribute("MemberBean", memberBean);
}
void prepareEdit_forCurrentMember(HttpServletRequest request)
throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forEditCurrentMember(memberID);
request.setAttribute("MemberBean", memberBean);
}
/*
* @todo: use new method of WebHelper
*/
void prepareEditSignature(HttpServletRequest request)
throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
boolean isPreviewing = ParamUtil.getParameterBoolean(request, "preview");
if (isPreviewing) {
String signature = ParamUtil.getParameter(request, "MemberSignature");
if (signature.length() > 250) {
signature = signature.substring(0, 250);// ensure no more than 250 char (should check in javascript ??)
}
request.setAttribute("MemberSignature", signature);
} else {
int memberID = onlineUser.getMemberID();
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
request.setAttribute("MemberSignature", memberBean.getMemberSignature());
}
}
void processUpdateSignature(HttpServletRequest request)
throws ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
int memberID = onlineUser.getMemberID();
// column(s) to update
String memberSignature = ParamUtil.getParameter(request, "MemberSignature");
memberSignature = DisableHtmlTagFilter.filter(memberSignature);
DAOFactory.getMemberDAO().updateSignature(memberID, // primary key
memberSignature);
}
/*
* @todo: use new method of WebHelper
*/
void prepareEditAvatar(HttpServletRequest request)
throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {
if (MVNForumConfig.getEnableAvatar() == false) {
throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
}
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
permission.ensureCanUseAvatar();
int memberID = onlineUser.getMemberID();
MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
request.setAttribute("MemberBean", memberBean);
}
/**
* Change picture from our predefined picture
* NOTE: this method will delete uploaded image (if any) of the member
*/
void updateMemberAvatar(javax.servlet.ServletContext context, HttpServletRequest request)
throws ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {
if (MVNForumConfig.getEnableAvatar() == false) {
throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
}
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
permission.ensureCanUseAvatar();
int memberID = onlineUser.getMemberID();
String memberName = onlineUser.getMemberName();
// first, we delete uploaded image if there is one
StringBuffer bufferPicFile = new StringBuffer(128);
bufferPicFile.append(context.getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
bufferPicFile.append(File.separatorChar).append(memberName).append(".jpg");
String picFile = bufferPicFile.toString();
log.trace("Delete avatar = " + picFile);
log.trace("String length = " + picFile.length());
File file = new File(picFile);
file.delete();// we dont need to check the returned value
// then we update the database with new one
String memberPicture = ParamUtil.getParameter(request, "MemberAvatar");
DAOFactory.getMemberDAO().updateAvatar(memberID, memberPicture);
}
/**
* upload user own avatar
*/
void uploadAvatar(javax.servlet.ServletConfig config, HttpServletRequest request)
throws BadInputException, AuthenticationException, IOException,
AssertionException, ObjectNotFoundException, DatabaseException {
if (MVNForumConfig.getEnableAvatar() == false) {
throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
}
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
permission.ensureCanUseAvatar();
int memberID = onlineUser.getMemberID();
String memberName = onlineUser.getMemberName();
FileUpload fileUpload = new FileUpload();
fileUpload.setSizeMax(60000);//60K
fileUpload.setSizeThreshold(100000);// max memory used = 100K (more than needed)
List fileItems;
try {
fileItems = fileUpload.parseRequest(request);
} catch (FileUploadException ex) {
log.error("Cannot upload", ex);
throw new IOException("Cannot upload. Detailed reason: " + ex.getMessage());
}
// make sure only one file upload
if (fileItems.size() != 1) {
throw new AssertionException("Assertion: Cannot upload more than 1 file while processing upload avatar for Member.");
}
//get the first and only file
FileItem myFile = (FileItem)fileItems.get(0);
if (myFile.isFormField() == true) {
throw new AssertionException("Cannot process uploaded avatar with a form field.");
}
// now everything all right, go ahead and create thumbnail
InputStream inputStream = myFile.getInputStream();
StringBuffer bufferPicFile = new StringBuffer(128);
bufferPicFile.append(config.getServletContext().getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
bufferPicFile.append(File.separatorChar).append(memberName).append(".jpg");
String thumbnailFile = bufferPicFile.toString();
log.trace("uploaded file = " + thumbnailFile);
//log.trace("String length = " + thumbnailFile.length());
//The below method closes the inputStream after it have done its work.
ImageUtil.createThumbnail(inputStream, thumbnailFile, 150/*maxWidth*/, 150/*maxHeight*/);// can throw BadInputException
// now the image has been save, go ahead and update database
StringBuffer bufferVirtualFile = new StringBuffer(128);
bufferVirtualFile.append(MVNForumGlobal.UPLOADED_AVATAR_DIR);
bufferVirtualFile.append("/").append(memberName).append(".jpg");
String virtualFile = bufferVirtualFile.toString();
try {
DAOFactory.getMemberDAO().updateAvatar(memberID, virtualFile);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -