]> granicus.if.org Git - ejabberd/commitdiff
fix previous partial patch (EJAB-840)
authorChristophe Romain <christophe.romain@process-one.net>
Sun, 11 Jan 2009 01:45:24 +0000 (01:45 +0000)
committerChristophe Romain <christophe.romain@process-one.net>
Sun, 11 Jan 2009 01:45:24 +0000 (01:45 +0000)
SVN Revision: 1799

src/mod_pubsub/node_default.erl

index 3300b57803f102f59c1d8b1f4197e061b6e78374..a92c49aa881ef3effa8835e3ae4b5cc95e4cfe2f 100644 (file)
@@ -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 == "", ?? ->