diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2009-01-11 01:45:24 +0000 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2009-01-11 01:45:24 +0000 |
commit | 8090011126fdabe36fdd0b9c2eea23c6270afa9c (patch) | |
tree | 94b8df9b9e1c55f14912ab5e9b4797dd1527c7b3 | |
parent | fix 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.erl | 12 |
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 == "", ?? -> |