mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-22 16:20:52 +01:00
Fix to push new contacts to connected users
This commit is contained in:
parent
cbf06b4785
commit
75053cf40d
@ -414,6 +414,7 @@ process_subscription(Direction, User, Server, JID, _Type, Acc) ->
|
|||||||
Acc
|
Acc
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
%% @spec(Host::string) -> [Group::string()]
|
||||||
list_groups(Host) ->
|
list_groups(Host) ->
|
||||||
mnesia:dirty_select(
|
mnesia:dirty_select(
|
||||||
sr_group,
|
sr_group,
|
||||||
@ -422,6 +423,9 @@ list_groups(Host) ->
|
|||||||
[{'==', '$2', Host}],
|
[{'==', '$2', Host}],
|
||||||
['$1']}]).
|
['$1']}]).
|
||||||
|
|
||||||
|
%% @spec(Host::string) -> [Group::string()]
|
||||||
|
groups_with_opts(HostB) when is_binary(HostB) ->
|
||||||
|
groups_with_opts(binary_to_list(HostB));
|
||||||
groups_with_opts(Host) ->
|
groups_with_opts(Host) ->
|
||||||
Gs = mnesia:dirty_select(
|
Gs = mnesia:dirty_select(
|
||||||
sr_group,
|
sr_group,
|
||||||
@ -500,6 +504,8 @@ get_group_opt(Host, Group, Opt, Default) ->
|
|||||||
end.
|
end.
|
||||||
|
|
||||||
%% @spec(Host::string(), Group::string()) -> [{Username::binary(), Server::binary()}]
|
%% @spec(Host::string(), Group::string()) -> [{Username::binary(), Server::binary()}]
|
||||||
|
get_group_users(HostB, Group) when is_binary(HostB) ->
|
||||||
|
get_group_users(binary_to_list(HostB), Group);
|
||||||
get_group_users(Host, Group) ->
|
get_group_users(Host, Group) ->
|
||||||
case get_group_opt(Host, Group, all_users, false) of
|
case get_group_opt(Host, Group, all_users, false) of
|
||||||
true ->
|
true ->
|
||||||
@ -532,7 +538,10 @@ get_group_explicit_users(Host, Group) ->
|
|||||||
get_group_name(Host, Group) ->
|
get_group_name(Host, Group) ->
|
||||||
get_group_opt(Host, Group, name, Group).
|
get_group_opt(Host, Group, name, Group).
|
||||||
|
|
||||||
%% Get list of names of groups that have @all@ in the memberlist
|
%% @spec(Host::string)
|
||||||
|
%% @doc Get list of names of groups that have @all@ in the memberlist
|
||||||
|
get_special_users_groups(HostB) when is_binary(HostB)->
|
||||||
|
get_special_users_groups(binary_to_list(HostB));
|
||||||
get_special_users_groups(Host) ->
|
get_special_users_groups(Host) ->
|
||||||
lists:filter(
|
lists:filter(
|
||||||
fun(Group) ->
|
fun(Group) ->
|
||||||
@ -739,7 +748,7 @@ push_item(User, Server, From, Item) ->
|
|||||||
fun(Resource) ->
|
fun(Resource) ->
|
||||||
JID = exmpp_jid:make(User, Server, Resource),
|
JID = exmpp_jid:make(User, Server, Resource),
|
||||||
ejabberd_router:route(JID, JID, Stanza)
|
ejabberd_router:route(JID, JID, Stanza)
|
||||||
end, ejabberd_sm:get_user_resources(list_to_binary(User), list_to_binary(Server))).
|
end, ejabberd_sm:get_user_resources(User, Server)).
|
||||||
|
|
||||||
push_roster_item(User, Server, ContactU, ContactS, GroupName, Subscription) ->
|
push_roster_item(User, Server, ContactU, ContactS, GroupName, Subscription) ->
|
||||||
Item = #roster{usj = {User, Server, {ContactU, ContactS, ""}},
|
Item = #roster{usj = {User, Server, {ContactU, ContactS, ""}},
|
||||||
|
Loading…
Reference in New Issue
Block a user