📄 membermanageaction.java
字号:
int timestamp = (Integer)(request.getAttribute("timestamp"));
dataBaseService.runQuery("UPDATE jrun_memberfields SET authstr='"+timestamp+"\t1\t"+idstring+"' WHERE uid='"+member.get("uid")+"'", false);
request.setAttribute("resultInfo","取回密码的方法已经通过 Email 发送到您的信箱中,<br />请在 3 天之内到论坛修改您的密码。");
Map<String,String> settings=ForumInit.settings;
Map<String,String> mails=dataParse.characterParse(settings.get("mail"), false);
mails.put("jsprun_root",servlet.getServletContext().getRealPath("/"));
HttpSession session=request.getSession();
String boardurl=(String)session.getAttribute("boardurl");
String get_passwd_message="\n"+member.get("username")+",\n这封信是由 "+settings.get("bbname")+" 发送的。\n\n您收到这封邮件,是因为在我们的论坛上这个邮箱地址被登记为用户邮箱,\n且该用户请求使用 Email 密码重置功能所致。\n\n----------------------------------------------------------------------\n重要!\n----------------------------------------------------------------------\n\n如果您没有提交密码重置的请求或不是我们论坛的注册用户,请立即忽略\n并删除这封邮件。只在您确认需要重置密码的情况下,才继续阅读下面的\n内容。\n\n----------------------------------------------------------------------\n密码重置说明\n----------------------------------------------------------------------\n\n您只需在提交请求后的三天之内,通过点击下面的链接重置您的密码:\n\n"+boardurl+"member.jsp?action=getpasswd&uid="+member.get("uid")+"&id="+idstring+"\n\n(如果上面不是链接形式,请将地址手工粘贴到浏览器地址栏再访问)\n\n上面的页面打开后,输入新的密码后提交,之后您即可使用新的密码登录\n论坛了。您可以在用户控制面板中随时修改您的密码。\n\n本请求提交者的 IP 为 "+request.getRemoteAddr()+"\n\n\n\n此致\n\n"+settings.get("bbname")+" 管理团队.\n"+boardurl;
Mail mail=new Mail(mails);
mail.sendMessage(mails.get("from"),member.get("username")+" <"+member.get("email")+">", "取回密码说明", get_passwd_message, null);
return mapping.findForward("showMessage");
}
} else {
request.setAttribute("errorInfo", "用户名,Email 地址或安全提问不匹配,请返回修改。");
return mapping.findForward("showMessage");
}
}
public ActionForward toGetpasswd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String uid=request.getParameter("uid");
List<Map<String,String>> members=dataBaseService.executeQuery("SELECT m.username, mf.authstr FROM jrun_members m,jrun_memberfields mf WHERE m.uid='"+uid+"' AND mf.uid=m.uid");
if (members == null||members.size()==0||members.get(0).get("authstr").equals("")) {
request.setAttribute("resultInfo", "您所用的 ID 不存在或已经过期,无法取回密码。");
return mapping.findForward("showMessage");
}
Map<String,String> member=members.get(0);
String id = request.getParameter("id");
int timestamp = (Integer)(request.getAttribute("timestamp"));
String[] authstr = member.get("authstr").split("\t");
int dataline = Common.toDigit(authstr[0], 2147483647L, 0L).intValue();
int operation = Common.toDigit(authstr[1], 2147483647L, 0L).intValue();
String idString = authstr[2];
if (dataline < timestamp - 86400 * 3 || operation != 1|| !idString.equals(id)) {
request.setAttribute("resultInfo", "您所用的 ID 不存在或已经过期,无法取回密码。");
return mapping.findForward("showMessage");
}
String getpwsubmit = request.getParameter("getpwsubmit");
String newpasswd1 = request.getParameter("newpasswd1");
String newpasswd2 = request.getParameter("newpasswd2");
if (getpwsubmit == null || newpasswd1 != null&& !newpasswd1.equals(newpasswd2)) {
request.setAttribute("username",member.get("username"));
request.setAttribute("uid",uid);
request.setAttribute("id", idString);
return mapping.findForward("toGetpasswd");
}
if (newpasswd1.equals("")) {
request.setAttribute("errorInfo", "密码空或包含非法字符,请重新填写。");
return mapping.findForward("showMessage");
} else {
newpasswd1 = Md5Token.getInstance().getLongToken(newpasswd1);
dataBaseService.runQuery("UPDATE jrun_members SET password='"+newpasswd1+"' WHERE uid='"+uid+"'", false);
dataBaseService.runQuery("UPDATE jrun_memberfields SET authstr='' WHERE uid='"+uid+"'", false);
request.setAttribute("resultInfo", "您的密码已重新设置,请使用新密码登录。");
return mapping.findForward("showMessage");
}
}
@SuppressWarnings("unchecked")
public ActionForward switchstatus(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
Map<String,String> usergroups=(Map<String,String>)request.getAttribute("usergroups");
String allowinvisible = usergroups != null&&usergroups.size()>0 ? usergroups.get("allowinvisible") : "0";
if ("0".equals(allowinvisible)) {
request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
return mapping.findForward("nopermission");
}
Members member = (Members) session.getAttribute("user");
member.setInvisible((byte)(member.getInvisible() == 1 ?0 : 1));
memberService.modifyMember(member);
session.setAttribute("user", member);
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
try {
Writer writer = response.getWriter();
if (member.getInvisible() == 1) {
writer.write("<a href='member.jsp?action=switchstatus' title='切换到正常模式' ajaxtarget='loginstatus'>隐身模式</a>");
} else {
writer.write("<a href='member.jsp?action=switchstatus' title='切换到隐身模式' ajaxtarget='loginstatus'>正常模式</a>");
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public ActionForward markread(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
int jsprun_uid = (Integer) session.getAttribute("jsprun_uid");
if (jsprun_uid>0) {
int timestamp = (Integer)(request.getAttribute("timestamp"));
dataBaseService.runQuery("UPDATE jrun_members SET lastvisit='"+timestamp+"' WHERE uid='"+jsprun_uid+"'");
session.setAttribute("user", memberService.findMemberById(jsprun_uid));
}
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
try {
Writer writer = response.getWriter();
writer.write("所有版块已被标记已读。");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("unchecked")
public ActionForward credits(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String fid = request.getParameter("fid");
Map<String, String> settings = (Map<String, String>) request .getAttribute("settings");
String extcredits = settings.get("extcredits");
if (extcredits.equals("")) {
request.setAttribute("errorInfo", "对不起,管理员没有启用论坛积分。");
return mapping.findForward("showMessage");
}
String creditspolicy = settings.get("creditspolicy");
Map creditspolicymap = dataParse.characterParse(creditspolicy,false);
Map extcreditsmap = dataParse.characterParse(extcredits,true);
String sql = "select * from jrun_forumfields as f where f.fid=" + fid;
List<Map<String, String>> forumsfileds = dataBaseService.executeQuery(sql);
String[] operation = new String[] { "post", "reply", "digest", "postattach", "getattach" };
String[] operationname = new String[] { "发新主题", "发表回复", "加入精华", "发表附件","下载附件" };
int size = extcreditsmap.keySet().size() + 1;
List resutl = new ArrayList();
for (int i = 0; i < operation.length; i++) {
if (creditspolicymap != null) {
Iterator extit = extcreditsmap.keySet().iterator();
Map creditpoli = (Map) creditspolicymap.get(operation[i]);
if (creditpoli != null) {
String[] creditresult = new String[size];
creditresult[0] = operationname[i];
while (extit.hasNext()) {
String unit = "";
Object key = extit.next();
Map extmap = (Map) extcreditsmap.get(key);
if (extmap.get("unit") != null) {
unit = extmap.get("unit").toString();
}
if (creditpoli.get(key) != null) {
if (creditpoli.get(key).toString().equals("0")) {
creditresult[convertInt(key.toString())] = creditpoli.get(key).toString();
} else {
if (i == 4) {
creditresult[convertInt(key.toString())] = "-" + creditpoli.get(key) .toString() + unit;
} else {
creditresult[convertInt(key.toString())] = "+" + creditpoli.get(key) .toString() + unit;
}
}
} else {
creditresult[convertInt(key.toString())] = "N/A";
}
}
resutl.add(creditresult);
} else {
String[] creditresult = new String[size];
creditresult[0] = operationname[i];
while (extit.hasNext()) {
Object key = extit.next();
creditresult[convertInt(key.toString())] = "N/A";
}
resutl.add(creditresult);
}
}
String operationcredits = "";
if (forumsfileds!=null&&forumsfileds.size() > 0) {
Map<String, String> forumsfildmap = forumsfileds.get(0);
operationcredits = forumsfildmap.get(operation[i] + "credits");
}
if (!operationcredits.equals("")) {
Iterator extit = extcreditsmap.keySet().iterator();
Map creditforum = dataParse.characterParse(operationcredits,false);
String[] creditresult = new String[size];
creditresult[0] = "本版" + operationname[i];
while (extit.hasNext()) {
String unit = "";
Object key = extit.next();
Map extmap = (Map) extcreditsmap.get(key);
if (extmap.get("unit") != null) {
unit = extmap.get("unit").toString();
}
if (creditforum.get(key) != null) {
if (creditforum.get(key).toString().equals("0")) {
creditresult[convertInt(key.toString())] = creditforum .get(key).toString();
} else {
if (i == 4) {
creditresult[convertInt(key.toString())] = "-" + creditforum.get(key).toString() + unit;
} else {
creditresult[convertInt(key.toString())] = "+" + creditforum.get(key).toString() + unit;
}
}
} else {
creditresult[convertInt(key.toString())] = "N/A";
}
}
resutl.add(creditresult);
} else {
Iterator extit = extcreditsmap.keySet().iterator();
String[] creditresult = new String[size];
creditresult[0] = "本版" + operationname[i];
while (extit.hasNext()) {
Object key = extit.next();
creditresult[convertInt(key.toString())] = "N/A";
}
resutl.add(creditresult);
}
}
String[] operationother = new String[] { "pm", "search", "promotion_visit", "promotion_register", "tradefinished", "votepoll", "lowerlimit" };
String[] operationnameother = new String[] { "发短消息", "搜索", "访问推广", "注册推广", "成功交易", "参与投票", "积分下限" };
for (int i = 0; i < operationother.length; i++) {
Iterator extit = extcreditsmap.keySet().iterator();
if (creditspolicymap != null) {
Map creditpoli = (Map) creditspolicymap.get(operationother[i]);
if (creditpoli != null) {
String[] creditresult = new String[size];
creditresult[0] = operationnameother[i];
while (extit.hasNext()) {
String unit = "";
Object key = extit.next();
Map extmap = (Map) extcreditsmap.get(key);
if (extmap.get("unit") != null) {
unit = extmap.get("unit").toString();
}
if (creditpoli.get(key) != null) {
if (creditpoli.get(key).toString().equals("0")) {
creditresult[convertInt(key.toString())] = creditpoli.get(key).toString();
} else {
if (i == 0 || i == 1) {
creditresult[convertInt(key.toString())] = "-" + creditpoli.get(key).toString() + unit;
} else {
creditresult[convertInt(key.toString())] = "+" + creditpoli.get(key).toString() + unit;
}
}
} else {
creditresult[convertInt(key.toString())] = "N/A";
}
}
resutl.add(creditresult);
}
}
}
request.setAttribute("result", resutl);
request.setAttribute("extmap", extcreditsmap);
return mapping.findForward("credits");
}
@SuppressWarnings("unchecked")
public ActionForward clearcookies(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
CookieUtil.clearCookies(request, response,settings);
return mapping.findForward("toIndex");
}
private int convertInt(String s) {
int count = 0;
try {
count = Integer.valueOf(s);
} catch (Exception e) {
}
return count;
}
public ActionForward regverify(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
int timestamp = (Integer)(request.getAttribute("timestamp"));
int validateid = Common.toDigit(request.getParameter("validateid"));
Validating validate = memberService.findValidatingById(validateid);
String message = request.getParameter("regmessage");
validate.setMessage(message ==null?"":message);
validate.setStatus((byte)0);
validate.setSubmitdate(timestamp);
validate.setSubmittimes((short)(validate.getSubmittimes()+1));
memberService.modifyValidating(validate);
request.setAttribute("successInfo", "审核请求提交成功,现在将返回控制面板首页。");
request.setAttribute("requestPath", "memcp.jsp");
return mapping.findForward("showMessage");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -