ModerationAction.java
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 5k
Category:

Java Develop

Development Platform:

Java

  1. /*
  2.  * Copyright (c) JForum Team
  3.  * All rights reserved.
  4.  * 
  5.  * Redistribution and use in source and binary forms, 
  6.  * with or without modification, are permitted provided 
  7.  * that the following conditions are met:
  8.  * 
  9.  * 1) Redistributions of source code must retain the above 
  10.  * copyright notice, this list of conditions and the 
  11.  * following  disclaimer.
  12.  * 2)  Redistributions in binary form must reproduce the 
  13.  * above copyright notice, this list of conditions and 
  14.  * the following disclaimer in the documentation and/or 
  15.  * other materials provided with the distribution.
  16.  * 3) Neither the name of "Rafael Steil" nor 
  17.  * the names of its contributors may be used to endorse 
  18.  * or promote products derived from this software without 
  19.  * specific prior written permission.
  20.  * 
  21.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT 
  22.  * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
  23.  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 
  24.  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  25.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  26.  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
  27.  * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 
  28.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  29.  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
  30.  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
  31.  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
  32.  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  33.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 
  34.  * IN CONTRACT, STRICT LIABILITY, OR TORT 
  35.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
  36.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  37.  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
  38.  * 
  39.  * Created on 02/10/2005 20:04:15
  40.  * The JForum Project
  41.  * http://www.jforum.net
  42.  */
  43. package net.jforum.view.forum;
  44. import java.util.Iterator;
  45. import java.util.List;
  46. import net.jforum.Command;
  47. import net.jforum.JForumExecutionContext;
  48. import net.jforum.dao.DataAccessDriver;
  49. import net.jforum.dao.ModerationLogDAO;
  50. import net.jforum.dao.PostDAO;
  51. import net.jforum.dao.TopicDAO;
  52. import net.jforum.entities.ModerationLog;
  53. import net.jforum.entities.Post;
  54. import net.jforum.entities.Topic;
  55. import net.jforum.repository.ForumRepository;
  56. import net.jforum.repository.SecurityRepository;
  57. import net.jforum.security.SecurityConstants;
  58. import net.jforum.util.I18n;
  59. import net.jforum.util.preferences.ConfigKeys;
  60. import net.jforum.util.preferences.SystemGlobals;
  61. import net.jforum.util.preferences.TemplateKeys;
  62. import net.jforum.view.forum.common.PostCommon;
  63. import net.jforum.view.forum.common.ViewCommon;
  64. /**
  65.  * @author Rafael Steil
  66.  * @version $Id: ModerationAction.java,v 1.6 2007/07/28 14:17:09 rafaelsteil Exp $
  67.  */
  68. public class ModerationAction extends Command
  69. {
  70. /**
  71.  * @throws UnsupportedOperationException always
  72.  * @see net.jforum.Command#list()
  73.  */
  74. public void list()
  75. {
  76. throw new UnsupportedOperationException();
  77. }
  78. public void showActivityLog() 
  79. {
  80. if (!SecurityRepository.canAccess(SecurityConstants.PERM_MODERATION_LOG)) {
  81. this.denied();
  82. return;
  83. }
  84. ModerationLogDAO dao = DataAccessDriver.getInstance().newModerationLogDAO();
  85. int start = ViewCommon.getStartPage();
  86. int recordsPerPage = SystemGlobals.getIntValue(ConfigKeys.TOPICS_PER_PAGE);
  87. List list = dao.selectAll(start, recordsPerPage);
  88. boolean canAccessFullModerationLog = SecurityRepository.canAccess(SecurityConstants.PERM_FULL_MODERATION_LOG);
  89. PostDAO postDao = DataAccessDriver.getInstance().newPostDAO();
  90. TopicDAO topicDao = DataAccessDriver.getInstance().newTopicDAO();
  91. for (Iterator iter = list.iterator(); iter.hasNext();) {
  92. ModerationLog log = (ModerationLog)iter.next();
  93. if (log.getPostId() > 0) {
  94. Post post = postDao.selectById(log.getPostId());
  95. if (post.getId() > 0 && ForumRepository.getForum(post.getForumId()) == null) {
  96. iter.remove();
  97. continue;
  98. }
  99. }
  100. else if (log.getTopicId() > 0) {
  101. Topic topic = topicDao.selectRaw(log.getTopicId());
  102. if (topic.getId() > 0 && ForumRepository.getForum(topic.getForumId()) == null) {
  103. iter.remove();
  104. continue;
  105. }
  106. }
  107. if (log.getOriginalMessage() != null && canAccessFullModerationLog) {
  108. Post post = new Post();
  109. post.setText(log.getOriginalMessage());
  110. log.setOriginalMessage(PostCommon.preparePostForDisplay(post).getText());
  111. }
  112. }
  113. this.setTemplateName(TemplateKeys.MODERATION_SHOW_ACTIVITY_LOG);
  114. this.context.put("activityLog", list);
  115. this.context.put("canAccessFullModerationLog", canAccessFullModerationLog);
  116. int totalRecords = dao.totalRecords();
  117. ViewCommon.contextToPagination(start, totalRecords, recordsPerPage);
  118. }
  119. private void denied() {
  120. this.setTemplateName(TemplateKeys.MODERATION_LOG_DENIED);
  121. this.context.put("message", I18n.getMessage("ModerationLog.denied"));
  122. }
  123. public void doModeration()
  124. {
  125. String returnUrl = this.request.getParameter("returnUrl");
  126. new ModerationHelper().doModeration(returnUrl);
  127. this.context.put("returnUrl", returnUrl);
  128. if (JForumExecutionContext.getRequest().getParameter("topicMove") != null) {
  129. this.setTemplateName(TemplateKeys.MODERATION_MOVE_TOPICS);
  130. }
  131. }
  132. public void moveTopic()
  133. {
  134. new ModerationHelper().moveTopicsSave(this.request.getParameter("returnUrl"));
  135. }
  136. public void moderationDone()
  137. {
  138. this.setTemplateName(new ModerationHelper().moderationDone(this.request.getParameter("returnUrl")));
  139. }
  140. }