Index: trunk/admin/users/group_select.php
===================================================================
diff -u -N -r3008 -r3668
--- trunk/admin/users/group_select.php (.../group_select.php) (revision 3008)
+++ trunk/admin/users/group_select.php (.../group_select.php) (revision 3668)
@@ -77,68 +77,31 @@
$objGroups->Page = GetVar('lpn');
-if($source)
-{
- switch($source)
- {
- case "addcategory_permissions":
- $SelectorType = "radio";
- $ado = &GetADODBConnection();
- $sql = "SELECT Distinct(GroupId) FROM ".GetTablePrefix()."Permissions WHERE CatId=".$_GET["CatId"];
- //$sql = "SELECT Distinct(p.GroupId) FROM ".GetTablePrefix()."Permissions AS p LEFT JOIN ".GetTablePrefix()."PortalGroup AS pg ON p.GroupId = pg.GroupId WHERE p.CatId=".$_GET["CatId"]." AND pg.Personal=0";
- //echo "SQL 1: $sql
";
- $rs = $ado->Execute($sql);
- $inlist = array();
- while($rs && !$rs->EOF)
- {
- array_push($inlist,$rs->fields["GroupId"]);
- $rs->MoveNext();
- }
- if(count($inlist)>0)
- {
- $catlist = implode(",",$inlist);
- $field = $objConfig->Get("GroupSelect_SortField");
- if(!strlen($field))
- $field = "Name";
- $orderby = trim($field." ".$order);
- $sql = "SELECT * FROM ".GetTablePrefix()."PortalGroup WHERE GroupId NOT IN (".$catlist.") AND Personal = 0 ORDER BY $orderby";
- //echo "SQL 4: $sql
";
- $objGroups->Query_Item($sql);
- }
- else
- $objGroups->LoadGroups("Personal = 0",trim($objConfig->Get("GroupSelect_SortField")." ".$order));
- break;
-
- case "adduser_groups":
- $SelectorType = "radio";
- $ado = &GetADODBConnection();
- //$sql = sprintf('SELECT GroupId FROM '.GetTablePrefix().'UserGroup WHERE PortalUserId = %s', $_GET["UserId"]);
- $sql = sprintf('SELECT GroupId FROM '.$objSession->GetEditTable("UserGroup").' WHERE PortalUserId = %s', $_GET["UserId"]);
- $inlist = $ado->GetCol($sql);
- if($inlist !== false)
- {
- $catlist = implode(',', $inlist);
- $field = $objConfig->Get("GroupSelect_SortField");
- if( !strlen($field) ) $field = "Name";
- $orderby = $field." ".$order;
- $sql = "SELECT * FROM ".GetTablePrefix()."PortalGroup WHERE GroupId NOT IN (".$catlist.") ORDER BY $orderby";
- $objGroups->Query_Item($sql);
- }
- else
- $objGroups->LoadGroups('',trim($objConfig->Get("GroupSelect_SortField")." ".$order));
- break;
-
- default:
- $objGroups->LoadGroups('',trim($objConfig->Get("GroupSelect_SortField")." ".$order));
- break;
-
- }
-}
-else
-{
- //echo "Loading Groups..
\n";
- $objGroups->LoadGroups("",trim($objConfig->Get("GroupSelect_SortField")." ".$order));
-}
+// NEW: begin
+ $application =& kApplication::Instance();
+ $db =& $application->GetADODBConnection();
+
+ switch ($source) {
+ case 'addcategory_permissions':
+ $SelectorType = 'radio';
+ $sql = 'SELECT DISTINCT(GroupId)
+ FROM '.TABLE_PREFIX.'Permissions
+ WHERE CatId = '.$application->GetVar('CatId');
+ break;
+
+ case 'adduser_groups':
+ $SelectorType = 'radio';
+ $sql = 'SELECT GroupId
+ FROM '.$objSession->GetEditTable('UserGroup').'
+ WHERE PortalUserId = '.$application->GetVar('UserId');
+ break;
+ }
+
+ $skip_groups = $db->GetCol($sql);
+ $where_clause = $skip_groups ? 'GroupId NOT IN ('.implode(',', $skip_groups).')' : '1';
+
+ $objGroups->LoadGroups('(Personal = 0) AND ('.$where_clause.')', trim($objConfig->Get('GroupSelect_SortField').' '.$order));
+// NEW: end
$objListView = new clsListView($objListToolBar,$objGroups);
$objListView->IdField = "ResourceId";
Index: trunk/admin/category/addcategory_permissions.php
===================================================================
diff -u -N -r2853 -r3668
--- trunk/admin/category/addcategory_permissions.php (.../addcategory_permissions.php) (revision 2853)
+++ trunk/admin/category/addcategory_permissions.php (.../addcategory_permissions.php) (revision 3668)
@@ -146,7 +146,7 @@
$objGroupList->Clear();
$sql = "SELECT ResourceId, g.name as Name, ELT(g.Personal+1,'Group ','User ') as UserGroup FROM ".GetTablePrefix()."Permissions as p ";
-$sql .="LEFT JOIN ".GetTablePrefix()."PortalGroup as g ON p.GroupId=g.GroupId WHERE p.CatId=".(int)$c->Get("CategoryId")." GROUP BY Name";
+$sql .="LEFT JOIN ".GetTablePrefix()."PortalGroup as g ON p.GroupId=g.GroupId WHERE (p.CatId=".(int)$c->Get("CategoryId").") AND (g.Personal = 0) GROUP BY Name";
//$sql = "SELECT GroupId, count(*) as PermCount FROM ".GetTablePrefix()."Permissions WHERE CatId=".$c->Get("CategoryId")." GROUP BY GroupId";
$objGroupList->Query_Item($sql);
Index: trunk/admin/include/elements.php
===================================================================
diff -u -N -r3490 -r3668
--- trunk/admin/include/elements.php (.../elements.php) (revision 3490)
+++ trunk/admin/include/elements.php (.../elements.php) (revision 3668)
@@ -183,8 +183,10 @@
print $objSections->section_header($envar,$NavBarText,$ExtraTitle,false,$OtherSection);
//Toolbar if appropriate
- if ( isset($sections[$section]) && ($sections[$section]['toolbar']==1) || ( is_object($toolbar) ) )
- print $toolbar->Build();
+ if ( isset($sections[$section]) && ($sections[$section]['toolbar']==1) || ( is_object($toolbar) ) ) {
+ print $toolbar->Build();
+ }
+
}
}//Page Header
Index: trunk/admin/users/adduser_groups.php
===================================================================
diff -u -N -r2853 -r3668
--- trunk/admin/users/adduser_groups.php (.../adduser_groups.php) (revision 2853)
+++ trunk/admin/users/adduser_groups.php (.../adduser_groups.php) (revision 3668)
@@ -189,10 +189,12 @@
$orderBy = trim($objConfig->Get($SortFieldVar)." ".$order);
$phrase_never = language('la_NeverExpires');
-if(strlen($orderBy))
- $orderBy = " ORDER BY ".$orderBy;
+if ($orderBy) {
+ $orderBy = ' ORDER BY '.$orderBy;
+}
+
$sql = "SELECT g.GroupId as GroupId, g.name as GroupName, count(u.PortalUserId) as UserCount, IF(MembershipExpires IS NOT NULL, DATE_FORMAT( FROM_UNIXTIME(MembershipExpires) ,'%m/%d/%y %h:%i:%s %p'), '".$phrase_never."') AS MembershipExpires FROM ".GetTablePrefix()."PortalGroup as g ";
-$sql .="INNER JOIN ".$objSession->GetEditTable("UserGroup")." as u ON g.GroupId=u.GroupId WHERE u.PortalUserId=".$c->Get("PortalUserId")." $where GROUP BY g.name".$orderBy;
+$sql .="INNER JOIN ".$objSession->GetEditTable("UserGroup")." as u ON g.GroupId=u.GroupId WHERE (u.PortalUserId=".$c->Get("PortalUserId").") AND (g.Personal = 0) $where GROUP BY g.name".$orderBy;
if($objSession->HasSystemPermission("DEBUG.LIST"))
echo htmlentities($sql,ENT_NOQUOTES)."
\n";