📄 topicadminaction.java
字号:
String[] postIdArray = request.getParameterValues("postIdArray");
String banned = request.getParameter("banned");
String sendreasonpm = request.getParameter("sendreasonpm");
String reason = request.getParameter("reason");
if(tid==null){
request.setAttribute("errorInfo", "请确保正常操作");
return mapping.findForward("showMessage");
}
if(postIdArray==null){
request.setAttribute("errorInfo", "对不起,您没有选择要进行操作的回帖,请返回修改。");
return mapping.findForward("showMessage");
}
Threads threads = threadsService.findByTid(Integer.valueOf(tid));
if(threads==null||threads.getDisplayorder()<0){
request.setAttribute("errorInfo", "对不起,该主题已经被删除。");
return mapping.findForward("showMessage");
}
List<Integer> pidList = new ArrayList<Integer>();
for(int i = 0;i<postIdArray.length;i++){
pidList.add(Integer.valueOf(postIdArray[i]));
}
List<Posts> postsList = postsService.getPostsListByPidList(pidList);
for(int i = 0;i<postsList.size();i++){
if(postsList.get(i)==null){
request.setAttribute("errorInfo", "对不起,您所操作的帖子中存在被删除的选项,请返回刷新后重试!");
return mapping.findForward("showMessage");
}
}
HttpSession session = request.getSession();
Members members = (Members)session.getAttribute("user");
if(members==null){
try{
throw new Exception();
}catch(Exception exception){
exception.printStackTrace();
request.setAttribute("errorInfo", "错误01,请稍后在试。");
return mapping.findForward("showMessage");
}
}
String realPath = servlet.getServletContext().getRealPath("/");
String IP = request.getRemoteAddr();
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
Map<String,Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("threads", threads);
parameterMap.put("postsList", postsList);
parameterMap.put("banned", banned);
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
parameterMap.put("fid", threads.getFid());
parameterMap.put("sendreasonpm", sendreasonpm);
parameterMap.put("reason", reason);
parameterMap.put("adminId", members.getAdminid());
parameterMap.put("uid", members.getUid());
parameterMap.put("username", members.getUsername());
parameterMap.put("groupId", members.getGroupid());
parameterMap.put("url", url);
parameterMap.put("realPath",realPath);
parameterMap.put("IP", IP);
String result = topicAdminActionService.operatingBanPost(parameterMap);
if(result!=null){
request.setAttribute("errorInfo", result);
return mapping.findForward("showMessage");
}
if(Common.isshowsuccess(request.getSession(), "admin_succeed")){
Common.requestforward(response, "viewthread.jsp?tid="+tid+"&page="+currentPage+"&extra="+threadPage);
return null;
}else{
request.setAttribute("successInfo", "管理操作成功,现在将返回论坛。");
request.setAttribute("requestPath", "viewthread.jsp?tid="+tid+"&page="+currentPage+"&extra="+threadPage);
return mapping.findForward("showMessage");
}
}
public ActionForward copy(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
String fid = request.getParameter("fid");
HttpSession session = request.getSession();
Members member = (Members)session.getAttribute("user");
if(!Common.ismoderator(Short.valueOf(fid), member)){
request.setAttribute("errorInfo", "错误的操作.");
return mapping.findForward("showMessage");
}
String moderates = request.getParameter("moderates");
if(fid==null||moderates==null){
request.setAttribute("errorInfo", "请进行合法操作");
return mapping.findForward("showMessage");
}
Threads threads = threadsService.findByTid(Integer.valueOf(moderates));
if(threads==null||threads.getDisplayorder()<0){
request.setAttribute("errorInfo", "对不起,您选择的主题已经被删除");
return mapping.findForward("showMessage");
}
String reasonpm = ((Map<String,String>)request.getAttribute("usergroups")).get("reasonpm");
String modreasons = settingService.findBySettingvariable("modreasons").getValue();
Map<String,Object> parameterMap = new HashMap<String, Object>();
short groupid = (Short)session.getAttribute("jsprun_groupid");
parameterMap.put("groupid", groupid);
parameterMap.put("member", member);
parameterMap.put("fid", fid);
parameterMap.put("tid", moderates);
parameterMap.put("operation", "copy");
parameterMap.put("reasonpm", reasonpm);
parameterMap.put("modreasons", modreasons);
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
TopicCopyVO topicCopyVO = topicAdminActionService.geTopicCopyVO(parameterMap);
request.setAttribute("valueObject", topicCopyVO);
return mapping.findForward("goTopicadmin_copy");
}
public ActionForward operatingCopy(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
String fid = request.getParameter("fid");
HttpSession session = request.getSession();
Members members = (Members)session.getAttribute("user");
if(!Common.ismoderator(Short.valueOf(fid), members)){
request.setAttribute("errorInfo", "错误的操作.");
return mapping.findForward("showMessage");
}
String tid = request.getParameter("tid");
String copyTo = request.getParameter("copyto");
String sendreasonpm = request.getParameter("sendreasonpm");
String reason = request.getParameter("reason");
if(fid==null||tid==null||copyTo==null){
request.setAttribute("errorInfo", "非法访问");
return mapping.findForward("showMessage");
}
Threads threads = threadsService.findByTid(Integer.valueOf(tid));
Forums targetForums = forumService.findById(Short.valueOf(copyTo));
Members threadsOwner = memberService.findMemberById(threads.getAuthorid());
Usergroups usergroups = userGroupService.findUserGroupById(threadsOwner.getGroupid());
String allowdirectpost = usergroups.getAllowdirectpost().toString();
boolean allowCopy = allowCopy(targetForums, allowdirectpost, threads);
if(!allowCopy){
request.setAttribute("errorInfo", "对不起,该帖的作者没有在目标版块直接发贴的权限");
return mapping.findForward("showMessage");
}
if(members==null){
request.setAttribute("errorInfo", "错误01,请稍后再试。");
return mapping.findForward("showMessage");
}
String realPath = servlet.getServletContext().getRealPath("/");
String IP = request.getRemoteAddr();
String url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
String creditsformula = ((Map<String,String>)request.getAttribute("settings")).get("creditsformula");
String creditspolicy = ((Map<String,String>)request.getAttribute("settings")).get("creditspolicy");
Map<String,Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("threads", threads);
parameterMap.put("fid", fid);
parameterMap.put("targetForums", targetForums);
parameterMap.put("sendreasonpm", sendreasonpm);
parameterMap.put("reason", reason);
parameterMap.put("adminId", members.getAdminid());
parameterMap.put("uid", members.getUid());
parameterMap.put("username", members.getUsername());
parameterMap.put("groupId", members.getGroupid());
parameterMap.put("timeoffset", session.getAttribute("timeoffset"));
parameterMap.put("realPath",realPath);
parameterMap.put("IP", IP);
parameterMap.put("url", url);
parameterMap.put("creditsformula", creditsformula);
parameterMap.put("creditspolicy", creditspolicy);
parameterMap.put("settingMap", (Map<String,String>)request.getAttribute("settings"));
String result = topicAdminActionService.operatingCopy(parameterMap);
if(result!=null){
request.setAttribute("errorInfo", result);
return mapping.findForward("showMessage");
}
if(Common.isshowsuccess(request.getSession(), "admin_succeed")){
Common.requestforward(response, "forumdisplay.jsp?fid="+fid);
return null;
}else{
request.setAttribute("successInfo", "管理操作成功,现在将返回论坛。");
request.setAttribute("requestPath", "forumdisplay.jsp?fid="+fid);
return mapping.findForward("showMessage");
}
}
private boolean allowDeletePosts(HttpServletRequest request){
HttpSession session = request.getSession();
Byte adminId = (Byte)session.getAttribute("jsprun_adminid");
if(adminId!=null){
if(adminId==0){
return false;
}else{
Map<String,String> usergroups = (Map<String,String>)request.getAttribute("usergroups");
String allowdelpost = usergroups.get("allowdelpost");
if(allowdelpost!=null){
if(allowdelpost.equals("0")){
return false;
}else{
return true;
}
}else{
try{
throw new Exception("Request 中的 admingroups 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
}else{
try{
throw new Exception("Session 中的 adminID 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
private boolean allowBanpost(HttpServletRequest request){
HttpSession session = request.getSession();
Byte adminId = (Byte)session.getAttribute("jsprun_adminid");
if(adminId!=null){
if(adminId==0){
return false;
}else{
Map<String,String> usergroups = (Map<String,String>)request.getAttribute("usergroups");
String allowdelpost = usergroups.get("allowbanpost");
if(allowdelpost!=null){
if(allowdelpost.equals("0")){
return false;
}else{
return true;
}
}else{
try{
throw new Exception("Request 中的 admingroups 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
}else{
try{
throw new Exception("Session 中的 adminID 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
private boolean allowStick(HttpServletRequest request,String level){
HttpSession session = request.getSession();
Byte adminId = (Byte)session.getAttribute("jsprun_adminid");
if(adminId!=null){
if(adminId==0){
return false;
}else{
Map<String,String> usergroups = (Map<String,String>)request.getAttribute("usergroups");
String allowstickthread = usergroups.get("allowstickthread");
if(allowstickthread!=null){
Integer levelInteger = Integer.valueOf(level);
Integer aInteger = Integer.valueOf(allowstickthread);
if(levelInteger>aInteger){
return false;
}else{
return true;
}
}else{
try{
throw new Exception("Request 中的 admingroups 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
}else{
try{
throw new Exception("Session 中的 adminID 为 NULL");
}catch(Exception exception){
exception.printStackTrace();
}
return false;
}
}
private boolean allowCopy(Forums targetForums,String allowdirectpost,Threads threads){
if(targetForums==null||allowdirectpost==null||threads==null){
try{
throw new Exception();
}catch(Exception exception){
exception.printStackTrace();
return false;
}
}
if(threads.getSpecial()>0){
return false;
}
if(needAuditing(targetForums, allowdirectpost)){
return false;
}
return true;
}
private boolean needAuditing(Forums targetForums,String allowdirectpost){
if(targetForums.getModnewposts()>0&&!allowdirectpost.equals("2")&&!allowdirectpost.equals("3")){
return true;
}else{
return false;
}
}
public String getAttachmentRealyPath(String attachmentPath,String serverUrl){
if(attachmentPath.startsWith("http://")){
attachmentPath = attachmentPath.substring(serverUrl.length());
}
ServletContext context = servlet.getServletContext();
return context.getRealPath(attachmentPath);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -