', WT_I18N::translate('Restrict to immediate family'), help_link('RELATIONSHIP_PATH_LENGTH'), '
',
'
';
foreach (WT_Tree::getAll() as $tree) {
echo
'
',
$tree->tree_title_html,
//Pedigree root person
'
',
// TODO: autocomplete/find/etc. for this field
edit_field_inline('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-rootid', $tree->userPreference($user_id, 'rootid')),
'
',
// TODO: autocomplete/find/etc. for this field
edit_field_inline('user_gedcom_setting-'.$user_id.'-'.$tree->tree_id.'-gedcomid', $tree->userPreference($user_id, 'gedcomid')),
'
', WT_I18N::translate('Passwords do not match.'), '
';
$action='createform';
} else {
// Create new uers
$user_id=create_user($username, $realname, $emailaddress, $pass1);
set_user_setting($user_id, 'reg_timestamp', date('U'));
set_user_setting($user_id, 'sessiontime', '0');
setUserFullName ($user_id, $realname);
setUserEmail ($user_id, $emailaddress);
set_user_setting($user_id, 'theme', $user_theme);
set_user_setting($user_id, 'language', $user_language);
set_user_setting($user_id, 'contactmethod', $new_contact_method);
set_user_setting($user_id, 'comment', $new_comment);
set_user_setting($user_id, 'auto_accept', $new_auto_accept);
set_user_setting($user_id, 'canadmin', $canadmin);
set_user_setting($user_id, 'visibleonline', $visibleonline);
set_user_setting($user_id, 'editaccount', $editaccount);
set_user_setting($user_id, 'verified', $verified);
set_user_setting($user_id, 'verified_by_admin', $verified_by_admin);
foreach (WT_Tree::getAll() as $tree) {
$tree->userPreference($user_id, 'gedcomid', WT_Filter::post('gedcomid'.$tree->tree_id, WT_REGEX_XREF));
$tree->userPreference($user_id, 'rootid', WT_Filter::post('rootid'.$tree->tree_id, WT_REGEX_XREF));
$tree->userPreference($user_id, 'canedit', WT_Filter::post('canedit'.$tree->tree_id, implode('|', array_keys($ALL_EDIT_OPTIONS))));
if (WT_Filter::post('gedcomid'.$tree->tree_id, WT_REGEX_XREF)) {
$tree->userPreference($user_id, 'RELATIONSHIP_PATH_LENGTH', WT_Filter::postInteger('RELATIONSHIP_PATH_LENGTH'.$tree->tree_id, 0, 10, 0));
} else {
// Do not allow a path length to be set if the individual ID is not
$tree->userPreference($user_id, 'RELATIONSHIP_PATH_LENGTH', null);
}
}
AddToLog("User ->{$username}<- created", 'auth');
$action='listusers';
}
}
// Pass 2 - display page
switch ($action) {
case 'createform':
if (count(WT_Tree::getAll())==1) { //Removed becasue it doesn't work here for multiple GEDCOMs. Can be reinstated when fixed (https://bugs.launchpad.net/webtrees/+bug/613235)
$controller->addExternalJavascript(WT_STATIC_URL.'js/autocomplete.js');
}
init_calendar_popup();
$controller->addInlineJavascript('
function checkform(frm) {
if (frm.username.value=="") {
alert("'.WT_I18N::translate('You must enter a user name.').'");
frm.username.focus();
return false;
}
if (frm.realname.value=="") {
alert("'.WT_I18N::translate('You must enter a real name.').'");
frm.realname.focus();
return false;
}
if (frm.pass1.value=="") {
alert("'.WT_I18N::translate('You must enter a password.').'");
frm.pass1.focus();
return false;
}
if (frm.emailaddress.value=="") {
alert("'.WT_I18N::translate('You must enter an email address.').'");
frm.emailaddress.focus();
return false;
}
if (frm.pass2.value=="") {
alert("'.WT_I18N::translate('You must confirm the password.').'");
frm.pass2.focus();
return false;
}
if (frm.pass1.value.length < 6) {
alert("'.WT_I18N::translate('Passwords must contain at least 6 characters.').'");
frm.pass1.value = "";
frm.pass2.value = "";
frm.pass1.focus();
return false;
}
return true;
}
var pastefield;
function paste_id(value) {
pastefield.value=value;
}
jQuery(".relpath").change(function() {
var fieldIDx = jQuery(this).attr("id");
var idNum = fieldIDx.replace("RELATIONSHIP_PATH_LENGTH","");
var newIDx = "gedcomid"+idNum;
if (jQuery("#"+newIDx).val()=="") {
alert("'.WT_I18N::translate('You must specify an individual record before you can restrict the user to their immediate family.').'");
jQuery(this).val("");
}
});
');
echo '
';
break;
case 'cleanup':
?>
$user_name) {
$var = "del_".str_replace(array(".", "-", " "), array("_", "_", "_"), $user_name);
if (WT_Filter::post($var)=='1') {
delete_user($user_id);
AddToLog("deleted user ->{$user_name}<-", 'auth');
echo WT_I18N::translate('Deleted user: '); echo $user_name, " ";
}
}
break;
case 'listusers':
default:
echo
'
',
'',
'
',
'
',
'
user-id
',
'
', WT_I18N::translate('Username'), '
',
'
', WT_I18N::translate('Real name'), '
',
'
', WT_I18N::translate('Email'), '
',
'
', /* COLSPAN does not work? */
'
', WT_I18N::translate('Language'), '
',
'
date_registered
',
'
', WT_I18N::translate('Date registered'), '
',
'
last_login
',
'
', WT_I18N::translate('Last logged in'), '
',
'
', WT_I18N::translate('Verified'), '
',
'
', WT_I18N::translate('Approved'), '
',
'
',
'
',
'',
'',
'',
'
';
$controller
->addExternalJavascript(WT_JQUERY_DATATABLES_URL)
->addExternalJavascript(WT_JQUERY_JEDITABLE_URL)
->addInlineJavascript('
var oTable = jQuery("#list").dataTable({
"sDom": \'<"H"pf<"dt-clear">irl>t<"F"pl>\',
'.WT_I18N::datatablesI18N().',
"bProcessing" : true,
"bServerSide" : true,
"sAjaxSource" : "'.WT_SCRIPT_NAME.'?action=loadrows",
"bJQueryUI": true,
"bAutoWidth":false,
"iDisplayLength": '.get_user_setting(WT_USER_ID, 'admin_users_page_size', 10).',
"sPaginationType": "full_numbers",
"aaSorting": [[2,"asc"]],
"aoColumns": [
/* details */ { bSortable:false, sClass:"icon-open" },
/* user-id */ { bVisible:false },
/* user_name */ null,
/* real_name */ null,
/* email */ null,
/* email link */ { bSortable:false },
/* language */ null,
/* registered (sort) */ { bVisible:false },
/* registered */ { iDataSort:7 },
/* last_login (sort) */ { bVisible:false },
/* last_login */ { iDataSort:9 },
/* verified */ { sClass:"center" },
/* approved */ { sClass:"center" },
/* delete */ { bSortable:false }
],
"fnDrawCallback": function() {
// Our JSON responses include Javascript as well as HTML. This does not get executed automatically…
jQuery("#list script").each(function() {
eval(this.text);
});
}
});
/* When clicking on the +/- icon, we expand/collapse the details block */
jQuery("#list tbody").on("click", "td.icon-close", function () {
var nTr=this.parentNode;
jQuery(this).removeClass("icon-close");
oTable.fnClose(nTr);
jQuery(this).addClass("icon-open");
});
jQuery("#list tbody").on("click", "td.icon-open", function () {
var nTr=this.parentNode;
jQuery(this).removeClass("icon-open");
var aData=oTable.fnGetData(nTr);
jQuery.get("'.WT_SCRIPT_NAME.'?action=load1row&user_id="+aData[1], function(data) {
oTable.fnOpen(nTr, data, "details");
});
jQuery(this).addClass("icon-close");
});
oTable.fnFilter("'.WT_Filter::get('filter').'");
');
break;
}