Index: trunk/kernel/include/portaluser.php =================================================================== diff -u -r3895 -r3907 --- trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3895) +++ trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3907) @@ -924,8 +924,7 @@ $fields_hash['IsBanned'] = 0; } - if (getArrayValue($fields_hash['Password'])) { - $user->Set('Password', $fields_hash['Password']); + if (isset($fields_hash['Password']) && !$fields_hash['Password']) { unset($fields_hash['Password']); } @@ -1083,29 +1082,38 @@ $edit_table = $objSession->GetEditTable($this->SourceTable); $sql = "SELECT * FROM $edit_table"; $rs = $this->adodbConnection->Execute($sql); + $user_dummy =& $this->Application->recallObject('u.-item', null, Array('skip_autoload' => true)); - //echo $sql."
"; $item_ids = Array(); - while($rs && !$rs->EOF) - { + while ($rs && !$rs->EOF) { $data = $rs->fields; $c = new $this->classname; $c->SetFromArray($data); $c->idfield = $idfield; $c->Dirty(); - if($c->Get($idfield)<1) - { - $old_id = $c->Get($idfield); - $c->UnsetIdField(); - $c->Create(); - $sql = "UPDATE ".GetTablePrefix()."UserGroup SET PortalUserId=".$c->Get("PortalUserId"); - $sql .=" WHERE PortalUserId=0"; - $this->adodbConnection->Execute($sql); + $user_dummy->SetDBFieldsFromHash($data); + + if ($c->Get($idfield) < 1) { + $old_id = $c->Get($idfield); + $c->UnsetIdField(); + $c->Create(); + $sql = "UPDATE ".GetTablePrefix()."UserGroup SET PortalUserId=".$c->Get("PortalUserId"); + $sql .=" WHERE PortalUserId=0"; + $this->adodbConnection->Execute($sql); + $event_name = 'OnAfterItemCreate'; } - else - { - $c->Update(); + else { + $c->Update(); + $event_name = 'OnAfterItemUpdate'; } + $user_dummy->setID($c->UniqueId()); + + // process after hooks: begin + $event = new kEvent('u.-item:'.$event_name); + $event->setEventParam('id', $user_dummy->GetID() ); + $this->Application->HandleEvent($event); + // process after hooks: end + $item_ids[] = $c->UniqueId(); unset($c);