Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
PrivateMessageAction.java
Package: jforum-2.1.8-src.zip [view]
Upload User: gdxydsw
Upload Date: 2019-01-29
Package Size: 16721k
Code Size: 13k
Category:
Java Develop
Development Platform:
Java
- /*
- * Copyright (c) JForum Team
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms,
- * with or without modification, are permitted provided
- * that the following conditions are met:
- *
- * 1) Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
- * following disclaimer.
- * 2) Redistributions in binary form must reproduce the
- * above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- * 3) Neither the name of "Rafael Steil" nor
- * the names of its contributors may be used to endorse
- * or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
- * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
- * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- * THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- * IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
- *
- * This file creation date: 20/05/2004 - 21:05:45
- * The JForum Project
- * http://www.jforum.net
- */
- package net.jforum.view.forum;
- import java.util.List;
- import net.jforum.Command;
- import net.jforum.SessionFacade;
- import net.jforum.dao.DataAccessDriver;
- import net.jforum.dao.PrivateMessageDAO;
- import net.jforum.dao.UserDAO;
- import net.jforum.entities.Post;
- import net.jforum.entities.PrivateMessage;
- import net.jforum.entities.PrivateMessageType;
- import net.jforum.entities.User;
- import net.jforum.entities.UserSession;
- import net.jforum.repository.SmiliesRepository;
- import net.jforum.util.I18n;
- import net.jforum.util.concurrent.Executor;
- import net.jforum.util.mail.EmailSenderTask;
- import net.jforum.util.mail.PrivateMessageSpammer;
- import net.jforum.util.preferences.ConfigKeys;
- import net.jforum.util.preferences.SystemGlobals;
- import net.jforum.util.preferences.TemplateKeys;
- import net.jforum.view.forum.common.PostCommon;
- import net.jforum.view.forum.common.ViewCommon;
- /**
- * @author Rafael Steil
- * @version $Id: PrivateMessageAction.java,v 1.43 2007/08/17 15:53:28 rafaelsteil Exp $
- */
- public class PrivateMessageAction extends Command
- {
- public void inbox()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- User user = new User();
- user.setId(SessionFacade.getUserSession().getUserId());
- List pmList = DataAccessDriver.getInstance().newPrivateMessageDAO().selectFromInbox(user);
- this.setTemplateName(TemplateKeys.PM_INBOX);
- this.context.put("inbox", true);
- this.context.put("pmList", pmList);
- this.context.put("pageTitle", I18n.getMessage("ForumBase.privateMessages")+" "+I18n.getMessage("PrivateMessage.inbox"));
- this.putTypes();
- }
- public void sentbox()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- User user = new User();
- user.setId(SessionFacade.getUserSession().getUserId());
- List pmList = DataAccessDriver.getInstance().newPrivateMessageDAO().selectFromSent(user);
- this.context.put("sentbox", true);
- this.context.put("pmList", pmList);
- this.setTemplateName(TemplateKeys.PM_SENTBOX);
- this.context.put("pageTitle", I18n.getMessage("ForumBase.privateMessages")+" "+I18n.getMessage("PrivateMessage.sentbox"));
- this.putTypes();
- }
- private void putTypes()
- {
- this.context.put("NEW", new Integer(PrivateMessageType.NEW));
- this.context.put("READ", new Integer(PrivateMessageType.READ));
- this.context.put("UNREAD", new Integer(PrivateMessageType.UNREAD));
- }
- public void send()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- User user = DataAccessDriver.getInstance().newUserDAO().selectById(
- SessionFacade.getUserSession().getUserId());
- ViewCommon.prepareUserSignature(user);
- this.sendFormCommon(user);
- }
- public void sendTo()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- User user = DataAccessDriver.getInstance().newUserDAO().selectById(
- SessionFacade.getUserSession().getUserId());
- int userId = this.request.getIntParameter("user_id");
- if (userId > 0){
- User recipient = DataAccessDriver.getInstance().newUserDAO().selectById(userId);
- this.context.put("pmRecipient", recipient);
- this.context.put("toUserId", new Integer(recipient.getId()));
- this.context.put("toUsername", recipient.getUsername());
- this.context.put("pageTitle", I18n.getMessage("PrivateMessage.title")
- + " " + I18n.getMessage("PrivateMessage.to")
- + " " + recipient.getUsername());
- }
- this.sendFormCommon(user);
- }
- private void sendFormCommon(User user)
- {
- this.setTemplateName(TemplateKeys.PM_SENDFORM);
- this.context.put("user", user);
- this.context.put("moduleName", "pm");
- this.context.put("action", "sendSave");
- this.context.put("htmlAllowed", true);
- this.context.put("attachmentsEnabled", false);
- this.context.put("maxAttachments", SystemGlobals.getValue(ConfigKeys.ATTACHMENTS_MAX_POST));
- this.context.put("attachmentsEnabled", false);
- this.context.put("maxAttachmentsSize", new Integer(0));
- this.context.put("moderationLoggingEnabled", false);
- this.context.put("smilies", SmiliesRepository.getSmilies());
- }
- public void sendSave()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- UserDAO userDao = DataAccessDriver.getInstance().newUserDAO();
- String toUserIdStr = this.request.getParameter("toUserId");
- String toUsername = this.request.getParameter("toUsername");
- int toUserId = -1;
- // If we don't have an user id, then probably the user
- // inserted the username by hand in the form's field
- if (toUserIdStr == null || "".equals(toUserIdStr.trim())) {
- List l = userDao.findByName(toUsername, true);
- if (l.size() > 0) {
- User u = (User)l.get(0);
- toUserId = u.getId();
- }
- }
- else {
- toUserId = Integer.parseInt(toUserIdStr);
- }
- // We failed to get the user id?
- if (toUserId == -1) {
- this.setTemplateName(TemplateKeys.PM_SENDSAVE_USER_NOTFOUND);
- this.context.put("message", I18n.getMessage("PrivateMessage.userIdNotFound"));
- return;
- }
- PrivateMessage pm = new PrivateMessage();
- pm.setPost(PostCommon.fillPostFromRequest());
- // Sender
- User fromUser = new User();
- fromUser.setId(SessionFacade.getUserSession().getUserId());
- pm.setFromUser(fromUser);
- // Recipient
- User toUser = userDao.selectById(toUserId);
- pm.setToUser(toUser);
- boolean preview = ("1".equals(this.request.getParameter("preview")));
- if (!preview) {
- DataAccessDriver.getInstance().newPrivateMessageDAO().send(pm);
- this.setTemplateName(TemplateKeys.PM_SENDSAVE);
- this.context.put("message", I18n.getMessage("PrivateMessage.messageSent",
- new String[] { this.request.getContextPath()
- + "/pm/inbox"
- + SystemGlobals.getValue(ConfigKeys.SERVLET_EXTENSION)}));
- // If the target user if in the forum, then increments its
- // private messate count
- String sid = SessionFacade.isUserInSession(toUserId);
- if (sid != null) {
- UserSession us = SessionFacade.getUserSession(sid);
- us.setPrivateMessages(us.getPrivateMessages() + 1);
- }
- if (toUser.getEmail() != null
- && toUser.getEmail().trim().length() > 0
- && SystemGlobals.getBoolValue(ConfigKeys.MAIL_NOTIFY_ANSWERS)) {
- Executor.execute(new EmailSenderTask(new PrivateMessageSpammer(toUser)));
- }
- }
- else {
- this.context.put("preview", true);
- this.context.put("post", pm.getPost());
- Post postPreview = new Post(pm.getPost());
- this.context.put("postPreview", PostCommon.preparePostForDisplay(postPreview));
- this.context.put("pm", pm);
- this.send();
- }
- }
- public void findUser()
- {
- boolean showResult = false;
- String username = this.request.getParameter("username");
- if (username != null && !username.equals("")) {
- List namesList = DataAccessDriver.getInstance().newUserDAO().findByName(username, false);
- this.context.put("namesList", namesList);
- showResult = true;
- }
- this.setTemplateName(TemplateKeys.PM_FIND_USER);
- this.context.put("username", username);
- this.context.put("showResult", showResult);
- }
- public void read()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- int id = this.request.getIntParameter("id");
- PrivateMessage pm = new PrivateMessage();
- pm.setId(id);
- pm = DataAccessDriver.getInstance().newPrivateMessageDAO().selectById(pm);
- // Don't allow the read of messages that don't belongs
- // to the current user
- UserSession us = SessionFacade.getUserSession();
- int userId = us.getUserId();
- if (pm.getToUser().getId() == userId || pm.getFromUser().getId() == userId) {
- pm.getPost().setText(PostCommon.preparePostForDisplay(pm.getPost()).getText());
- // Update the message status, if needed
- if (pm.getType() == PrivateMessageType.NEW) {
- pm.setType(PrivateMessageType.READ);
- DataAccessDriver.getInstance().newPrivateMessageDAO().updateType(pm);
- int totalMessages = us.getPrivateMessages();
- if (totalMessages > 0) {
- us.setPrivateMessages(totalMessages - 1);
- }
- }
- User u = pm.getFromUser();
- ViewCommon.prepareUserSignature(u);
- this.context.put("pm", pm);
- this.setTemplateName(TemplateKeys.PM_READ);
- }
- else {
- this.setTemplateName(TemplateKeys.PM_READ_DENIED);
- this.context.put("message", I18n.getMessage("PrivateMessage.readDenied"));
- }
- }
- public void review()
- {
- this.read();
- this.setTemplateName(TemplateKeys.PM_READ_REVIEW);
- }
- public void delete()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- String ids[] = this.request.getParameterValues("id");
- if (ids != null && ids.length > 0) {
- PrivateMessage[] deleteList = new PrivateMessage[ids.length];
- int unreadCount = 0;
- PrivateMessageDAO dao = DataAccessDriver.getInstance().newPrivateMessageDAO();
- for (int i = 0; i < ids.length; i++) {
- PrivateMessage pm = dao.selectById(new PrivateMessage(Integer.parseInt(ids[i])));
- if (pm.getType() == PrivateMessageType.NEW) {
- unreadCount++;
- }
- deleteList[i] = pm;
- }
- UserSession userSession = SessionFacade.getUserSession();
- dao.delete(deleteList, userSession.getUserId());
- // Subtracts the number of delete messages
- int total = userSession.getPrivateMessages() - unreadCount;
- if (total < 0) {
- total = 0;
- }
- userSession.setPrivateMessages(total);
- }
- this.setTemplateName(TemplateKeys.PM_DELETE);
- this.context.put("message", I18n.getMessage("PrivateMessage.deleteDone",
- new String[] { this.request.getContextPath()
- + "/pm/inbox"
- + SystemGlobals.getValue(ConfigKeys.SERVLET_EXTENSION) }));
- }
- public void reply()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- int id = this.request.getIntParameter("id");
- PrivateMessage pm = new PrivateMessage();
- pm.setId(id);
- pm = DataAccessDriver.getInstance().newPrivateMessageDAO().selectById(pm);
- int userId = SessionFacade.getUserSession().getUserId();
- if (pm.getToUser().getId() != userId && pm.getFromUser().getId() != userId) {
- this.setTemplateName(TemplateKeys.PM_READ_DENIED);
- this.context.put("message", I18n.getMessage("PrivateMessage.readDenied"));
- return;
- }
- pm.getPost().setSubject(I18n.getMessage("PrivateMessage.replyPrefix") + pm.getPost().getSubject());
- this.context.put("pm", pm);
- this.context.put("pmReply", true);
- this.sendFormCommon(DataAccessDriver.getInstance().newUserDAO().selectById(
- SessionFacade.getUserSession().getUserId()));
- }
- public void quote()
- {
- if (!SessionFacade.isLogged()) {
- this.setTemplateName(ViewCommon.contextToLogin());
- return;
- }
- int id = this.request.getIntParameter("id");
- PrivateMessage pm = new PrivateMessage();
- pm.setId(id);
- pm = DataAccessDriver.getInstance().newPrivateMessageDAO().selectById(pm);
- int userId = SessionFacade.getUserSession().getUserId();
- if (pm.getToUser().getId() != userId && pm.getFromUser().getId() != userId) {
- this.setTemplateName(TemplateKeys.PM_READ_DENIED);
- this.context.put("message", I18n.getMessage("PrivateMessage.readDenied"));
- return;
- }
- pm.getPost().setSubject(I18n.getMessage("PrivateMessage.replyPrefix") + pm.getPost().getSubject());
- this.sendFormCommon(DataAccessDriver.getInstance().newUserDAO().selectById(userId));
- this.context.put("quote", "true");
- this.context.put("quoteUser", pm.getFromUser().getUsername());
- this.context.put("post", pm.getPost());
- this.context.put("pm", pm);
- }
- /**
- * @see net.jforum.Command#list()
- */
- public void list()
- {
- this.inbox();
- }
- }