Index: ucp_groups.php =================================================================== --- ucp_groups.php (original) +++ ucp_groups.php (bug fixed) @@ -436,15 +436,18 @@ trigger_error($user->lang['NO_GROUP'] . $return_page); } - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $file_uploads = (@ini_get('file_uploads') || strtolower(@ini_get('file_uploads')) == 'on') ? true : false; @@ -710,15 +713,18 @@ trigger_error($user->lang['NO_GROUP'] . $return_page); } - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $user->add_lang(array('acp/groups', 'acp/common')); @@ -823,15 +829,18 @@ trigger_error($user->lang['NO_GROUP'] . $return_page); } - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $user->add_lang('acp/groups'); @@ -850,15 +859,18 @@ trigger_error($user->lang['NO_GROUP'] . $return_page); } - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $group_row['group_name'] = ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name']; @@ -926,15 +938,18 @@ $user->add_lang(array('acp/groups', 'acp/common')); - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $group_row['group_name'] = ($group_row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $group_row['group_name']] : $group_row['group_name']; @@ -984,15 +999,18 @@ trigger_error($user->lang['NO_USERS'] . $return_page); } - if (!($row = group_memberships($group_id, $user->data['user_id']))) + if(!$auth->acl_get('a_group')) { - trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); - } - list(, $row) = each($row); + if (!($row = group_memberships($group_id, $user->data['user_id']))) + { + trigger_error($user->lang['NOT_MEMBER_OF_GROUP'] . $return_page); + } + list(, $row) = each($row); - if (!$row['group_leader']) - { - trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + if (!$row['group_leader']) + { + trigger_error($user->lang['NOT_LEADER_OF_GROUP'] . $return_page); + } } $name_ary = array_unique(explode("\n", $names)); @@ -1028,19 +1046,29 @@ default: $user->add_lang('acp/common'); - $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_desc, g.group_desc_uid, g.group_desc_bitfield, g.group_desc_options, g.group_type, ug.group_leader - FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug - WHERE ug.user_id = ' . $user->data['user_id'] . ' - AND g.group_id = ug.group_id - AND ug.group_leader = 1 - ORDER BY g.group_type DESC, g.group_name'; + if($auth->acl_get('a_group')) + { + //Admins can manage all groups + $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_desc, g.group_desc_uid, g.group_desc_bitfield, g.group_desc_options, g.group_type + FROM ' . GROUPS_TABLE . ' g + ORDER BY g.group_type DESC, g.group_name'; + } + else + { + $sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_desc, g.group_desc_uid, g.group_desc_bitfield, g.group_desc_options, g.group_type, ug.group_leader + FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug + WHERE ug.user_id = ' . $user->data['user_id'] . ' + AND g.group_id = ug.group_id + AND ug.group_leader = 1 + ORDER BY g.group_type DESC, g.group_name'; + } $result = $db->sql_query($sql); while ($value = $db->sql_fetchrow($result)) { $template->assign_block_vars('leader', array( 'GROUP_NAME' => ($value['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $value['group_name']] : $value['group_name'], - 'GROUP_DESC' => generate_text_for_display($value['group_desc'], $value['group_desc_uid'], $value['group_desc_bitfield'], $value['group_desc_options']), + 'GROUP_DESC' => ($value['group_type'] <> GROUP_SPECIAL) ? generate_text_for_display($value['group_desc'], $value['group_desc_uid'], $value['group_desc_bitfield'], $value['group_desc_options']) : $user->lang['GROUP_IS_SPECIAL'], 'GROUP_TYPE' => $value['group_type'], 'GROUP_ID' => $value['group_id'], 'GROUP_COLOUR' => $value['group_colour'],