📄 modcpaction.java
字号:
}
if ((admingroup==null || admingroup.getAlloweditpost()==0 || forums.getAlloweditpost() == 0 || !modertar) && jrun_uid!=post.getAuthorid()) {
message = "对不起,您没有权力编辑他人发表的帖子,请返回。";
this.showmessage(false, message, response);
return null;
}
Members author = memberService.findMemberById(post.getAuthorid());
if (author != null && (author.getAdminid() > 0 && jsprun_adminid > author.getAdminid())) {
message = "对不起,您没有权力编辑他人发表的帖子,请返回。";
this.showmessage(false, message, response);
return null;
}
if (editmessagesubmit == null) {
request.setAttribute("post", post);
return mapping.findForward("tomodcppost");
} else {
List<Map<String,String>> smilieslist = dataBaseService.executeQuery("select s.id,s.typeid,s.code,s.url,i.directory from jrun_smilies s left join jrun_imagetypes i on s.typeid=i.typeid where s.type='smiley' order by s.displayorder");
String dos = request.getParameter("do");
if (dos != null) {
Posts posts = postService.getPostsById(convertInt(pid));
String messages = posts.getMessage();
messages = this.parseSmilies(smilieslist,messages, 10,forums.getAllowimgcode()>0);
try {
response.getWriter().write(messages);
} catch (IOException e) {
e.printStackTrace();
}
} else {
String messages = request.getParameter("message");
message=message.replace("\\", "\\\\");
dataBaseService.runQuery("update jrun_posts set message='" + messages.replace("'", "''")+ "' where pid = " + pid);
messages = this.parseSmilies(smilieslist,messages, 10,forums.getAllowimgcode()>0);
writeMessage(response,messages,false);
}
smilieslist=null;
return null;
}
}
public ActionForward getip(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);
String pid = request.getParameter("pid");
String tid = request.getParameter("tid");
HttpSession session = request.getSession();
short groupid = (Short)session.getAttribute("jsprun_groupid");
byte jsprun_adminid = (Byte)( session.getAttribute("jsprun_adminid")==null?0:session.getAttribute("jsprun_adminid"));
String modertarhql = "SELECT m.adminid, p.first, m.regip FROM jrun_posts p LEFT JOIN jrun_members m ON m.uid=p.authorid WHERE pid='"+ pid + "' AND tid='" + tid + "'";
List<Map<String, String>> members = dataBaseService.executeQuery(modertarhql);
String message = "";
if(members==null || members.size()<=0){
message = "指定的主题不存在或已被删除或正在被审核,请返回。";
this.showMessage("ajaxerror",message, response);
return null;
}else{
Threads thread = threadService.findByTid(convertInt(tid));
Map<String,String> membermap = members.get(0);
if(("1".equals(membermap.get("adminid")) && jsprun_adminid>1)||("2".equals(membermap.get("adminid")) && jsprun_adminid>2)){
message = "对不起,您没有权限查看比您高级的管理员 IP,请返回。";
this.showMessage("ajaxerror",message, response);
return null;
}else if(membermap.get("first").equals("1") && thread.getDigest()==-1){
message = "特殊主题不允许进行此操作,请返回。";
this.showMessage("ajaxerror",message, response);
return null;
}
IPSeeker seeker = IPSeeker.getInstance();
String address = seeker.getAddress(membermap.get("regip")==null?"":membermap.get("regip"));
request.setAttribute("address", address);
request.setAttribute("ip", membermap.get("regip"));
Admingroups admingroup = userGroupService.findAdminGroupById(Short.valueOf(groupid+""));
if(admingroup!=null){
request.setAttribute("banip", admingroup.getAllowbanip());
}
return mapping.findForward("topicagetip");
}
}
private void writeMessage(HttpServletResponse response,String message,boolean iserror){
response.setContentType("application/xml");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
String content = "<?xml version=\"1.0\" encoding=\""+JspRunConfig.charset+"\"?><root><![CDATA[";
if(iserror){
message = message+" <script type=\"text/javascript\" reload=\"1\">function ajaxerror() { alert('"+message+"');}ajaxerror();</script>";
}
message = message.replaceAll("([\\x01-\\x09\\x0b-\\x0c\\x0e-\\x1f])+", "");
message = message.replaceAll("]]>", "]]>");
content = content+message+"]]></root>";
try {
response.getWriter().write(content);
} catch (IOException e) {
}
}
@SuppressWarnings("unused")
private int convertInt(String s) {
int count = 0;
try {
count = Integer.valueOf(s);
} catch (Exception e) {
}
return count;
}
private String parseSmilies(List<Map<String,String>> smilieslist,String message, int parnum,boolean allowimgcode) {
Jspruncode jspcode = (Jspruncode)BeanFactory.getBean("jspruncode");
message = jspcode.parsecode(message,false);
message = jspcode.parsetable(message);
message = jspcode.parseimg(message, allowimgcode);
message = message.replaceAll("\\n", "<br/>");
message = message.replaceAll("(?i)<br/>(<TD>|<TR>|</TR>)", "$1");
message = relacesmile(smilieslist,message, parnum);
return message;
}
private String relacesmile(List<Map<String,String>> smilieslist,String message, int parnum) {
int count = 0;
message = message+" ";
for(Map<String,String> smiles:smilieslist){
if(message.indexOf(smiles.get("code")+" ")!=-1 || message.indexOf(" "+smiles.get("code"))!=-1){
StringBuffer buffer = new StringBuffer();
buffer.append("<img src='images/smilies/");
buffer.append(smiles.get("directory"));
buffer.append("/");
buffer.append(smiles.get("url"));
buffer.append("' smilieid='");
buffer.append(smiles.get("id"));
buffer.append("' border='0' alt='' /> ");
message = StringUtils.replace(message, smiles.get("code"), buffer.toString());
count++;
}
if (count > parnum) {
break;
}
}
return message;
}
private void showmessage(boolean sucess, String message, HttpServletResponse response) {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
try {
if(sucess){
response.getWriter().write(message);
} else {
response.getWriter().write("error:"+message);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void showMessage(String url,String message,HttpServletResponse response)
{
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Program", "no-cache");
response.setDateHeader("Expirse", 0);
try {
if(message!=null)
{
response.getWriter().write(url+"<script type=\"text/javascript\">alert('"+message+"错误状态码:"+new Random().nextInt(10000)+"');</script>");
}
else{
response.getWriter().write(url);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -