/** * Approve friendship request between two users * * @param ElggUser $user User being requested * @param ElggUser $friend User requesting * @return bool */ function user_friends_approve_friend_request(ElggUser $user, ElggUser $friend) { if (!remove_entity_relationship($friend->guid, 'friendrequest', $user->guid)) { return false; } $user->addFriend($friend->guid); $friend->addFriend($user->guid); $subject = elgg_echo('friend_request:approve:subject', [$user->name]); $message = elgg_echo('friend_request:approve:message', [$friend->name, $user->name]); notify_user($friend->guid, $user->guid, $subject, $message, ['template' => 'friend_request_approved', 'action' => 'add_friend', 'object' => $friend]); friend_request_create_river_events($user->guid, $friend->guid); return true; }
<?php $friend_guid = (int) get_input('friend_guid'); $user_guid = (int) get_input('user_guid'); $friend = get_user($friend_guid); if (empty($friend)) { register_error(elgg_echo('error:missing_data')); forward(REFERER); } $user = get_user($user_guid); if (!$user instanceof \ElggUser || !$user->canEdit()) { register_error(elgg_echo('action:unauthorized')); forward(REFERER); } if (!remove_entity_relationship($friend->getGUID(), 'friendrequest', $user->getGUID())) { register_error(elgg_echo('friend_request:approve:fail', [$friend->name])); forward(REFERER); } $user->addFriend($friend->getGUID()); $friend->addFriend($user->getGUID()); //Friends mean reciprocal... // notify the user about the acceptance $subject = elgg_echo('friend_request:approve:subject', [$user->name], $friend->language); $message = elgg_echo('friend_request:approve:message', [$friend->name, $user->name], $friend->language); $params = ['action' => 'add_friend', 'object' => $user]; notify_user($friend->getGUID(), $user->getGUID(), $subject, $message, $params); // add to river friend_request_create_river_events($user->getGUID(), $friend->getGUID()); system_message(elgg_echo('friend_request:approve:successful', [$friend->name])); forward(REFERER);