getPreference('editaccount')) { header('Location: '.WT_SERVER_NAME.WT_SCRIPT_PATH); exit; } // Valid values for form variables $ALL_THEMES_DIRS=array(); foreach (get_theme_names() as $themename=>$themedir) { $ALL_THEME_DIRS[]=$themedir; } // Extract form variables $form_action = WT_Filter::post('form_action'); $form_username = WT_Filter::post('form_username'); $form_realname = WT_Filter::post('form_realname' ); $form_pass1 = WT_Filter::post('form_pass1', WT_REGEX_PASSWORD); $form_pass2 = WT_Filter::post('form_pass2', WT_REGEX_PASSWORD); $form_email = WT_Filter::postEmail('form_email'); $form_rootid = WT_Filter::post('form_rootid', WT_REGEX_XREF); $form_theme = WT_Filter::post('form_theme', implode('|', $ALL_THEME_DIRS)); $form_language = WT_Filter::post('form_language', implode('|', array_keys(WT_I18N::installed_languages())), WT_LOCALE); $form_contact_method = WT_Filter::post('form_contact_method'); $form_visible_online = WT_Filter::postBool('form_visible_online'); // Respond to form action if ($form_action=='update' && WT_Filter::checkCsrf()) { if ($form_username != Auth::user()->getUserName() && User::findByIdentifier($form_username)) { WT_FlashMessages::addMessage(WT_I18N::translate('Duplicate user name. A user with that user name already exists. Please choose another user name.')); } elseif ($form_email != Auth::user()->getEmail() && User::findByIdentifier($form_email)) { WT_FlashMessages::addMessage(WT_I18N::translate('Duplicate email address. A user with that email already exists.')); } else { // Change username if ($form_username != WT_USER_NAME) { Log::addAuthenticationLog('User ' . Auth::user()->getUserName() . ' renamed to ' . $form_username); Auth::user()->setUserName($form_username); } // Change password if ($form_pass1 && $form_pass1 == $form_pass2) { Auth::user()->setPassword($form_pass1); } // Change other settings Auth::user() ->setRealName($form_realname) ->setEmail($form_email) ->setPreference('theme', $form_theme) ->setPreference('language', $form_language) ->setPreference('contactmethod', $form_contact_method) ->setPreference('visibleonline', $form_visible_online); $WT_TREE->setUserPreference(Auth::user(), 'rootid', $form_rootid); // Reload page to pick up changes such as theme and user_id header('Location: ' . WT_SERVER_NAME . WT_SCRIPT_PATH . WT_SCRIPT_NAME); exit; } } $controller = new WT_Controller_Page(); $controller ->setPageTitle(WT_I18N::translate('User administration')) ->pageHeader() ->addExternalJavascript(WT_STATIC_URL . 'js/autocomplete.js') ->addInlineJavascript('autocomplete();'); // Form validation ?>

', WT_I18N::translate('My account'), '

', WT_Filter::getCsrf(), '
', WT_I18N::translate('Username'), help_link('username'), '
', WT_I18N::translate('Real name'), help_link('real_name'), '
'; $person = WT_Individual::getInstance(WT_USER_GEDCOM_ID); if ($person) { echo '
', WT_I18N::translate('Individual record'), help_link('edituser_gedcomid'), '
', $person->format_list('span'), '
'; } $person = WT_Individual::getInstance(WT_USER_ROOT_ID); echo '
', WT_I18N::translate('Default individual'), help_link('default_individual'), '
'; echo print_findindi_link('rootid'), '
'; if ($person) { echo $person->format_list('span'); } echo '
', WT_I18N::translate('Password'), help_link('password'), '
', WT_I18N::translate('Leave password blank if you want to keep the current password.'), '
', WT_I18N::translate('Confirm password'), help_link('password_confirm'), '
', WT_I18N::translate('Language'), '
', edit_field_language('form_language', Auth::user()->getPreference('language')), '
', WT_I18N::translate('Email address'), help_link('email'), '
', WT_I18N::translate('Theme'), help_link('THEME'), '
', WT_I18N::translate('Preferred contact method'), help_link('edituser_contact_meth'), '
', edit_field_contact('form_contact_method', Auth::user()->getPreference('contactmethod')), '
', WT_I18N::translate('Visible to other users when online'), help_link('useradmin_visibleonline'), '
', checkbox('form_visible_online', Auth::user()->getPreference('visibleonline')), '
'; // close edituser-table echo '
'; echo '
'; // close edituser-page