View Javadoc

1   package net.sourceforge.blogentis.modules.actions;
2   
3   //-----------------------------------------------------------------------
4   //Blogentis - a blog publishing platform.
5   //Copyright (C) 2004 Tassos Bassoukos <abassouk@gmail.com>
6   //
7   //This library is free software; you can redistribute it and/or
8   //modify it under the terms of the GNU Lesser General Public
9   //License as published by the Free Software Foundation; either
10  //version 2.1 of the License, or (at your option) any later version.
11  //
12  //This library is distributed in the hope that it will be useful,
13  //but WITHOUT ANY WARRANTY; without even the implied warranty of
14  //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  //Lesser General Public License for more details.
16  //
17  //You should have received a copy of the GNU Lesser General Public
18  //License along with this library; if not, write to the Free Software
19  //Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  //-----------------------------------------------------------------------
21  //
22  //$Id: CommentRemove.java,v 1.3 2004/11/02 00:57:25 tassos Exp $
23  //
24  
25  import net.sourceforge.blogentis.om.Blog;
26  import net.sourceforge.blogentis.om.Comment;
27  import net.sourceforge.blogentis.om.CommentPeer;
28  import net.sourceforge.blogentis.plugins.BlogPluginService;
29  import net.sourceforge.blogentis.plugins.base.ICommentExtensionPoint;
30  import net.sourceforge.blogentis.turbine.BlogParameterParser;
31  import net.sourceforge.blogentis.turbine.BlogRunData;
32  import net.sourceforge.blogentis.utils.tools.SecurityTool;
33  
34  import org.apache.turbine.modules.actions.VelocitySecureAction;
35  import org.apache.turbine.util.RunData;
36  import org.apache.velocity.context.Context;
37  
38  public class CommentRemove
39          extends VelocitySecureAction {
40      public void doPerform(RunData data, Context context)
41              throws Exception {
42          BlogParameterParser bparam = (BlogParameterParser)(data.getParameters());
43          Comment c = CommentPeer.retrieveByPK(bparam.getInt("comment", -1));
44          ICommentExtensionPoint cext = (ICommentExtensionPoint)BlogPluginService
45                  .locateExtensionPoint(bparam.getBlog(),
46                                        ICommentExtensionPoint.class);
47          if (cext != null)
48              cext.commentRemoved((BlogRunData)data, c);
49          CommentPeer.doDelete(c);
50      }
51  
52      protected boolean isAuthorized(RunData data)
53              throws Exception {
54          BlogParameterParser bparam = (BlogParameterParser)(data.getParameters());
55          Blog blog = bparam.getBlog();
56          if (blog == null)
57              return false; // we allways post a comment to a blog.
58          if (data.getACL() == null)
59              return false;
60          if (new SecurityTool((BlogRunData)data).getIsBlogEditor())
61              return false;
62          int commentId = bparam.getInt("comment", -1);
63          if (commentId == -1)
64              return false;
65          Comment comment = CommentPeer.retrieveByPK(commentId);
66          if (comment == null
67                  || comment.getPost().getBlogId() != blog.getBlogId())
68              return false;
69          return true;
70      }
71  
72  }