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.dialog.field;
35
36 import info.magnolia.jcr.util.NodeTypes;
37 import info.magnolia.objectfactory.Components;
38 import info.magnolia.ui.api.context.UiContext;
39 import info.magnolia.ui.api.i18n.I18NAuthoringSupport;
40 import info.magnolia.ui.form.field.definition.FieldDefinition;
41 import info.magnolia.ui.form.field.factory.AbstractFieldFactory;
42 import info.magnolia.ui.vaadin.integration.jcr.AbstractJcrNodeAdapter;
43 import info.magnolia.ui.vaadin.integration.jcr.JcrNewNodeAdapter;
44 import info.magnolia.ui.vaadin.integration.jcr.JcrNodeAdapter;
45
46 import javax.jcr.Node;
47 import javax.jcr.RepositoryException;
48
49 import com.vaadin.v7.data.Item;
50
51
52
53
54
55
56
57 public abstract class AbstractAccessFieldFactory<D extends FieldDefinition, T extends AccessControlList> extends AbstractFieldFactory<D, T> {
58
59 protected AbstractAccessFieldFactory(D definition, Item relatedFieldItem, UiContext uiContext, I18NAuthoringSupport i18nAuthoringSupport) {
60 super(definition, relatedFieldItem, uiContext, i18nAuthoringSupport);
61 }
62
63
64
65
66 @Deprecated
67 protected AbstractAccessFieldFactory(D definition, Item relatedFieldItem) {
68 this(definition, relatedFieldItem, null, Components.getComponent(I18NAuthoringSupport.class));
69 }
70
71
72
73
74 @Deprecated
75 protected AbstractJcrNodeAdapter getOrAddAclItem(JcrNodeAdapter roleItem, String aclName) throws RepositoryException {
76 AbstractJcrNodeAdapter aclItem = roleItem.getChild(aclName);
77 if (aclItem == null) {
78 Node roleNode = roleItem.getJcrItem();
79 if (roleItem instanceof JcrNewNodeAdapter || !roleNode.hasNode(aclName)) {
80 aclItem = new JcrNewNodeAdapter(roleNode, NodeTypes.ContentNode.NAME);
81 aclItem.setNodeName(aclName);
82 roleItem.addChild(aclItem);
83 } else {
84 Node aclNode = roleNode.getNode(aclName);
85 aclItem = new JcrNodeAdapter(aclNode);
86 roleItem.addChild(aclItem);
87 }
88 }
89 return aclItem;
90 }
91
92
93
94
95 @Deprecated
96 protected JcrNewNodeAdapter addAclEntryItem(AbstractJcrNodeAdapter aclItem) throws RepositoryException {
97 JcrNewNodeAdapter newItem = new JcrNewNodeAdapter(aclItem.getJcrItem(), NodeTypes.ContentNode.NAME);
98 newItem.setNodeName(getUniqueNodeNameForChild(aclItem));
99 aclItem.addChild(newItem);
100 return newItem;
101 }
102
103
104
105
106 @Deprecated
107 protected String getUniqueNodeNameForChild(AbstractJcrNodeAdapter parentItem) throws RepositoryException {
108
109
110
111 Node parentNode = null;
112 if (!(parentItem instanceof JcrNewNodeAdapter)) {
113 parentNode = parentItem.getJcrItem();
114 }
115
116 int newNodeName = 0;
117 while (true) {
118 if (parentItem.getChild(String.valueOf(newNodeName)) != null) {
119 newNodeName++;
120 continue;
121 }
122 if (parentNode != null && parentNode.hasNode(String.valueOf(newNodeName))) {
123 newNodeName++;
124 continue;
125 }
126 break;
127 }
128
129 return String.valueOf(newNodeName);
130 }
131 }