diff options
author | Sem <sembrestels@riseup.net> | 2012-07-11 21:19:14 +0200 |
---|---|---|
committer | Sem <sembrestels@riseup.net> | 2012-07-11 21:19:14 +0200 |
commit | b83574ae1b8ada2bb9c2247492806473df920259 (patch) | |
tree | 30f9010da3cab12bda4921f079cfe86fcef2e7a4 /mod/notifications/actions/groupsave.php | |
parent | 46bd104bd523c08ff2f6bc0342be9ae1251259e8 (diff) | |
parent | 4d42fd0263948eee4a7c7a26ceca0647c01cce32 (diff) | |
download | elgg-b83574ae1b8ada2bb9c2247492806473df920259.tar.gz elgg-b83574ae1b8ada2bb9c2247492806473df920259.tar.bz2 |
Merge tag '1.8.8' of git://github.com/Elgg/Elgg into lorea-preprod
Elgg 1.8.8 release
Conflicts:
js/lib/languages.js
Diffstat (limited to 'mod/notifications/actions/groupsave.php')
-rw-r--r-- | mod/notifications/actions/groupsave.php | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/mod/notifications/actions/groupsave.php b/mod/notifications/actions/groupsave.php index c304cb856..7838f7e63 100644 --- a/mod/notifications/actions/groupsave.php +++ b/mod/notifications/actions/groupsave.php @@ -6,27 +6,42 @@ * @package ElggNotifications */ -// Load important global vars -global $NOTIFICATION_HANDLERS; +$current_user = elgg_get_logged_in_user_entity(); + +$guid = (int) get_input('guid', 0); +if (!$guid || !($user = get_entity($guid))) { + forward(); +} +if (($user->guid != $current_user->guid) && !$current_user->isAdmin()) { + forward(); +} // Get group memberships and condense them down to an array of guids $groups = array(); -if ($groupmemberships = elgg_get_entities_from_relationship(array('relationship' => 'member', 'relationship_guid' => elgg_get_logged_in_user_guid(), 'types' => 'group', 'limit' => 9999))) { +$options = array( + 'relationship' => 'member', + 'relationship_guid' => $user->guid, + 'types' => 'group', + 'limit' => 9999, +); +if ($groupmemberships = elgg_get_entities_from_relationship($options)) { foreach($groupmemberships as $groupmembership) { $groups[] = $groupmembership->guid; } -} +} +// Load important global vars +global $NOTIFICATION_HANDLERS; foreach($NOTIFICATION_HANDLERS as $method => $foo) { $subscriptions[$method] = get_input($method.'subscriptions'); $personal[$method] = get_input($method.'personal'); $collections[$method] = get_input($method.'collections'); if (!empty($groups)) { foreach($groups as $group) { - if (in_array($group,$subscriptions[$method])) { - add_entity_relationship(elgg_get_logged_in_user_guid(), 'notify'.$method, $group); + if (in_array($group, $subscriptions[$method])) { + add_entity_relationship($user->guid, 'notify'.$method, $group); } else { - remove_entity_relationship(elgg_get_logged_in_user_guid(), 'notify'.$method, $group); + remove_entity_relationship($user->guid, 'notify'.$method, $group); } } } |