Index: branches/5.3.x/core/units/users/users_event_handler.php =================================================================== diff -u -N -r15938 -r15986 --- branches/5.3.x/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 15938) +++ branches/5.3.x/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 15986) @@ -1,6 +1,6 @@ Application->GetTempName($ug_table, 'prefix:' . $event->Prefix); } + $sql = 'SELECT COUNT(*) + FROM ' . $ug_table . ' + WHERE PortalUserId = ' . $object->GetID() . ' AND GroupId = ' . $primary_group_id; + + if ( $this->Conn->GetOne($sql) ) { + return; + } + $fields_hash = Array ( 'PortalUserId' => $object->GetID(), 'GroupId' => $primary_group_id, ); - $this->Conn->doInsert($fields_hash, $ug_table, 'REPLACE'); + if ( $object->IsTempTable() ) { + $new_id = (int)$this->Conn->GetOne('SELECT MIN(Id) FROM ' . $ug_table .' WHERE Id < 0' ); + $fields_hash['Id'] = $new_id - 1; + } + + $this->Conn->doInsert($fields_hash, $ug_table); } }