📄 modcpaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import cn.jsprun.domain.Admingroups;
import cn.jsprun.domain.Forumfields;
import cn.jsprun.domain.Forums;
import cn.jsprun.domain.Members;
import cn.jsprun.domain.Posts;
import cn.jsprun.domain.Threads;
import cn.jsprun.domain.Usergroups;
import cn.jsprun.foreg.utils.Jspruncode;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.forumsedit.ForumfieldService;
import cn.jsprun.service.posts.PostsService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.service.user.MemberService;
import cn.jsprun.service.user.UserGroupService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.ForumInit;
import cn.jsprun.utils.IPSeeker;
import cn.jsprun.utils.JspRunConfig;
public class ModcpAction extends DispatchAction {
private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
private UserGroupService userGroupService = (UserGroupService) BeanFactory.getBean("userGroupService");
private PostsService postService = (PostsService) BeanFactory.getBean("postsService");
private ThreadsService threadService = (ThreadsService) BeanFactory.getBean("threadsService");
private ForumfieldService forumfieldService = (ForumfieldService) BeanFactory.getBean("forumfieldService");
private ForumService forumService = (ForumService) BeanFactory.getBean("forumService");
private MemberService memberService = (MemberService) BeanFactory.getBean("memberService");
@SuppressWarnings("unchecked")
public ActionForward editsubject(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
int tid=Common.toDigit(request.getParameter("tid"), 1000000000L, 0L).intValue();
short fid=Common.toDigit(request.getParameter("fid"), 1000000000L, 0L).shortValue();
List<Map<String,String>> orig=dataBaseService.executeQuery("SELECT m.adminid,p.subject,p.first, p.authorid, p.author, p.dateline, p.anonymous, p.invisible FROM jrun_posts p LEFT JOIN jrun_members m ON m.uid=p.authorid WHERE p.tid='"+tid+"' AND p.first='1' limit 1", new String[]{"adminid","subject","first","authorid","author","dateline","anonymous","invisible"});
if(orig==null||orig.size()<=0){
this.showMessage("ajaxerror"+new Random().nextInt(1000),"指定的主题不存在或已被删除或正在被审核,请返回。",response);
return null;
}
Map<String,String> post=orig.get(0);
HttpSession session = request.getSession();
short groupid=(Short)session.getAttribute("jsprun_groupid");
Members member = (Members) session.getAttribute("user");
Map<String,String> settings=ForumInit.settings;
Usergroups usergroup=userGroupService.findUserGroupById(member.getGroupid());
String message=Common.periodscheck(settings.get("postbanperiods"), usergroup.getDisableperiodctrl(), Float.valueOf(settings.get("timeoffset")));
settings=null;
if(message!=null)
{
this.showMessage("ajaxerror",message, response);
return null;
}
Forumfields forumfield=forumfieldService.findById(fid);
if((forumfield.getViewperm()==null||forumfield.getViewperm().equals(""))&&usergroup.getReadaccess()<=0)
{
this.showMessage("ajaxerror","您所在的用户组("+usergroup.getGrouptitle()+")无法进行此操作。", response);
return null;
}
else if((!forumfield.getViewperm().equals(""))&&!Common.forumperm(forumfield.getViewperm(), groupid, member!=null?member.getExtgroupids():""))
{
this.showMessage("ajaxerror","本版块只有特定用户组可以访问。", response);
return null;
}
forumfield=null;
boolean ismoderator=Common.ismoderator(fid, member);
int adminid=Common.toDigit(post.get("adminid"), 255L, 0L).intValue();
Admingroups admingroup=userGroupService.findAdminGroupById(member.getGroupid());
if(!ismoderator||admingroup==null || admingroup.getAlloweditpost()<=0||((adminid==1||adminid==2||adminid==3)&&member.getAdminid()>adminid))
{
this.showMessage("ajaxerror","对不起,你没有权力编辑他人发表的贴子,请返回。", response);
return null;
}
String subjectnew=request.getParameter("subjectnew");
if(subjectnew!=null)
{
subjectnew=Common.ajax_decode(subjectnew);
}
if(subjectnew!=null&&Common.strlen(subjectnew)>80)
{
this.showMessage("ajaxerror","对不起,您的标题超过 80 个字符,请返回修改标题长度。", response);
return null;
}
if(request.getParameter("editsubjectsubmit")==null)
{
request.setAttribute("tid", tid);
request.setAttribute("fid", fid);
request.setAttribute("subject",post.get("subject"));
return mapping.findForward("tomodcppost");
}else{
subjectnew=Common.dhtmlspecialchars(subjectnew);
dataBaseService.runQuery("UPDATE jrun_threads SET subject='"+subjectnew+"' WHERE tid='"+tid+"'");
dataBaseService.runQuery("UPDATE jrun_posts SET subject='"+subjectnew+"' WHERE tid='"+tid+"' AND first='1'");
this.showMessage("<a href=\"viewthread.jsp?tid="+tid+"\">"+subjectnew+"</a>",null, response);
return null;
}
}
@SuppressWarnings("unchecked")
public ActionForward editmessage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String editmessagesubmit = request.getParameter("editmessagesubmit");
HttpSession session = request.getSession();
String message = "";
int jrun_uid = (Integer)session.getAttribute("jsprun_uid");
Members member = (Members)session.getAttribute("user");
if(jrun_uid==0){
message = "未登录,无法进行操作。";
this.showmessage(false, message, response);
return null;
}
String pid = request.getParameter("pid");
List<Posts> postlist = postService.findPostByhql("from Posts as p where p.pid=" + pid+ " and p.invisible>-1", 0, 1);
if (postlist == null || postlist.size() <= 0) {
message = "指定的帖子不存在或已被删除或正在被审核。<br /><br /><a href=\"viewthread.jsp?tid="+ request.getParameter("tid") + "\">[ 尝试转入主题请点击这里 ]</a>";
this.showmessage(false, message, response);
return null;
}
Map<String,String> settings=ForumInit.settings;
short groupid = (Short) session.getAttribute("jsprun_groupid");
Usergroups usergroups = userGroupService.findUserGroupById(groupid);
String showmessage=Common.periodscheck(settings.get("postbanperiods"), usergroups.getDisableperiodctrl(), Float.valueOf(settings.get("timeoffset")));
if(showmessage!=null)
{
this.showMessage("ajaxerror",showmessage, response);
return null;
}
Posts post = postlist.get(0);
String activitsql = "SELECT f.fid, f.name, ff.viewperm, a.allowview FROM jrun_forums f LEFT JOIN jrun_forumfields ff ON ff.fid=f.fid LEFT JOIN jrun_access a ON a.uid='"+ jrun_uid+ "' AND a.fid=f.fid WHERE f.status>0 and f.fid = "+ post.getFid() + " ORDER BY f.displayorder";
List<Map<String, String>> forumslist = dataBaseService.executeQuery(activitsql);
if(forumslist.size()<=0){
message = "未定义操作,请返回。";
this.showmessage(false, message, response);
return null;
}
Map<String, String> forumMap = forumslist.get(0);
String viewperm = forumMap.get("viewperm");
if (forumMap.get("alloview") == null) {
if (forumMap.get("viewperm").equals("")&& usergroups.getReadaccess() == 0) {
message = "您所在的用户组(" + usergroups.getGrouptitle() + ")无法进行此操作。";
this.showmessage(false, message, response);
return null;
} else if (!forumMap.get("viewperm").equals("")&&!Common.forumperm(viewperm, groupid, member!=null?member.getExtgroupids():"")) {
message = "本版块只有特定用户组可以访问。";
this.showmessage(false, message, response);
return null;
}
}
boolean modertar = Common.ismoderator(post.getFid(), member);
byte jsprun_adminid = (Byte) session.getAttribute("jsprun_adminid");
Admingroups admingroup = userGroupService.findAdminGroupById(member.getGroupid());
Forums forums = forumService.findById(Short.valueOf(forumMap.get("fid")));
if(forums==null){
request.setAttribute("errorInfo", "指定的版块不存在,请返回。");
return mapping.findForward("showMessage");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -