diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2017-12-13 18:59:06 +0100 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2017-12-13 18:59:06 +0100 |
commit | 5968bc9318bec80aef1c31d46d247c13bdbc4c0e (patch) | |
tree | 572b4d0c6946ef3ef282f0385f24f587b75b9b67 | |
parent | Merge pull request #2158 from bowlofeggs/su-with-sh (diff) |
Send last PEP items to owner on initial presence
Closes #2112.
-rw-r--r-- | src/mod_caps.erl | 4 | ||||
-rw-r--r-- | src/mod_pubsub.erl | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/mod_caps.erl b/src/mod_caps.erl index edc93bbf..6021da25 100644 --- a/src/mod_caps.erl +++ b/src/mod_caps.erl @@ -206,8 +206,10 @@ c2s_presence_in(C2SState, {Subscription, _} = ejabberd_hooks:run_fold( roster_get_jid_info, To#jid.lserver, {none, []}, [To#jid.luser, To#jid.lserver, From]), + ToSelf = (From#jid.luser == To#jid.luser) + and (From#jid.lserver == To#jid.lserver), Insert = (Type == available) - and ((Subscription == both) or (Subscription == to)), + and ((Subscription == both) or (Subscription == to) or ToSelf), Delete = (Type == unavailable) or (Type == error), if Insert or Delete -> LFrom = jid:tolower(From), diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index efa22305..bedbd349 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -550,6 +550,9 @@ disco_items(Host, Node, From) -> %% -spec caps_add(jid(), jid(), [binary()]) -> ok. +caps_add(JID, JID, _Features) -> + %% Send the owner his last PEP items. + send_last_pep(JID, JID); caps_add(#jid{lserver = S1} = From, #jid{lserver = S2} = To, _Features) when S1 =/= S2 -> %% When a remote contact goes online while the local user is offline, the |