Index: branches/unlabeled/unlabeled-1.103.2/kernel/action.php =================================================================== diff -u -r3896 -r3937 --- branches/unlabeled/unlabeled-1.103.2/kernel/action.php (.../action.php) (revision 3896) +++ branches/unlabeled/unlabeled-1.103.2/kernel/action.php (.../action.php) (revision 3937) @@ -2507,8 +2507,7 @@ $objUserGroupsList->CopyFromEditTable("PortalUserId"); $user_ids = $objUsers->CopyFromEditTable("PortalUserId"); - if($user_ids) - { + if ($user_ids) { $db =& GetADODBConnection(); $sql = 'SELECT ResourceId FROM '.$objUsers->SourceTable.' WHERE PortalUserId IN ('.implode(',', $user_ids).')'; $rids = $db->GetCol($sql); @@ -2533,8 +2532,15 @@ { $objUserGroupsList = new clsUserGroupList(); $objUserGroupsList->CopyFromEditTable("GroupId"); - $objGroups->CopyFromEditTable("GroupId"); - $objCustomDataList->CopyFromEditTable("CustomDataId"); + + $group_ids = $objGroups->CopyFromEditTable("GroupId"); + if ($group_ids) { + $db =& GetADODBConnection(); + $sql = 'SELECT ResourceId FROM '.$objGroups->SourceTable.' WHERE GroupId IN ('.implode(',', $group_ids).')'; + $rids = $db->GetCol($sql); + $objCustomDataList->CopyFromEditTable("CustomDataId", $rids); + } + $objGroups->Clear(); } if( GetVar('GroupEditStatus') == 2 ) Index: branches/unlabeled/unlabeled-1.17.44/kernel/include/portalgroup.php =================================================================== diff -u -r2083 -r3937 --- branches/unlabeled/unlabeled-1.17.44/kernel/include/portalgroup.php (.../portalgroup.php) (revision 2083) +++ branches/unlabeled/unlabeled-1.17.44/kernel/include/portalgroup.php (.../portalgroup.php) (revision 3937) @@ -458,9 +458,9 @@ $edit_table = $objSession->GetEditTable($this->SourceTable); $sql = "SELECT * FROM $edit_table"; + $item_ids = Array(); $rs = $this->adodbConnection->Execute($sql); - while($rs && !$rs->EOF) - { + while ($rs && !$rs->EOF) { $data = $rs->fields; $c = new $this->classname; $c->SetFromArray($data); @@ -478,14 +478,15 @@ $sql = "UPDATE ".GetTablePrefix()."Permissions SET GroupId=".$c->Get("GroupId")." WHERE GroupId=$old_id"; $this->adodbConnection->Execute($sql); } - $c->Update(); + $item_ids[] = $c->UniqueId(); unset($c); unset($r); $rs->MoveNext(); } @$this->adodbConnection->Execute("DROP TABLE IF EXISTS $edit_table"); unset($GLOBALS['_CopyFromEditTable']); + return $item_ids; } function PurgeEditTable($idfield)