1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.forum.admin;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.gui.control.Hidden;
38 import info.magnolia.cms.gui.control.Tree;
39 import info.magnolia.cms.security.User;
40 import info.magnolia.context.MgnlContext;
41 import info.magnolia.freemarker.FreemarkerUtil;
42 import info.magnolia.module.forum.DefaultForumManager;
43
44 import javax.jcr.RepositoryException;
45
46 import org.slf4j.Logger;
47 import org.slf4j.LoggerFactory;
48
49
50
51
52
53
54
55 public class ForumTree extends Tree {
56
57 private static final Logger log = LoggerFactory.getLogger(ForumTree.class);
58
59 public ForumTree(String name, String repository) {
60 super(name, repository);
61 }
62
63 @Override
64 public String getHtmlFooter() {
65 final String str = super.getHtmlFooter();
66 return str + FreemarkerUtil.process(this, "Footer", "html");
67 }
68
69 @Override
70 protected void onGetHtmlOfSingleItem(StringBuffer html, Content parentNode, String itemType, Object item, String idPre) {
71
72 if (item instanceof Content) {
73 final Content node = (Content) item;
74 final String canModerateStr = canModerate(node);
75
76 html.append(new Hidden(idPre + "_PermissionModerate", canModerateStr).getHtml());
77 }
78 }
79
80 public String getRootModerationAllowed() throws RepositoryException {
81 final Content root = getHierarchyManager().getContent(this.getPath());
82 return canModerate(root);
83 }
84
85
86 protected String canModerate(Content node) {
87
88
89
90
91 User currentUser = MgnlContext.getUser();
92 if(currentUser.hasRole(DefaultForumManager.ROLE_FORUM_ALL_MODERATOR) || currentUser.hasRole(DefaultForumManager.ROLE_FORUM_ALL_ADMIN)){
93 return Boolean.toString(Boolean.TRUE);
94 }else{
95 return Boolean.toString(Boolean.FALSE);
96 }
97
98 }
99 }