summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Romain <christophe.romain@process-one.net>2009-01-11 04:08:10 +0000
committerChristophe Romain <christophe.romain@process-one.net>2009-01-11 04:08:10 +0000
commit1ac9246a498027a190b389a70e46429aa83d96f0 (patch)
treee307b709ef71425f716483d0901cfcce06e84460
parentfix previous partial patch (EJAB-840) (diff)
prevent unauthorized entity to gain none-affiliation for given entity
SVN Revision: 1802
-rw-r--r--ChangeLog3
-rw-r--r--src/mod_pubsub/node_default.erl6
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 7ff49b08..c0b59c9f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,9 @@
permissions (thanks to Andy Skelton)(EJAB-840)
* src/mod_pubsub/node_default.erl: Likewise
+ * src/mod_pubsub/node_default.erl: prevent unauthorized entity to gain
+ none-affiliation for given entity (EJAB-840)
+
2009-01-10 Christophe Romain <christophe.romain@process-one.net>
* src/mod_pubsub/node_default.erl: fix unsubscription of full jid
diff --git a/src/mod_pubsub/node_default.erl b/src/mod_pubsub/node_default.erl
index a92c49aa..e1d4fd6e 100644
--- a/src/mod_pubsub/node_default.erl
+++ b/src/mod_pubsub/node_default.erl
@@ -356,6 +356,9 @@ unsubscribe_node(Host, Node, Sender, Subscriber, _SubId) ->
_ -> get_state(Host, Node, SubKey)
end,
if
+ %% Requesting entity is prohibited from unsubscribing entity
+ not Authorized ->
+ {error, ?ERR_FORBIDDEN};
%% Entity did not specify SubID
%%SubID == "", ?? ->
%% {error, ?ERR_EXTENDED(?ERR_BAD_REQUEST, "subid-required")};
@@ -365,9 +368,6 @@ unsubscribe_node(Host, Node, Sender, Subscriber, _SubId) ->
%% Requesting entity is not a subscriber
SubState#pubsub_state.subscription == none ->
{error, ?ERR_EXTENDED(?ERR_UNEXPECTED_REQUEST, "not-subscribed")};
- %% Requesting entity is prohibited from unsubscribing entity
- not Authorized ->
- {error, ?ERR_FORBIDDEN};
%% Was just subscriber, remove the record
SubState#pubsub_state.affiliation == none ->
del_state(SubState#pubsub_state.stateid),