summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristophe Romain <chris.romain@gmail.com>2015-07-22 07:58:34 +0200
committerChristophe Romain <chris.romain@gmail.com>2015-07-22 07:58:34 +0200
commitb47a27f3acf46fffe5e141b8baf412922651730c (patch)
tree84972e4fca19b0bea4474f4ae0a3d4dc013f497c /src
parentMerge pull request #632 from weiss/increase-max-ack-queue (diff)
parentPubSub: Check for node subscription of bare JID (diff)
Merge pull request #608 from weiss/bare-jid-subscription
PubSub: Check for node subscription of bare JID
Diffstat (limited to 'src')
-rw-r--r--src/node_hometree.erl9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/node_hometree.erl b/src/node_hometree.erl
index 296fbdde..01eeccdd 100644
--- a/src/node_hometree.erl
+++ b/src/node_hometree.erl
@@ -373,7 +373,8 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload) ->
end,
Affiliation = GenState#pubsub_state.affiliation,
Subscribed = case PublishModel of
- subscribers -> is_subscribed(SubState#pubsub_state.subscriptions);
+ subscribers -> is_subscribed(GenState#pubsub_state.subscriptions) orelse
+ is_subscribed(SubState#pubsub_state.subscriptions);
_ -> undefined
end,
if not ((PublishModel == open) or
@@ -738,8 +739,10 @@ get_items(Nidx, JID, AccessModel, PresenceSubscription, RosterGroup, _SubId, _RS
GenState = get_state(Nidx, GenKey),
SubState = get_state(Nidx, SubKey),
Affiliation = GenState#pubsub_state.affiliation,
- Subscriptions = SubState#pubsub_state.subscriptions,
- Whitelisted = can_fetch_item(Affiliation, Subscriptions),
+ BareSubscriptions = GenState#pubsub_state.subscriptions,
+ FullSubscriptions = SubState#pubsub_state.subscriptions,
+ Whitelisted = can_fetch_item(Affiliation, BareSubscriptions) orelse
+ can_fetch_item(Affiliation, FullSubscriptions),
if %%SubId == "", ?? ->
%% Entity has multiple subscriptions to the node but does not specify a subscription ID
%{error, ?ERR_EXTENDED(?ERR_BAD_REQUEST, "subid-required")};