1 package net.sourceforge.blogentis.modules.actions;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
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 }