diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-12-29 20:45:58 -0200 |
commit | 97e689213ff4e829f251af526ed4e796a3cc2b71 (patch) | |
tree | b04d03ec56305041216b72328fc9b5afde27bc76 /mod/beechat/classes/BeechatSync.php | |
parent | 0ab6351abb7a602d96c62b0ad35413c88113a6cf (diff) | |
parent | 69e2d8c5d8732042c9319aef1fdea45a82b63e42 (diff) | |
download | elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.gz elgg-97e689213ff4e829f251af526ed4e796a3cc2b71.tar.bz2 |
Merge branch 'master' into saravea
Conflicts:
.gitmodules
mod/admins
mod/assemblies
mod/audio_html5
mod/beechat
mod/crud
mod/elgg-activitystreams
mod/elggman
mod/elggpg
mod/favorites
mod/federated-objects
mod/friendly_time
mod/group_alias
mod/group_operators
mod/languages
mod/lightpics
mod/openid_client
mod/spotlight
mod/suicide
mod/tasks
mod/videolist
Diffstat (limited to 'mod/beechat/classes/BeechatSync.php')
-rw-r--r-- | mod/beechat/classes/BeechatSync.php | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/mod/beechat/classes/BeechatSync.php b/mod/beechat/classes/BeechatSync.php new file mode 100644 index 000000000..e0a2f90b8 --- /dev/null +++ b/mod/beechat/classes/BeechatSync.php @@ -0,0 +1,37 @@ +<?php + +class BeechatSync { + static function onFriendCreate($event, $object_type, $relationship) { + if ($relationship->relationship == 'friendrequest') { + elgg_load_library('elgg:beechat'); + $friend = get_entity($relationship->guid_two); + // create friend request + ejabberd_friend_request(elgg_get_logged_in_user_entity(), $friend); + } + } + static function onFriendDelete($event, $object_type, $relationship) { + if ($relationship->relationship == 'friendrequest') { + elgg_load_library('elgg:beechat'); + $subject = get_entity($relationship->guid_two); + // here friend is guid_one because is the one initiating + $friend = get_entity($relationship->guid_one); + $friends = $friend->isFriendsWith($subject->guid); + if ($friends) { + // accept friend request + ejabberd_friend_accept(elgg_get_logged_in_user_entity(), $friend); + } else { + // decline friend request + ejabberd_friend_deny(elgg_get_logged_in_user_entity(), $friend); + } + } + elseif ($relationship->relationship == 'friend') { + elgg_load_library('elgg:beechat'); + $subject = get_entity($relationship->guid_one); + $friend = get_entity($relationship->guid_two); + // delete friendship + ejabberd_friend_remove(elgg_get_logged_in_user_entity(), $friend); + } + + } + +} |