aboutsummaryrefslogtreecommitdiff
path: root/actions/friends
diff options
context:
space:
mode:
Diffstat (limited to 'actions/friends')
-rw-r--r--actions/friends/add.php25
-rw-r--r--actions/friends/addcollection.php44
-rw-r--r--actions/friends/collections/add.php31
-rw-r--r--actions/friends/collections/delete.php23
-rw-r--r--actions/friends/collections/edit.php23
-rw-r--r--actions/friends/deletecollection.php45
-rw-r--r--actions/friends/editcollection.php16
-rw-r--r--actions/friends/remove.php21
8 files changed, 97 insertions, 131 deletions
diff --git a/actions/friends/add.php b/actions/friends/add.php
index 934424b57..d1800ee14 100644
--- a/actions/friends/add.php
+++ b/actions/friends/add.php
@@ -2,35 +2,34 @@
/**
* Elgg add friend action
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * @package Elgg.Core
+ * @subpackage Friends.Management
*/
-// Ensure we are logged in
-gatekeeper();
-
// Get the GUID of the user to friend
$friend_guid = get_input('friend');
$friend = get_entity($friend_guid);
+if (!$friend) {
+ register_error(elgg_echo('error:missing_data'));
+ forward(REFERER);
+}
$errors = false;
// Get the user
try {
- if (!$_SESSION['user']->addFriend($friend_guid)) {
+ if (!elgg_get_logged_in_user_entity()->addFriend($friend_guid)) {
$errors = true;
}
} catch (Exception $e) {
- register_error(sprintf(elgg_echo("friends:add:failure"),$friend->name));
+ register_error(elgg_echo("friends:add:failure", array($friend->name)));
$errors = true;
}
-if (!$errors){
+if (!$errors) {
// add to river
- add_to_river('friends/river/create','friend',$_SESSION['user']->guid,$friend_guid);
- system_message(sprintf(elgg_echo("friends:add:successful"),$friend->name));
+ 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
-forward($_SERVER['HTTP_REFERER']);
+forward(REFERER);
diff --git a/actions/friends/addcollection.php b/actions/friends/addcollection.php
deleted file mode 100644
index e5541797b..000000000
--- a/actions/friends/addcollection.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * Elgg collection add page
- *
- * @package Elgg
- * @subpackage Core
-
- * @author Curverider Ltd
-
- * @link http://elgg.org/
- */
-
-//must be logged in
-gatekeeper();
-
-$collection_name = get_input('collection_name');
-$friends = get_input('friends_collection');
-
-//first check to make sure that a collection name has been set and create the new colection
-if($collection_name){
-
- //create the collection
- $create_collection = create_access_collection($collection_name, $_SESSION['user']->getGUID());
-
- //if the collection was created and the user passed some friends from the form, add them
- if($create_collection && (!empty($friends))){
- //add friends to the collection
- foreach($friends as $friend) {
- add_user_to_access_collection($friend, $create_collection);
- }
- }
-
- // Success message
- system_message(elgg_echo("friends:collectionadded"));
- // Forward to the collections page
- forward("pg/collections/" . $_SESSION['user']->username);
-
-} else {
- register_error(elgg_echo("friends:nocollectionname"));
-
- // Forward to the add collection page
- forward("pg/collections/add");
-}
diff --git a/actions/friends/collections/add.php b/actions/friends/collections/add.php
new file mode 100644
index 000000000..e63a149f7
--- /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 = htmlspecialchars(get_input('collection_name', '', false), ENT_QUOTES, 'UTF-8');
+$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/deletecollection.php b/actions/friends/deletecollection.php
deleted file mode 100644
index 1e18adcea..000000000
--- a/actions/friends/deletecollection.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
-/**
- * Elgg friends: delete collection action
- *
- * @package Elgg
- * @subpackage Core
-
- * @author Curverider Ltd
-
- * @link http://elgg.org/
- */
-
-// Make sure we're logged in (send us to the front page if not)
-gatekeeper();
-
-// Get input data
-$collection_id = (int) get_input('collection');
-
-// Check to see that the access collection exist and grab its owner
-$get_collection = get_access_collection($collection_id);
-
-if($get_collection){
-
- if($get_collection->owner_guid == $_SESSION['user']->getGUID()) {
-
- $delete_collection = delete_access_collection($collection_id);
-
- // Success message
- if ($delete_collection) {
- system_message(elgg_echo("friends:collectiondeleted"));
- } else {
- register_error(elgg_echo("friends:collectiondeletefailed"));
- }
- } else {
- // Failure message
- register_error(elgg_echo("friends:collectiondeletefailed"));
- }
-} else {
- // Failure message
- register_error(elgg_echo("friends:collectiondeletefailed"));
-}
-
-// Forward to the collections page
-forward("pg/collections/" . $_SESSION['user']->username);
diff --git a/actions/friends/editcollection.php b/actions/friends/editcollection.php
deleted file mode 100644
index 4d346e823..000000000
--- a/actions/friends/editcollection.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-/**
- * Elgg collection add page
- *
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
- */
-
-$collection_id = get_input('collection_id');
-$friends = get_input('friend');
-
-//chech the collection exists and the current user owners it
-update_access_collection($collection_id, $friends); \ No newline at end of file
diff --git a/actions/friends/remove.php b/actions/friends/remove.php
index 768291055..d69d18f31 100644
--- a/actions/friends/remove.php
+++ b/actions/friends/remove.php
@@ -2,15 +2,10 @@
/**
* Elgg remove friend action
*
- * @package Elgg
- * @subpackage Core
- * @author Curverider Ltd
- * @link http://elgg.org/
+ * @package Elgg.Core
+ * @subpackage Friends.Management
*/
-// Ensure we are logged in
-gatekeeper();
-
// Get the GUID of the user to friend
$friend_guid = get_input('friend');
$friend = get_entity($friend_guid);
@@ -19,19 +14,19 @@ $errors = false;
// Get the user
try{
if ($friend instanceof ElggUser) {
- $_SESSION['user']->removeFriend($friend_guid);
- } else{
- register_error(sprintf(elgg_echo("friends:remove:failure"), $friend->name));
+ elgg_get_logged_in_user_entity()->removeFriend($friend_guid);
+ } else {
+ register_error(elgg_echo("friends:remove:failure", array($friend->name)));
$errors = true;
}
} catch (Exception $e) {
- register_error(sprintf(elgg_echo("friends:remove:failure"), $friend->name));
+ register_error(elgg_echo("friends:remove:failure", array($friend->name)));
$errors = true;
}
if (!$errors) {
- system_message(sprintf(elgg_echo("friends:remove:successful"), $friend->name));
+ system_message(elgg_echo("friends:remove:successful", array($friend->name)));
}
// Forward back to the page you made the friend on
-forward($_SERVER['HTTP_REFERER']);
+forward(REFERER);