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";