📄 memberwebhandler.java
字号:
String memberCoolLink2 = GenericParamUtil.getParameterUrl(request, "MemberCoolLink2");*/
// 确认较验码
//if (MVNForumConfig.getEnableCaptcha()) {
// String captchaResponse = GenericParamUtil.getParameterSafe(request, "CaptchaResponse", false);
// onlineUser.ensureCorrectCaptchaResponse(captchaResponse);
//}
Timestamp memberExpireDate = memberCreationDate;// equal Creation Date mean no expiration
if (MVNForumConfig.getEnableCompany()) {
memberExpireDate = DateUtil.getCurrentGMTTimestampExpiredDay(MVNForumConfig.getExpireDateTutor());
}
DAOFactory.getMemberDAO().create(memberName, memberPassword, memberFirstEmail,
memberEmail, memberEmailVisible, memberNameVisible,
memberFirstIP, memberLastIP, 0/*memberViewCount*/,
0/*memberPostCount*/, memberCreationDate, memberModifiedDate, memberExpireDate,
memberLastLogon, memberOption, memberStatus,
memberActivateCode, ""/*memberTempPassword*/, 0/*memberMessageCount*/,
memberMessageOption, memberPostsPerPage, 0/*memberWarnCount*/,
0/*memberVoteCount*/, 0/*memberVoteTotalStars*/, 0/*memberRewardPoints*/,
memberTitle, memberTimeZone, ""/*memberSignature*/,
""/*memberAvatar*/, memberSkin, memberLanguage,
memberFirstname, memberLastname, memberGender,
memberBirthday, memberAddress, memberCity,
memberState, memberCountry, memberPhone,
memberMobile, memberFax, memberCareer,
memberHomepage, memberYahoo, memberAol,
memberIcq, memberMsn, memberCoolLink1,
memberCoolLink2);
// Now, create 4 default folders for each member
int memberID = 0;
try {
memberID = DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
} catch (ObjectNotFoundException e) {
System.out.println(e);
//String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.membername_not_exists", new Object[] {memberName});
//throw new ObjectNotFoundException(localizedMessage);
}
int folderStatus = 0;
int folderOption = 0;
int folderType = 0;
DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_INBOX, memberID, 0/*order*/, folderStatus, folderOption, folderType, now, now);
DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_DRAFT, memberID, 1/*order*/, folderStatus, folderOption, folderType, now, now);
DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_SENT, memberID, 2/*order*/, folderStatus, folderOption, folderType, now, now);
DAOFactory.getMessageFolderDAO().create(MVNForumConstant.MESSAGE_FOLDER_TRASH, memberID, 3/*order*/, folderStatus, folderOption, folderType, now, now);
FloodControl.increaseCount(MVNForumGlobal.FLOOD_ID_NEW_MEMBER, currentIP);
if (MVNForumConfig.getEnableCaptcha()) {
onlineUser.destroyCurrentCaptcha();
}
// Add member to the lucene index
MemberBean memberBean = null;
try {
memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID);
} catch(ObjectNotFoundException ex) {
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object[] {new Integer(memberID)});
throw new ObjectNotFoundException(localizedMessage);
}
MemberIndexer.scheduleAddMemberTask(memberBean);
request.setAttribute("MemberBean", memberBean);
// now, if require activation, then we will send mail
if (MVNForumConfig.getRequireActivation()) {
String serverName = ParamUtil.getServerPath();//ParamUtil.getServer2(request);
try {
SendMailUtil.sendActivationCodeEmail(memberID, serverName);
} catch (Exception ex) {
log.error("Cannot send mail after registration!", ex);
request.setAttribute("mvnforum.mail.failed", "Cannot send activation email after registration!");
//@todo: save the error message to displayed later
}
}
// Begin for Company
String companySpaceName = GenericParamUtil.getParameterSafe(request, "CompanySpaceName", false);
if (companySpaceName.length() > 0) {
try {
int companyID = DAOFactory.getCompanyDAO().getCompanyIDFromCompanySpaceName(companySpaceName);
CompanyBean companyBean = DAOFactory.getCompanyDAO().getCompany(companyID);
int privilege = 0;
DAOFactory.getMemberGroupDAO().create(companyBean.getGroupID(), memberName, privilege,
now/*creationDate*/, now/*modifiedDate*/);
int isActive = 0;
int relationType = 0;
int relationOption = 0;
int relationStatus = 0;
Timestamp expireDate = new Timestamp(now.getTime() + DateUtil.DAY * 90);
DAOFactory.getMemberCompanyDAO().create(memberID, memberName, companyID,
now/*creationDate*/, expireDate, isActive,
relationType, relationOption, relationStatus);
} catch (ObjectNotFoundException ex) {
// Cannot find company with the space name, just ignore
}
}
// End for Company
}
public void processUpdate(GenericRequest request, GenericResponse response)
throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
MyUtil.saveVNTyperMode(request, response);
int memberID = onlineUser.getMemberID();
Timestamp now = DateUtil.getCurrentGMTTimestamp();
// column(s) to update
int memberEmailVisible = GenericParamUtil.getParameterBoolean(request, "MemberEmailVisible")? MemberBean.MEMBER_EMAIL_VISIBLE : MemberBean.MEMBER_EMAIL_INVISIBLE;
int memberNameVisible = GenericParamUtil.getParameterBoolean(request, "MemberNameVisible") ? MemberBean.MEMBER_NAME_VISIBLE : MemberBean.MEMBER_NAME_INVISIBLE;
int memberOption = 0;//GenericParamUtil.getParameterInt(request, "MemberOption");
int memberStatus = 0;//@todo review and support it later
int memberMessageOption = 0;//GenericParamUtil.getParameterInt(request, "MemberMessageOption");
int memberPostsPerPage = GenericParamUtil.getParameterInt(request, "MemberPostsPerPage");
if (memberPostsPerPage < 5) {
memberPostsPerPage = 5;
}
double memberTimeZone = GenericParamUtil.getParameterTimeZone(request, "MemberTimeZone");
String memberSkin = GenericParamUtil.getParameterSafe(request, "MemberSkin", false);
String memberLanguage = GenericParamUtil.getParameterSafe(request, "MemberLanguage", false);
String memberFirstname = GenericParamUtil.getParameterSafe(request, "MemberFirstname", true);
String memberLastname = GenericParamUtil.getParameterSafe(request, "MemberLastname", true);
int memberGender = GenericParamUtil.getParameterBoolean(request, "MemberGender")? 1 : 0;
Date memberBirthday = GenericParamUtil.getParameterDate(request, "MemberBirthday");
String memberAddress = GenericParamUtil.getParameterSafe(request, "MemberAddress", false);
String memberCity = GenericParamUtil.getParameterSafe(request, "MemberCity", false);
String memberState = GenericParamUtil.getParameterSafe(request, "MemberState", false);
String memberCountry = GenericParamUtil.getParameterSafe(request, "MemberCountry", false);
String memberPhone = GenericParamUtil.getParameterSafe(request, "MemberPhone", false);
String memberMobile = GenericParamUtil.getParameterSafe(request, "MemberMobile", false);
String memberFax = GenericParamUtil.getParameterSafe(request, "MemberFax", false);
String memberCareer = GenericParamUtil.getParameterSafe(request, "MemberCareer", false);
String memberHomepage = GenericParamUtil.getParameterUrl(request, "MemberHomepage");
String memberYahoo = GenericParamUtil.getParameterSafe(request, "MemberYahoo", false);
String memberAol = GenericParamUtil.getParameterSafe(request, "MemberAol", false);
String memberIcq = GenericParamUtil.getParameterSafe(request, "MemberIcq", false);
String memberMsn = GenericParamUtil.getParameterSafe(request, "MemberMsn", false);
String memberCoolLink1 = GenericParamUtil.getParameterUrl(request, "MemberCoolLink1");
String memberCoolLink2 = GenericParamUtil.getParameterUrl(request, "MemberCoolLink2");
DAOFactory.getMemberDAO().update(memberID, // primary key
memberEmailVisible, memberNameVisible, now/*memberModifiedDate*/,
memberOption, memberStatus, memberMessageOption,
memberPostsPerPage, memberTimeZone, memberSkin,
memberLanguage, memberFirstname, memberLastname,
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();
MemberBean justAddedMemberBean = null;
try {
justAddedMemberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID);
} catch(ObjectNotFoundException ex) {
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);
}
MemberIndexer.scheduleUpdateMemberTask(justAddedMemberBean);
}
/*
* @todo: use new method of WebHelper
*/
public void prepareEditEmail(GenericRequest 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());
}
public void processUpdateEmail(GenericRequest request)
throws BadInputException, ObjectNotFoundException, DatabaseException, InterceptorException,
DuplicateKeyException, AuthenticationException, AssertionException, MessagingException,IOException, TemplateException {
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
MVNForumPermission permission = onlineUser.getPermission();
permission.ensureIsAuthenticated();
Locale locale = I18nUtil.getLocaleInRequest(request);
int memberID = onlineUser.getMemberID();
// column(s) to update
String memberEmail = GenericParamUtil.getParameterEmail(request, "MemberEmail");
String memberEmailConfirm = GenericParamUtil.getParameterEmail(request, "MemberEmailConfirm");
if (memberEmail.length() > MVNForumGlobal.MAX_MEMBER_EMAIL_LENGTH) {
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.member_email_too_long");
throw new BadInputException(localizedMessage);
//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)) {
String localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.confirmed_email_is_not_match");
throw new BadInputException(localizedMessage);
//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()) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -