Skip to content

Commit ddf492f

Browse files
author
Lloyd Watkin
committed
Fix for issue-101. Closes #101.
1 parent 2430f23 commit ddf492f

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/main/java/org/buddycloud/channelserver/channel/node/configuration/Helper.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,21 @@
1717
public class Helper {
1818
private HashMap<String, Field> elements;
1919
private Factory fieldFactory;
20+
private boolean allowOwner;
2021

2122
public static final String FORM_TYPE = "http://jabber.org/protocol/pubsub#node_config";
2223
private static final String ELEMENT_NOT_FOUND = "Required XMPP element not found";
2324

2425
private static final Logger LOGGER = Logger.getLogger(Helper.class);
2526

27+
public Helper(boolean allowOwner) {
28+
this.allowOwner = true;
29+
}
30+
31+
public Helper() {
32+
this.allowOwner = false;
33+
}
34+
2635
public void parse(IQ request) throws NodeConfigurationException {
2736
try {
2837
parseConfiguration(getConfigurationValues(request));
@@ -39,7 +48,6 @@ public void parseEventUpdate(Message request) throws NodeConfigurationException
3948
try {
4049
parseConfiguration(getConfigurationValuesFromEvent(request));
4150
} catch (NullPointerException e) {
42-
e.printStackTrace();
4351
LOGGER.debug(e);
4452
throw new NodeConfigurationException(ELEMENT_NOT_FOUND);
4553
} catch (ConfigurationFieldException e) {
@@ -98,6 +106,7 @@ private void parseConfiguration(List<FormField> configurationValues) {
98106
if (configurationValues.isEmpty()) {
99107
return;
100108
}
109+
getFieldFactory().setAllowOwner(this.allowOwner);
101110
for (FormField configurationValue : configurationValues) {
102111
Field field = getFieldFactory().create(configurationValue.getVariable(),
103112
configurationValue.getFirstValue());

src/main/java/org/buddycloud/channelserver/channel/node/configuration/field/Factory.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22

33
public class Factory
44
{
5+
private boolean allowOwner = false;
6+
7+
public void setAllowOwner(boolean allowOwner) {
8+
this.allowOwner = allowOwner;
9+
}
10+
511
public Field create(String type, String value)
612
{
713
if ((null == type) || (null == value)) {
814
throw new ConfigurationFieldException();
915
}
10-
if (type.equals("pubsub#owner")) {
16+
if (type.equals("pubsub#owner") && (false == this.allowOwner)) {
1117
throw new ConfigurationFieldException();
1218
} else if (type.equals(ChannelTitle.FIELD_NAME)) {
1319
ChannelTitle field = new ChannelTitle();

src/main/java/org/buddycloud/channelserver/packetprocessor/iq/namespace/discoinfo/DiscoResult.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class DiscoResult implements PacketProcessor<IQ> {
2323

2424
private FederatedQueueManager federatedQueueManager;
2525
private ChannelManager channelManager;
26-
private Helper helper = new Helper();
26+
private Helper helper = new Helper(true);
2727

2828
public DiscoResult(ChannelManager channelManager,
2929
FederatedQueueManager federatedQueueManager) {

0 commit comments

Comments
 (0)