in enginframe/hydrogen.manage-users.js [430:583]
editUserDialog: function (dialogTitle, buttonLabel, isEdit, actor, oldUserName, oldRealName, oldIsAdmin, isEFAdmin, oldGroups, actionfunc) {
var dialog, button, dialogButtons, warningBox;
var userNameEntry, passwordEntry, re_passwordEntry, realNameEntry, isAdminLabel, isAdminEntry, filteredGroups, groupsInputId, groupsEntry;
dialog = jQuery('<div class="ef-manage-user-dialog hy-simple-input-dialog"/>').appendTo(jQuery('body'));
jQuery('<div class="ef-manage-user-dialog-message" style="display:none;" />').appendTo(dialog);
if (!isEdit) {
jQuery('<label for="user-name" style="display:block">User Name:</label>').appendTo(dialog);
userNameEntry = jQuery('<input type="text" name="user-name" id="user-name"/>').appendTo(dialog);
jQuery('<label for="password" style="display:block">Password:</label>').appendTo(dialog);
passwordEntry = jQuery('<input type="password" name="password" id="password"/>').appendTo(dialog);
jQuery('<label for="re_password" style="display:block">Re-Password:</label>').appendTo(dialog);
re_passwordEntry = jQuery('<input type="password" name="re_password" id="re_password"/>').appendTo(dialog);
}
jQuery('<label for="real-name" style="display:block">Real Name:</label>').appendTo(dialog);
realNameEntry = jQuery('<input type="text" name="real-name" id="real-name"/>').appendTo(dialog);
if (isEdit) {
realNameEntry.val(oldRealName);
}
isAdminLabel = jQuery('<label for="is-admin" style="display:block">Administrator:</label>').appendTo(dialog);
isAdminEntry = jQuery('<input type="checkbox" name="is-admin" id="is-admin" value="admin"/>').appendTo(isAdminLabel);
filteredGroups = oldGroups;
if (isEdit && oldIsAdmin === "true") {
isAdminEntry.prop('checked', true);
filteredGroups = oldGroups.split(',').filter(function (currentValue) {
// admin group is managed by the checkbox
return currentValue != "admin";
}).join();
}
if (isEdit && ((actor && actor === oldUserName) || isEFAdmin === "true")) {
isAdminEntry.prop('disabled', true);
}
groupsInputId = 'groups_' + Math.floor(Math.random() * 1000) + 1;
jQuery('<label for="' + groupsInputId + '" style="display:block">Groups:</label>').appendTo(dialog);
groupsEntry = jQuery('<input type="text" name="groups" id="' + groupsInputId + '"/>').appendTo(dialog);
if (isEdit) {
groupsEntry.val(filteredGroups);
}
manageUsers.tagIt("#" + groupsInputId, "groups", "", false, '//com.enginframe.user-group-manager/list.groups');
warningBox = jQuery('<div class="ui-state-error ui-corner-all ef-ugm-reserved-group ui-helper-hidden">' +
'<table width="100%"><tbody><tr><td><span class="ui-icon ui-icon-alert"/></td><td width="99%"><span class="msgErr"/></td></tr></tbody></table>' +
'</div>').appendTo(dialog);
jQuery("#" + groupsInputId).tagit({
beforeTagAdded: function (event, ui) {
if (ui.tagLabel === "admin" || ui.tagLabel === "all-users") {
jQuery(".ef-ugm-reserved-group span.msgErr").text("Group " + ui.tagLabel + " is reserved!");
jQuery(".ef-ugm-reserved-group").removeClass("ui-helper-hidden");
return false;
}
else if (!(new RegExp('^[\\w.-]+$')).test(ui.tagLabel)) {
jQuery(".ef-ugm-reserved-group span.msgErr").text("Invalid character for group name!");
jQuery(".ef-ugm-reserved-group").removeClass("ui-helper-hidden");
return false;
}
else {
jQuery(".ef-ugm-reserved-group").addClass("ui-helper-hidden");
}
}
});
dialogButtons = {
Cancel: function () {
jQuery(this).dialog("close");
}
};
dialogButtons[buttonLabel] = function () {
var userName, password, re_password, realName, groups, sdf, namespace;
if (!isEdit) {
userName = userNameEntry.val();
password = passwordEntry.val();
re_password = re_passwordEntry.val();
if (userName.length <= 0) {
jQuery('.ef-manage-user-dialog-message').hymessage().hymessage('alert', "User Name cannot be empty");
return false;
}
if (!/^[_a-zA-Z0-9][_a-zA-Z0-9.@\-]*$/.test(userName)) {
jQuery('.ef-manage-user-dialog-message').hymessage().hymessage('alert', "Invalid User Name: Allowed characters are letters, digits or one of _ . - @");
return false;
}
if (password != re_password) {
jQuery('.ef-manage-user-dialog-message').hymessage().hymessage('alert', "You entered two different password.");
return false;
}
}
else {
userName = oldUserName;
}
realName = realNameEntry.val();
groups = groupsEntry.val();
jQuery(this).dialog("close");
// add group admin if checkbox Administrator is checked
if (jQuery(isAdminEntry).is(':checked')) {
if (groups) {
groups += ",admin";
}
else {
groups += "admin";
}
}
actionfunc(userName, password, re_password, realName, groups);
};
dialog.dialog({
title: dialogTitle,
resizable: false,
buttons: dialogButtons,
modal: true
});
button = jQuery('button:contains(' + buttonLabel + ')', dialog.parent('div.ui-dialog'));
button.addClass('ui-priority-primary');
if (!isEdit) {
userNameEntry.keypress(function (e) {
if (e.which === 13) {
button.click();
return false;
}
return true;
});
}
realNameEntry.keypress(function (e) {
if (e.which === 13) {
button.click();
return false;
}
return true;
});
groupsEntry.keypress(function (e) {
if (e.which === 13) {
button.click();
return false;
}
return true;
});
},