aboutsummaryrefslogtreecommitdiff
path: root/src/mod_pubsub/mod_pubsub_odbc.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_pubsub/mod_pubsub_odbc.erl')
-rw-r--r--src/mod_pubsub/mod_pubsub_odbc.erl7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mod_pubsub/mod_pubsub_odbc.erl b/src/mod_pubsub/mod_pubsub_odbc.erl
index 63e2277ad..04fa39c36 100644
--- a/src/mod_pubsub/mod_pubsub_odbc.erl
+++ b/src/mod_pubsub/mod_pubsub_odbc.erl
@@ -2270,10 +2270,15 @@ set_affiliations(Host, Node, From, EntitiesEls) ->
Action = fun(#pubsub_node{type = Type, id = NodeId}) ->
case lists:member(Owner, node_owners_call(Type, NodeId)) of
true ->
+ OwnerJID = exmpp_jid:make(Owner),
+ FilteredEntities = case Owners of
+ [Owner] -> [E || E <- Entities, element(1, E) =/= OwnerJID];
+ _ -> Entities
+ end,
lists:foreach(
fun({JID, Affiliation}) ->
node_call(Type, set_affiliation, [NodeId, JID, Affiliation])
- end, Entities),
+ end, FilteredEntities),
{result, []};
_ ->
{error, ?ERR_FORBIDDEN}