function IdentityForm(&$Context, &$UserManager, &$User) { $this->Name = 'IdentityForm'; $this->ValidActions = array('ProcessIdentity', 'Identity'); $this->Constructor($Context); if ($this->IsPostBack) { $this->UserManager =& $UserManager; $this->User = clone $User; if ($this->PostBackAction == 'ProcessIdentity' && $this->IsValidFormPostBack()) { $this->User->Clear(); $this->User->GetPropertiesFromForm(); $this->User->Preferences = $User->Preferences; $this->CallDelegate('PreSaveIdentity'); if ($this->UserManager->SaveIdentity($this->User) && $this->UserManager->SaveUserCustomizationsFromForm($this->User)) { $Url = GetUrl($this->Context->Configuration, $this->Context->SelfUrl, '', 'u', $this->Context->Session->UserID == 0 ? '' : $this->User->UserID, '', 'Success=1'); //@todo: should the process die here Redirect($Url, '302', '', 0); } } } $this->CallDelegate('Constructor'); }