]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Merge branch '1.8' of gitorious.org:lorea/friendrequest into 1.8
authorSem <sembrestels@riseup.net>
Fri, 23 Aug 2013 03:34:02 +0000 (23:34 -0400)
committerSem <sembrestels@riseup.net>
Fri, 23 Aug 2013 03:34:02 +0000 (23:34 -0400)
Conflicts:
actions/friends/add.php
actions/friends/remove.php

1  2 
actions/friends/add.php
actions/friends/remove.php

index 3e1c9b2d4079fc79068c6804a27960f1d5b22091,38c29448b597cd0681d672e8e44962a9c92cf061..c464a8162b839340bd507a188b8944c2a8a129f5
@@@ -1,15 -1,21 +1,23 @@@
  <?php
  /**
+  * Elgg add friend action
+  *
+  * @package Elgg.Core
+  * @subpackage Friends.Management
 + * @override actions/friends/add.php
   */
  
- $friend = get_entity(sanitize_int(get_input('friend')));
- $user = elgg_get_logged_in_user_entity();
 +
- if(!elgg_instanceof($friend, 'user')){
-       register_error(elgg_echo('friendrequest:add:failure'));
+ // 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);
  }
+ $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)) {
index 76716ebe651870dd653a8ce17129730d672a9d7b,786f08352eac07d9b6a949b6b4a8cbfeb2b7cff3..936f6f43bd23d9a9b57a5cc635cb495709a0957b
@@@ -1,27 -1,35 +1,36 @@@
  <?php
  /**
+  * Elgg remove friend action
+  *
+  * @package Elgg.Core
+  * @subpackage Friends.Management
 + * @override actions/friends/remove.php
   */
  
- $friend = get_entity(sanitize_int(get_input('friend')));
- $user = elgg_get_logged_in_user_entity();
+ // Get the GUID of the user to friend
+ $friend_guid = get_input('friend');
+ $friend = get_entity($friend_guid);
+ $errors = false;
  
- if(!elgg_instanceof($friend, 'user')){
-       register_error(elgg_echo('friends:remove:failure', array($friend->name)));
-       forward(REFERER);
+ // Get the user
+ 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;
+       }
+ } catch (Exception $e) {
+       register_error(elgg_echo("friends:remove:failure", array($friend->name)));
+       $errors = true;
  }
  
- if(check_entity_relationship($user->guid, "friend", $friend->guid)) {
-       try {
-               $user->removeFriend($friend->guid);
-               if(check_entity_relationship($friend->guid, "friend", $user->guid)){
-                       $friend->removeFriend($user->guid);
-               }
-       } catch (Exception $e) {
-               register_error(elgg_echo('friends:remove:failure', array($friend->name)));
-               forward(REFERER);
-       }
+ if (!$errors) {
+       system_message(elgg_echo("friends:remove:successful", array($friend->name)));
  }
  
- system_message(elgg_echo('friends:remove:successful', array($friend->name)));
+ // Forward back to the page you made the friend on
  forward(REFERER);