]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Only showing group access levels within group contexts.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 16 Apr 2010 20:50:31 +0000 (20:50 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 16 Apr 2010 20:50:31 +0000 (20:50 +0000)
Not showing unrelated access levels within group contexts.

git-svn-id: http://code.elgg.org/elgg/trunk@5782 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/groups/start.php

index 9db55e3923e985a2d6987ee09818c93592d00aba..f6f10b27a890ccb7ea86e990d40c78a5cc568c48 100644 (file)
@@ -17,7 +17,7 @@
 
                global $CONFIG;
 
-               // Set up the menu 
+               // Set up the menu
                add_menu(elgg_echo('groups'), $CONFIG->wwwroot . "pg/groups/world/");
 
                // Register a page handler, so we can have nice URLs
                                        add_submenu_item(elgg_echo('groups:yours'), $CONFIG->wwwroot . "pg/groups/member/" . $_SESSION['user']->username, '1groupslinks');
                                }
                                add_submenu_item(elgg_echo('groups:all'), $CONFIG->wwwroot . "pg/groups/world/", '1groupslinks');
-                       
+
                                if (isloggedin()) {
                                        add_submenu_item(elgg_echo('groups:invitations'), $CONFIG->wwwroot . "pg/groups/invitations/" . $_SESSION['user']->username, '1groupslinks');
                                }
        function groups_write_acl_plugin_hook($hook, $entity_type, $returnvalue, $params)
        {
                $page_owner = page_owner_entity();
-               // get all groups if logged in
-               if ($loggedin = get_loggedin_user()) {
-                       $groups = elgg_get_entities_from_relationship(array('relationship' => 'member', 'relationship_guid' => $loggedin->getGUID(), 'inverse_relationship' => FALSE, 'limit' => 999));
-                       if (is_array($groups)) {
-                               foreach ($groups as $group) {
-                                       $returnvalue[$group->group_acl] = elgg_echo('groups:group') . ': ' . $group->name;
-                               }
+               $loggedin = get_loggedin_user();
+
+               // only insert group access for current group
+               if ($page_owner instanceof ElggGroup && $loggedin) {
+                       if ($page_owner->isMember($loggedin)) {
+                               $returnvalue[$page_owner->group_acl] = elgg_echo('groups:group') . ': ' . $page_owner->name;
+
+                               // remove friends access
+                               unset($returnvalue[ACCESS_FRIENDS]);
+                       }
+               } else {
+                       // remove all group access ids the user has
+                       $groups = elgg_get_entities_from_relationship(array(
+                               'relationship' => 'member',
+                               'relationship_guid' => $loggedin->getGUID(),
+                               'inverse_relationship' => FALSE,
+                               'limit' => 999
+                       ));
+
+                       foreach ($groups as $group) {
+                               unset($returnvalue[$group->group_acl]);
                        }
                }
 
-               // This doesn't seem to do anything.
-               // There are no hooks to override container permissions for groups
-//
-//             if ($page_owner instanceof ElggGroup)
-//             {
-//                     if (can_write_to_container())
-//                     {
-//                             $returnvalue[$page_owner->group_acl] = elgg_echo('groups:group') . ": " . $page_owner->name;
-//                     }
-//             }
                return $returnvalue;
        }