summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2009-01-11 01:45:24 +0000
committerChristophe Romain <christophe.romain@process-one.net>2009-01-11 01:45:24 +0000
commit8090011126fdabe36fdd0b9c2eea23c6270afa9c (patch)
tree94b8df9b9e1c55f14912ab5e9b4797dd1527c7b3
parentfix owners cache and fix unsubscribe permissions (EJAB-840) (diff)
fix previous partial patch (EJAB-840)
SVN Revision: 1799
-rw-r--r--src/mod_pubsub/node_default.erl12
1 files changed, 2 insertions, 10 deletions
diff --git a/src/mod_pubsub/node_default.erl b/src/mod_pubsub/node_default.erl
index 3300b578..a92c49aa 100644
--- a/src/mod_pubsub/node_default.erl
+++ b/src/mod_pubsub/node_default.erl
@@ -286,7 +286,6 @@ subscribe_node(Host, Node, Sender, Subscriber, AccessModel,
_ -> get_state(Host, Node, SubKey)
end,
Affiliation = GenState#pubsub_state.affiliation,
- Subscription = SubState#pubsub_state.subscription,
Whitelisted = lists:member(Affiliation, [member, publisher, owner]),
if
not Authorized ->
@@ -295,7 +294,7 @@ subscribe_node(Host, Node, Sender, Subscriber, AccessModel,
Affiliation == outcast ->
%% Requesting entity is blocked
{error, ?ERR_FORBIDDEN};
- Subscription == pending ->
+ SubState#pubsub_state.subscription == pending ->
%% Requesting entity has pending subscription
{error, ?ERR_EXTENDED(?ERR_NOT_AUTHORIZED, "pending-subscription")};
(AccessModel == presence) and (not PresenceSubscription) ->
@@ -350,19 +349,12 @@ subscribe_node(Host, Node, Sender, Subscriber, AccessModel,
unsubscribe_node(Host, Node, Sender, Subscriber, _SubId) ->
SubKey = jlib:jid_tolower(Subscriber),
GenKey = jlib:jid_remove_resource(SubKey),
- SenderKey = jlib:jid_tolower(jlib:jid_remove_resource(Sender)),
+ Authorized = (jlib:jid_tolower(jlib:jid_remove_resource(Sender)) == GenKey),
GenState = get_state(Host, Node, GenKey),
SubState = case SubKey of
GenKey -> GenState;
_ -> get_state(Host, Node, SubKey)
end,
- Authorized = case SenderKey of
- GenKey ->
- true;
- _ ->
- SenderState = get_state(Host, Node, SenderKey),
- SenderState#pubsub_state.affiliation == owner
- end,
if
%% Entity did not specify SubID
%%SubID == "", ?? ->