📄 userservice.java
字号:
package com.redmoon.forum.person;import cn.js.fan.security.*;import javax.servlet.http.*;import cn.js.fan.util.*;import org.apache.log4j.Logger;import com.redmoon.forum.ForumDb;import com.redmoon.forum.OnlineUserDb;import com.redmoon.forum.Privilege;import com.redmoon.forum.plugin.ScoreMgr;import com.redmoon.forum.plugin.ScoreUnit;import com.redmoon.forum.plugin.base.IPluginScore;import java.util.Iterator;import java.util.Vector;import com.redmoon.forum.security.IPMonitor;import java.util.TimeZone;import com.redmoon.forum.Authorization;import cn.js.fan.web.SkinUtil;import java.util.Locale;import cn.js.fan.web.Global;import com.redmoon.forum.RegConfig;import com.redmoon.forum.message.MessageDb;import com.redmoon.forum.Config;import cn.js.fan.mail.SendMail;import com.redmoon.forum.util.ForumFilter;public class userservice { Logger logger = Logger.getLogger(userservice.class.getName()); public final String KEY = "bluewindBlueWindBLUEWIND"; public userservice() { } public boolean AddFriend(HttpServletRequest request) throws ErrMsgException { Privilege pvg = new Privilege(); if (!pvg.isUserLogin(request)) throw new ErrMsgException(SkinUtil.LoadString(request, "err_not_login")); String name = pvg.getUser(request); String friend = ParamUtil.get(request, "friend"); if (friend.equals("")) throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.person.userservice", "err_need_friend")); if (name.equals(friend)) throw new ErrMsgException(SkinUtil.LoadString(request, "res.forum.person.userservice", "err_add_self")); String type = ParamUtil.get(request, "type"); if (type.equals("nick")) { UserDb ud = new UserDb(); ud = ud.getUserDbByNick(friend); if (ud==null) { throw new ErrMsgException(SkinUtil.LoadString(request, "res.label.forum.person.userservice", "user_not_exist")); } friend = ud.getName(); } UserFriendDb ufd = new UserFriendDb(); ufd.setName(name); ufd.setFriend(friend); boolean re = false; try { re = ufd.create(); } catch (ResKeyException e) { throw new ErrMsgException(e.getMessage(request)); } return re; } public void setStayTime(HttpServletRequest req, HttpServletResponse res) throws ErrMsgException { HttpSession session = req.getSession(true); Authorization auth = (Authorization)session.getAttribute(Privilege.SESSION_CWBBS_AUTH); if (auth==null) return; auth.setStayTime(System.currentTimeMillis()); session.setAttribute(Privilege.SESSION_CWBBS_AUTH, auth); OnlineUserDb ou = new OnlineUserDb(); ou = ou.getOnlineUserDb(auth.getName()); ou.setStayTime(new java.util.Date()); if (ou.isLoaded()) { ou.save(); } else { int isguest = 0; if (Privilege.isGuest(req)) isguest = 1; ou.setName(auth.getName()); ou.setIp(req.getRemoteAddr()); ou.setGuest(isguest == 1 ? true : false); ou.create(); } } public long getStayTime(HttpServletRequest req) { long st = 0; Privilege pvg = new Privilege(); Authorization auth = pvg.getAuthorization(req); if (auth!=null) { st = auth.getStayTime(); } return st; } public void refreshStayTime(HttpServletRequest req, HttpServletResponse res) throws ErrMsgException { long staytime = System.currentTimeMillis(); long t = (staytime - getStayTime(req)) / 300000; if (t > 5) { setStayTime(req, res); } } public boolean isRegNameExist(HttpServletRequest req, String regName) throws ErrMsgException { if (regName == null || regName.trim().equals("")) throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "err_need_name")); UserDb user = new UserDb(); user = user.getUserDbByNick(regName); if (user!=null && user.isLoaded()) return true; else { cn.js.fan.module.pvg.User u = new cn.js.fan.module.pvg.User(); u = u.getUser(regName); if (u.isLoaded()) { Privilege pvg = new Privilege(); if (!pvg.isMasterLogin(req)) { return true; } } return false; } } public void doRegist(HttpServletRequest req, HttpServletResponse res, UserDb user) throws ErrMsgException { ScoreMgr sm = new ScoreMgr(); Vector v = sm.getAllScore(); Iterator ir = v.iterator(); while (ir.hasNext()) { ScoreUnit su = (ScoreUnit) ir.next(); IPluginScore ips = su.getScore(); if (ips != null) ips.regist(user); } user.save(); boolean sendWelcomeMsg = false; RegConfig rcfg = new RegConfig(); sendWelcomeMsg = rcfg.getBooleanProperty("sendWelcomeMsg"); if (sendWelcomeMsg) { MessageDb md = new MessageDb(); md.setTitle(StrUtil.format(rcfg.getProperty("welcomeMsgTitle"), new Object[] {Global.AppName})); md.setContent(rcfg.getProperty("welcomeMsgTxt")); md.setSender(MessageDb.USER_SYSTEM); md.setReceiver(user.getName()); md.setType(MessageDb.TYPE_SYSTEM); md.setIp("127.0.0.1"); md.create(); } Config cfg = Config.getInstance(); RegConfig cr = new RegConfig(); int regVerify = cr.getIntProperty("regVerify"); if (regVerify==cr.REGIST_VERIFY_NOT) user.setCheckStatus(user.CHECK_STATUS_PASS); else user.setCheckStatus(user.CHECK_STATUS_NOT); if (regVerify == cr.REGIST_VERIFY_EMAIL) { String senderName = Global.AppName; senderName = StrUtil.GBToUnicode(senderName); senderName += "<" + Global.getEmail() + ">"; SendMail sendmail = new SendMail(); String subject = StrUtil.format(rcfg.getProperty("welcomeMsgTitle"), new Object[] {Global.AppName}); String activeStr = ThreeDesUtil.encrypt2hex(cfg.getKey(), user.getNick()); String content = rcfg.getProperty("welcomeMsgTxt") + "<BR><BR>" + SkinUtil.LoadString(req, "res.forum.person.userservice", "email_active_url"); content += "<BR><a href='" + Global.getRootPath() + "/" + "regist_active.jsp?activeStr=" + activeStr + "'>" + Global.getRootPath() + "/" + "regist_active.jsp?activeStr=" + activeStr + "</a>"; try { String mailserver = Global.getSmtpServer(); int smtp_port = Global.getSmtpPort(); String name = Global.getSmtpUser(); String pwd_raw = Global.getSmtpPwd(); sendmail.initSession(mailserver, smtp_port, name, pwd_raw); sendmail.initMsg(user.getEmail(), senderName, subject, content, true); sendmail.send(); } catch (Exception e) { throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "email_send_error") + e.getMessage()); } finally { sendmail.clear(); } } if (regVerify == 0) { Privilege privilege = new Privilege(); privilege.doLogin(req, res, user.getUser(user.getName())); } } public boolean regist(HttpServletRequest req, HttpServletResponse res) throws ErrMsgException { ParamConfig pc = new ParamConfig("form_rule.xml"); ParamChecker pck = new ParamChecker(req); try { pck.doCheck(pc.getFormRule("regist")); } catch (CheckErrException e) { throw new ErrMsgException(e.getMessage()); } String RegName = pck.getString("RegName"); if (RegName == null || RegName.trim().equals("")) { throw new ErrMsgException(SkinUtil.LoadString(req, "res.forum.person.userservice", "err_need_name")); } if (isRegNameExist(req, RegName)) { throw new ErrMsgException(SkinUtil.LoadString(req, "res.label.forum.user", "user_name_exist")); } String Password = pck.getString("Password").trim(); String Password2 = pck.getString("Password2").trim(); try { Password = SecurityUtil.MD5(Password); } catch (Exception e) { logger.error("regist:" + e.getMessage()); } String Question = pck.getString("Question"); String Answer = pck.getString("Answer"); String RealName = pck.getString("RealName"); String Career = pck.getString("Career"); String Gender = pck.getString("Gender"); String Job = pck.getString("Job"); String BirthYear = pck.getString("BirthYear"); String BirthMonth = pck.getString("BirthMonth"); String BirthDay = pck.getString("BirthDay"); String Birthday = BirthYear + "-" + BirthMonth + "-" + BirthDay; int Marriage = pck.getInt("Marriage"); String Phone = pck.getString("Phone"); String Mobile = pck.getString("Mobile"); String State = pck.getString("State"); String City = pck.getString("City"); String Address = pck.getString("Address"); String PostCode = pck.getString("PostCode"); String IDCard = pck.getString("IDCard"); String RealPic = pck.getString("RealPic"); String Hobbies = pck.getString("Hobbies"); String Email = pck.getString("Email"); RegConfig rcfg = new RegConfig(); boolean allowERegUser = true; allowERegUser = rcfg.getBooleanProperty("allowERegUser"); if(!allowERegUser){ UserDb ud = new UserDb(); if (!ud.validEmailOnly(Email)) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -