⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modcpaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -