Index: branches/unlabeled/unlabeled-1.68.2/core/units/users/users_event_handler.php =================================================================== diff -u -r6922 -r6923 --- branches/unlabeled/unlabeled-1.68.2/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 6922) +++ branches/unlabeled/unlabeled-1.68.2/core/units/users/users_event_handler.php (.../users_event_handler.php) (revision 6923) @@ -341,14 +341,19 @@ { $object =& $event->getObject(); - $sql = 'UPDATE '.TABLE_PREFIX.'UserGroup + $ug_table = TABLE_PREFIX.'UserGroup'; + if ($object->mode == 't') { + $ug_table = $this->Application->GetTempName($ug_table, 'prefix:'.$event->Prefix); + } + + $sql = 'UPDATE '.$ug_table.' SET PrimaryGroup = 0 WHERE PortalUserId = '.$object->GetDBField('PortalUserId'); $this->Conn->Query($sql); $group_id = $this->Application->ConfigValue('User_NewGroup'); - $sql = 'REPLACE INTO '.TABLE_PREFIX.'UserGroup(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)'; + $sql = 'REPLACE INTO '.$ug_table.'(PortalUserId,GroupId,PrimaryGroup) VALUES (%s,%s,1)'; $this->Conn->Query( sprintf($sql, $object->GetID(), $group_id) ); } } @@ -1049,20 +1054,29 @@ return false; } + // put salt to user's config + $field_options = $this->Application->getUnitOption($event->Prefix.'.RootPassword', 'Fields'); + $field_options['salt'] = 'b38'; + $this->Application->setUnitOption($event->Prefix.'.RootPassword', 'Fields', $field_options); + $object =& $event->getObject( Array('skip_autoload' => true) ); /* @var $object UsersItem */ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); if ($items_info) { list ($id, $field_values) = each($items_info); - $object->SetDefaultValues(); + $this->RemoveRequiredFields($object); $object->SetDBField('RootPassword', $this->Application->ConfigValue('RootPass')); - $object->Fields['RootPassword']['salt'] = 'b38'; - $object->SetFieldsFromHash($field_values); $status = $object->Validate(); if ($status) { // validation on, password match too + $fields_hash = Array ( + 'VariableValue' => $object->GetDBField('RootPassword') + ); + $conf_table = $this->Application->getUnitOption('conf', 'TableName'); + $this->Conn->doUpdate($fields_hash, $conf_table, 'VariableName = "RootPass"'); + $event->SetRedirectParam('opener', 'u'); } else { $event->status = erFAIL;