diff options
Diffstat (limited to 'actions/friends')
-rw-r--r-- | actions/friends/add.php | 40 | ||||
-rw-r--r-- | actions/friends/collections/add.php | 31 | ||||
-rw-r--r-- | actions/friends/collections/delete.php | 23 | ||||
-rw-r--r-- | actions/friends/collections/edit.php | 23 | ||||
-rw-r--r-- | actions/friends/remove.php | 4 |
5 files changed, 88 insertions, 33 deletions
diff --git a/actions/friends/add.php b/actions/friends/add.php index e6efe1db1..d1800ee14 100644 --- a/actions/friends/add.php +++ b/actions/friends/add.php @@ -4,10 +4,8 @@ * * @package Elgg.Core * @subpackage Friends.Management - * @override actions/friends/add.php */ - // Get the GUID of the user to friend $friend_guid = get_input('friend'); $friend = get_entity($friend_guid); @@ -15,38 +13,22 @@ if (!$friend) { register_error(elgg_echo('error:missing_data')); forward(REFERER); } -$user = elgg_get_logged_in_user_entity(); $errors = false; -if(check_entity_relationship($friend->guid, "friendrequest", $user->guid) - || check_entity_relationship($friend->guid, "friend", $user->guid)) { - - try { - if (!$user->addFriend($friend_guid)) { - $errors = true; - } - - $ia = elgg_set_ignore_access(true); - $friend->addFriend($user->guid); - elgg_set_ignore_access($ia); - - remove_entity_relationship($friend->guid, "friendrequest", $user->guid); - - } catch (Exception $e) { - register_error(elgg_echo("friends:add:failure", array($friend->name))); +// Get the user +try { + if (!elgg_get_logged_in_user_entity()->addFriend($friend_guid)) { $errors = true; } - if (!$errors) { - // add to river - add_to_river('river/relationship/friend/create', 'friend', $user->guid, $friend->guid); - add_to_river('river/relationship/friend/create', 'friend', $friend->guid, $user->guid); - system_message(elgg_echo("friends:add:successful", array($friend->name))); - } -} elseif(add_entity_relationship($user->guid, "friendrequest", $friend->guid)) { - system_message(elgg_echo("friendrequest:add:successful", array($friend->name))); -} else { - register_error(elgg_echo("friendrequest:add:exists", array($friend->name))); +} catch (Exception $e) { + register_error(elgg_echo("friends:add:failure", array($friend->name))); + $errors = true; +} +if (!$errors) { + // add to river + add_to_river('river/relationship/friend/create', 'friend', elgg_get_logged_in_user_guid(), $friend_guid); + system_message(elgg_echo("friends:add:successful", array($friend->name))); } // Forward back to the page you friended the user on diff --git a/actions/friends/collections/add.php b/actions/friends/collections/add.php new file mode 100644 index 000000000..9dc17b37e --- /dev/null +++ b/actions/friends/collections/add.php @@ -0,0 +1,31 @@ +<?php +/** + * Elgg collection add page + * + * @package Elgg.Core + * @subpackage Friends.Collections + */ + +$collection_name = get_input('collection_name'); +$friends = get_input('friends_collection'); + +if (!$collection_name) { + register_error(elgg_echo("friends:nocollectionname")); + forward(REFERER); +} + +$id = create_access_collection($collection_name); + +if ($id) { + $result = update_access_collection($id, $friends); + if ($result) { + system_message(elgg_echo("friends:collectionadded")); + forward("collections/" . elgg_get_logged_in_user_entity()->username); + } else { + register_error(elgg_echo("friends:nocollectionname")); + forward(REFERER); + } +} else { + register_error(elgg_echo("friends:nocollectionname")); + forward(REFERER); +}
\ No newline at end of file diff --git a/actions/friends/collections/delete.php b/actions/friends/collections/delete.php new file mode 100644 index 000000000..ff8f1fb55 --- /dev/null +++ b/actions/friends/collections/delete.php @@ -0,0 +1,23 @@ +<?php +/** + * Elgg friends: delete collection action + * + * @package Elgg.Core + * @subpackage Friends.Collections + */ + +$collection_id = (int) get_input('collection'); + +// check the ACL exists and we can edit +if (!can_edit_access_collection($collection_id)) { + register_error(elgg_echo("friends:collectiondeletefailed")); + forward(REFERER); +} + +if (delete_access_collection($collection_id)) { + system_message(elgg_echo("friends:collectiondeleted")); +} else { + register_error(elgg_echo("friends:collectiondeletefailed")); +} + +forward(REFERER); diff --git a/actions/friends/collections/edit.php b/actions/friends/collections/edit.php new file mode 100644 index 000000000..9eb5e1eab --- /dev/null +++ b/actions/friends/collections/edit.php @@ -0,0 +1,23 @@ +<?php +/** + * Friends collection edit action + * + * @package Elgg.Core + * @subpackage Friends.Collections + */ + +$collection_id = get_input('collection_id'); +$friends = get_input('friend'); + +// check it exists and we can edit +if (!can_edit_access_collection($collection_id)) { + system_message(elgg_echo('friends:collection:edit_failed')); +} + +if (update_access_collection($collection_id, $friends)) { + system_message(elgg_echo('friends:collections:edited')); +} else { + system_message(elgg_echo('friends:collection:edit_failed')); +} + +forward(REFERER);
\ No newline at end of file diff --git a/actions/friends/remove.php b/actions/friends/remove.php index 62bccb891..d69d18f31 100644 --- a/actions/friends/remove.php +++ b/actions/friends/remove.php @@ -4,7 +4,6 @@ * * @package Elgg.Core * @subpackage Friends.Management - * @override actions/friends/remove.php */ // Get the GUID of the user to friend @@ -16,9 +15,6 @@ $errors = false; try{ if ($friend instanceof ElggUser) { elgg_get_logged_in_user_entity()->removeFriend($friend_guid); - $ia = elgg_set_ignore_access(true); - $friend->removeFriend(elgg_get_logged_in_user_guid()); - elgg_set_ignore_access($ia); } else { register_error(elgg_echo("friends:remove:failure", array($friend->name))); $errors = true; |