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.security.app.container;
35
36 import info.magnolia.security.app.util.UsersWorkspaceUtil;
37 import info.magnolia.ui.workbench.definition.WorkbenchDefinition;
38 import info.magnolia.ui.workbench.tree.HierarchicalJcrContainer;
39
40 import javax.jcr.Item;
41 import javax.jcr.Node;
42 import javax.jcr.RepositoryException;
43
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
46
47
48
49
50
51 public class RoleContainer extends HierarchicalJcrContainer {
52
53 private static final Logger log = LoggerFactory.getLogger(RoleContainer.class);
54
55 public RoleContainer(WorkbenchDefinition workbenchDefinition) {
56 super(workbenchDefinition);
57 }
58
59 @Override
60 public boolean moveItem(Item source, Item target) {
61 try {
62 String pathBefore = source.getPath();
63 if (super.moveItem(source, target)) {
64 if (source.isNode()) {
65 UsersWorkspaceUtil.updateAcls((Node) source, pathBefore);
66 source.getSession().save();
67 }
68 return true;
69 }
70 } catch (RepositoryException e) {
71 log.error("Error while moving node", e);
72 }
73 return false;
74 }
75
76 @Override
77 public boolean moveItemBefore(Item source, Item target) {
78 try {
79 String pathBefore = source.getPath();
80 if (super.moveItemBefore(source, target)) {
81 if (source.isNode()) {
82 UsersWorkspaceUtil.updateAcls((Node) source, pathBefore);
83 source.getSession().save();
84 }
85 return true;
86 }
87 } catch (RepositoryException e) {
88 log.error("Error while moving node", e);
89 }
90 return false;
91 }
92
93 @Override
94 public boolean moveItemAfter(Item source, Item target) {
95 try {
96 String pathBefore = source.getPath();
97 if (super.moveItemAfter(source, target)) {
98 if (source.isNode()) {
99 UsersWorkspaceUtil.updateAcls((Node) source, pathBefore);
100 source.getSession().save();
101 }
102 return true;
103 }
104 } catch (RepositoryException e) {
105 log.error("Error while moving node", e);
106 }
107 return false;
108 }
109 }