aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-01-07 16:26:50 +0000
committermarcus <marcus@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-01-07 16:26:50 +0000
commit2c23064e291fe525e1d9e1e3ecd1963dbcc4af60 (patch)
treee675ad62c79c1a93d1f3ff070b2d20001dba634a
parent730c231f93b897f05f7bd71dec0267322c9ada58 (diff)
downloadelgg-2c23064e291fe525e1d9e1e3ecd1963dbcc4af60.tar.gz
elgg-2c23064e291fe525e1d9e1e3ecd1963dbcc4af60.tar.bz2
Closes #286: Group access restrictions issue fixed, modified from patch supplied with #315
git-svn-id: https://code.elgg.org/elgg/trunk@2538 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--engine/lib/access.php48
-rw-r--r--mod/groups/groupprofile.php40
-rw-r--r--mod/groups/languages/en.php5
3 files changed, 56 insertions, 37 deletions
diff --git a/engine/lib/access.php b/engine/lib/access.php
index a47cefd22..e8940b75c 100644
--- a/engine/lib/access.php
+++ b/engine/lib/access.php
@@ -71,31 +71,37 @@
$query .= " WHERE am.user_guid = {$user_id} AND (ag.site_guid = {$site_id} OR ag.site_guid = 0)";
$tmp_access_array = array(2);
- if (isloggedin())
- $tmp_access_array[] = 1;
-
- if ($collections = get_data($query)) {
- foreach($collections as $collection)
- if (!empty($collection->access_collection_id)) $tmp_access_array[] = $collection->access_collection_id;
+ if (isloggedin()) {
+ $tmp_access_array[] = 1;
+
+ // The following can only return sensible data if the user is logged in.
+
+ if ($collections = get_data($query)) {
+ foreach($collections as $collection)
+ if (!empty($collection->access_collection_id)) $tmp_access_array[] = $collection->access_collection_id;
+
+ }
- }
+ $query = "SELECT ag.id FROM {$CONFIG->dbprefix}access_collections ag ";
+ $query .= " WHERE ag.owner_guid = {$user_id} AND (ag.site_guid = {$site_id} OR ag.site_guid = 0)";
+
+ if ($collections = get_data($query)) {
+ foreach($collections as $collection)
+ if (!empty($collection->id)) $tmp_access_array[] = $collection->id;
+ }
+
- $query = "SELECT ag.id FROM {$CONFIG->dbprefix}access_collections ag ";
- $query .= " WHERE ag.owner_guid = {$user_id} AND (ag.site_guid = {$site_id} OR ag.site_guid = 0)";
-
- if ($collections = get_data($query)) {
- foreach($collections as $collection)
- if (!empty($collection->id)) $tmp_access_array[] = $collection->id;
- }
-
-
- global $is_admin;
-
- if (isset($is_admin) && $is_admin == true) {
- $tmp_access_array[] = 0;
+ global $is_admin;
+
+ if (isset($is_admin) && $is_admin == true) {
+ $tmp_access_array[] = 0;
+ }
+
+ $access_array[$user_id] = $tmp_access_array;
}
+ else
+ return $tmp_access_array; // No user id logged in so we can only access public info
- $access_array[$user_id] = $tmp_access_array;
} else {
$tmp_access_array = $access_array[$user_id];
diff --git a/mod/groups/groupprofile.php b/mod/groups/groupprofile.php
index 7bdcf8718..f8b0b6bba 100644
--- a/mod/groups/groupprofile.php
+++ b/mod/groups/groupprofile.php
@@ -14,20 +14,30 @@
$group = get_entity($group_guid);
-
- set_page_owner($group_guid);
-
- $area2 = elgg_view_title($group->name);
- $area2 .= elgg_view('group/group', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true));
-
- //group profile 'items' - these are not real widgets, just contents to display
- $area2 .= elgg_view('groups/profileitems',array('entity' => $group));
-
- //group members
- $area3 = elgg_view('groups/members',array('entity' => $group));
-
- $body = elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3);
-
+ if ($group) {
+ set_page_owner($group_guid);
+
+ $title = $group->name;
+
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_view('group/group', array('entity' => $group, 'user' => $_SESSION['user'], 'full' => true));
+
+ //group profile 'items' - these are not real widgets, just contents to display
+ $area2 .= elgg_view('groups/profileitems',array('entity' => $group));
+
+ //group members
+ $area3 = elgg_view('groups/members',array('entity' => $group));
+
+ $body = elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3);
+ } else {
+ $title = elgg_echo('groups:notfound');
+
+ $area2 = elgg_view_title($title);
+ $area2 .= elgg_echo('groups:notfound:details');
+
+ $body = elgg_view_layout('two_column_left_sidebar', "", $area2,"");
+ }
+
// Finally draw the page
- page_draw($group->name, $body);
+ page_draw($title, $body);
?> \ No newline at end of file
diff --git a/mod/groups/languages/en.php b/mod/groups/languages/en.php
index c9cbde959..04b644cc2 100644
--- a/mod/groups/languages/en.php
+++ b/mod/groups/languages/en.php
@@ -48,7 +48,10 @@
'groups:inviteto' => "Invite friends to '%s'",
'groups:nofriends' => "You have no friends left who have not been invited to this group.",
- 'groups:group' => "Group",
+ 'groups:group' => "Group",
+
+ 'groups:notfound' => "Group not found",
+ 'groups:notfound:details' => "The requested group either does not exist or you do not have access to it",
'item:object:groupforumtopic' => "Forum topics",