diff options
author | Evan Winslow <evan@elgg.org> | 2012-07-21 15:49:31 -0700 |
---|---|---|
committer | Evan Winslow <evan@elgg.org> | 2012-07-21 15:49:31 -0700 |
commit | 55e11c0675508b4ccc2cb88ed2238a0c0a38cc17 (patch) | |
tree | cb23514f0dd4e2c559faa956ddd40044acefaa64 /mod/likes/actions | |
parent | 3cb2ce976fc024dfc700ef4500e5cddd01163e9c (diff) | |
download | elgg-55e11c0675508b4ccc2cb88ed2238a0c0a38cc17.tar.gz elgg-55e11c0675508b4ccc2cb88ed2238a0c0a38cc17.tar.bz2 |
Fixes #4750: Supporting both id and guid arguments for likes/delete
Diffstat (limited to 'mod/likes/actions')
-rw-r--r-- | mod/likes/actions/likes/delete.php | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/mod/likes/actions/likes/delete.php b/mod/likes/actions/likes/delete.php index db3036bb4..322d512e8 100644 --- a/mod/likes/actions/likes/delete.php +++ b/mod/likes/actions/likes/delete.php @@ -4,17 +4,27 @@ * */ -$likes = elgg_get_annotations(array( - 'guid' => (int) get_input('guid'), - 'annotation_owner_guid' => elgg_get_logged_in_user_guid(), - 'annotation_name' => 'likes', -)); -if ($likes) { - if ($likes[0]->canEdit()) { - $likes[0]->delete(); - system_message(elgg_echo("likes:deleted")); - forward(REFERER); - } +// Support deleting by id in case we're deleting another user's likes +$id = (int) get_input('id'); + +$like = NULL; +if ($id) { + $like = elgg_get_annotation_from_id($id); +} + +if (!$like) { + $likes = elgg_get_annotations(array( + 'guid' => (int) get_input('guid'), + 'annotation_owner_guid' => elgg_get_logged_in_user_guid(), + 'annotation_name' => 'likes', + )); + $like = $likes[0]; +} + +if ($like && $like->canEdit()) { + $like->delete(); + system_message(elgg_echo("likes:deleted")); + forward(REFERER); } register_error(elgg_echo("likes:notdeleted")); |