From: Badlop Date: Fri, 4 Nov 2016 17:44:15 +0000 (+0100) Subject: Support several groups separated by ; in add_rosteritem command X-Git-Tag: 16.12~25^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bd060bc1bb0b5078ddc00189556256418cac1a6f;p=ejabberd Support several groups separated by ; in add_rosteritem command --- diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 8ce11b872..48732ea35 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -377,6 +377,7 @@ get_commands_spec() -> #ejabberd_commands{name = add_rosteritem, tags = [roster], desc = "Add an item to a user's roster (supports ODBC)", + longdesc = "Group can be several groups separated by ; for example: \"g1;g2;g3\"", module = ?MODULE, function = add_rosteritem, args = [{localuser, binary}, {localserver, binary}, {user, binary}, {server, binary}, @@ -1204,11 +1205,13 @@ push_roster_item(LU, LS, R, U, S, Action) -> ejabberd_router:route(jid:remove_resource(LJID), LJID, ResIQ). build_roster_item(U, S, {add, Nick, Subs, Group}) -> + GNames = binary:split(Group,<<";">>, [global]), + GroupEls = [{xmlel, <<"group">>, [], [{xmlcdata, GName}]} || GName <- GNames], {xmlel, <<"item">>, [{<<"jid">>, jid:to_string(jid:make(U, S, <<>>))}, {<<"name">>, Nick}, {<<"subscription">>, Subs}], - [{xmlel, <<"group">>, [], [{xmlcdata, Group}]}] + GroupEls }; build_roster_item(U, S, remove) -> {xmlel, <<"item">>,