mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
Account page - user tab - implement "Edit User" action.
This commit is contained in:
parent
51b55d8ae9
commit
c07d1b3e7b
@ -621,6 +621,103 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- Add User Dialog (end)-->
|
||||
|
||||
<!-- Edit User Dialog (begin)-->
|
||||
<div id="dialog_edit_user" title="Edit User" style="display:none">
|
||||
<p>Please review your changes before clicking 'Save'</p>
|
||||
<div class="dialog_formcontent">
|
||||
<form action="#" method="post" id="form2">
|
||||
<ol>
|
||||
<li>
|
||||
<label for="edit_user_username">User name:</label>
|
||||
<input class="text" type="text" name="edit_user_username" id="edit_user_username"/>
|
||||
<div id="edit_user_username_errormsg" class="dialog_formcontent_errormsg" style="display:none;" ></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="edit_user_email">Email:</label>
|
||||
<input class="text" type="text" name="edit_user_email" id="edit_user_email"/>
|
||||
<div id="edit_user_email_errormsg" class="dialog_formcontent_errormsg" style="display:none;" ></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="edit_user_firstname">First name:</label>
|
||||
<input class="text" type="text" name="edit_user_firstname" id="edit_user_firstname"/>
|
||||
<div id="edit_user_firstname_errormsg" class="dialog_formcontent_errormsg" style="display:none;" ></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="edit_user_lastname">Last name:</label>
|
||||
<input class="text" type="text" name="edit_user_lastname" id="edit_user_lastname"/>
|
||||
<div id="edit_user_lastname_errormsg" class="dialog_formcontent_errormsg" style="display:none;" ></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="edit_user_timezone">Time Zone:</label>
|
||||
<select class="select" id="edit_user_timezone">
|
||||
<option value=""></option>
|
||||
<option value='Etc/GMT+11'>[UTC-11:00] GMT-11:00</option>
|
||||
<option value='Pacific/Samoa'>[UTC-11:00] Samoa Standard Time</option>
|
||||
<option value='Pacific/Honolulu'>[UTC-10:00] Hawaii Standard Time</option>
|
||||
<option value='US/Alaska'>[UTC-09:00] Alaska Standard Time</option>
|
||||
<option value='America/Los_Angeles'>[UTC-08:00] Pacific Standard Time</option>
|
||||
<option value='Mexico/BajaNorte'>[UTC-08:00] Baja California</option>
|
||||
<option value='US/Arizona'>[UTC-07:00] Arizona</option>
|
||||
<option value='US/Mountain'>[UTC-07:00] Mountain Standard Time</option>
|
||||
<option value='America/Chihuahua'>[UTC-07:00] Chihuahua, La Paz</option>
|
||||
<option value='America/Chicago'>[UTC-06:00] Central Standard Time</option>
|
||||
<option value='America/Costa_Rica'>[UTC-06:00] Central America</option>
|
||||
<option value='America/Mexico_City'>[UTC-06:00] Mexico City, Monterrey</option>
|
||||
<option value='Canada/Saskatchewan'>[UTC-06:00] Saskatchewan</option>
|
||||
<option value='America/Bogota'>[UTC-05:00] Bogota, Lima</option>
|
||||
<option value='America/New_York'>[UTC-05:00] Eastern Standard Time</option>
|
||||
<option value='America/Caracas'>[UTC-04:00] Venezuela Time</option>
|
||||
<option value='America/Asuncion'>[UTC-04:00] Paraguay Time</option>
|
||||
<option value='America/Cuiaba'>[UTC-04:00] Amazon Time</option>
|
||||
<option value='America/Halifax'>[UTC-04:00] Atlantic Standard Time</option>
|
||||
<option value='America/La_Paz'>[UTC-04:00] Bolivia Time</option>
|
||||
<option value='America/Santiago'>[UTC-04:00] Chile Time</option>
|
||||
<option value='America/St_Johns'>[UTC-03:30] Newfoundland Standard Time</option>
|
||||
<option value='America/Araguaina'>[UTC-03:00] Brasilia Time</option>
|
||||
<option value='America/Argentina/Buenos_Aires'>[UTC-03:00] Argentine Time</option>
|
||||
<option value='America/Cayenne'>[UTC-03:00] French Guiana Time</option>
|
||||
<option value='America/Godthab'>[UTC-03:00] Greenland Time</option>
|
||||
<option value='America/Montevideo'>[UTC-03:00] Uruguay Time]</option>
|
||||
<option value='Etc/GMT+2'>[UTC-02:00] GMT-02:00</option>
|
||||
<option value='Atlantic/Azores'>[UTC-01:00] Azores Time</option>
|
||||
<option value='Atlantic/Cape_Verde'>[UTC-01:00] Cape Verde Time</option>
|
||||
<option value='Africa/Casablanca'>[UTC] Casablanca</option>
|
||||
<option value='Etc/UTC'>[UTC] Coordinated Universal Time</option>
|
||||
<option value='Atlantic/Reykjavik'>[UTC] Reykjavik</option>
|
||||
<option value='Europe/London'>[UTC] Western European Time</option>
|
||||
<option value='CET'>[UTC+01:00] Central European Time</option>
|
||||
<option value='Europe/Bucharest'>[UTC+02:00] Eastern European Time</option>
|
||||
<option value='Africa/Johannesburg'>[UTC+02:00] South Africa Standard Time</option>
|
||||
<option value='Asia/Beirut'>[UTC+02:00] Beirut</option>
|
||||
<option value='Africa/Cairo'>[UTC+02:00] Cairo</option>
|
||||
<option value='Asia/Jerusalem'>[UTC+02:00] Israel Standard Time</option>
|
||||
<option value='Europe/Minsk'>[UTC+02:00] Minsk</option>
|
||||
<option value='Europe/Moscow'>[UTC+03:00] Moscow Standard Time</option>
|
||||
<option value='Africa/Nairobi'>[UTC+03:00] Eastern African Time</option>
|
||||
<option value='Asia/Karachi'>[UTC+05:00] Pakistan Time</option>
|
||||
<option value='Asia/Kolkata'>[UTC+05:30] India Standard Time</option>
|
||||
<option value='Asia/Bangkok'>[UTC+05:30] Indochina Time</option>
|
||||
<option value='Asia/Shanghai'>[UTC+08:00] China Standard Time</option>
|
||||
<option value='Asia/Kuala_Lumpur'>[UTC+08:00] Malaysia Time</option>
|
||||
<option value='Australia/Perth'>[UTC+08:00] Western Standard Time (Australia)</option>
|
||||
<option value='Asia/Taipei'>[UTC+08:00] Taiwan</option>
|
||||
<option value='Asia/Tokyo'>[UTC+09:00] Japan Standard Time</option>
|
||||
<option value='Asia/Seoul'>[UTC+09:00] Korea Standard Time</option>
|
||||
<option value='Australia/Adelaide'>[UTC+09:30] Central Standard Time (South Australia)</option>
|
||||
<option value='Australia/Darwin'>[UTC+09:30] Central Standard Time (Northern Territory)</option>
|
||||
<option value='Australia/Brisbane'>[UTC+10:00] Eastern Standard Time (Queensland)</option>
|
||||
<option value='Australia/Canberra'>[UTC+10:00] Eastern Standard Time (New South Wales)</option>
|
||||
<option value='Pacific/Guam'>[UTC+10:00] Chamorro Standard Time</option>
|
||||
<option value='Pacific/Auckland'>[UTC+12:00] New Zealand Standard Time</option>
|
||||
</select>
|
||||
</li>
|
||||
</ol>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Edit User Dialog (end)-->
|
||||
|
||||
<!-- dialogs (end) -->
|
||||
|
||||
<!-- advanced search template (begin) -->
|
||||
|
||||
@ -17,8 +17,12 @@
|
||||
*/
|
||||
|
||||
var rootDomainId = 1;
|
||||
|
||||
var systemAccountId = 1;
|
||||
var adminAccountId = 2;
|
||||
var adminAccountId = 2;
|
||||
|
||||
var systemUserId = 1;
|
||||
var adminUserId = 2;
|
||||
|
||||
function accountGetSearchParams() {
|
||||
var moreCriteria = [];
|
||||
@ -44,10 +48,13 @@ function accountGetSearchParams() {
|
||||
}
|
||||
|
||||
function afterLoadAccountJSP() {
|
||||
initDialog("dialog_resource_limits");
|
||||
initDialog("dialog_disable_account");
|
||||
initDialog("dialog_lock_account");
|
||||
initDialog("dialog_enable_account");
|
||||
if(isAdmin()) {
|
||||
initDialog("dialog_resource_limits");
|
||||
initDialog("dialog_disable_account");
|
||||
initDialog("dialog_lock_account");
|
||||
initDialog("dialog_enable_account");
|
||||
initDialog("dialog_edit_user", 450);
|
||||
}
|
||||
|
||||
// switch between different tabs
|
||||
var tabArray = [$("#tab_details"), $("#tab_user")];
|
||||
@ -386,22 +393,24 @@ function accountJsonToDetailsTab() {
|
||||
$actionMenu.find("#action_list").empty();
|
||||
var noAvailableActions = true;
|
||||
|
||||
if(jsonObj.id != systemAccountId && jsonObj.id != adminAccountId) {
|
||||
if (jsonObj.accounttype == roleTypeUser || jsonObj.accounttype == roleTypeDomainAdmin) {
|
||||
buildActionLinkForTab("Resource limits", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
|
||||
if(jsonObj.state == "enabled") {
|
||||
buildActionLinkForTab("Disable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
buildActionLinkForTab("Lock account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
else if(jsonObj.state == "disabled" || jsonObj.state == "locked") {
|
||||
buildActionLinkForTab("Enable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
}
|
||||
if(isAdmin()) {
|
||||
if(jsonObj.id != systemAccountId && jsonObj.id != adminAccountId) {
|
||||
if (jsonObj.accounttype == roleTypeUser || jsonObj.accounttype == roleTypeDomainAdmin) {
|
||||
buildActionLinkForTab("Resource limits", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
|
||||
if(jsonObj.state == "enabled") {
|
||||
buildActionLinkForTab("Disable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
buildActionLinkForTab("Lock account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
else if(jsonObj.state == "disabled" || jsonObj.state == "locked") {
|
||||
buildActionLinkForTab("Enable account", accountActionMap, $actionMenu, $midmenuItem1, $detailsTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// no available actions
|
||||
if(noAvailableActions == true) {
|
||||
@ -478,6 +487,7 @@ function accountUserJSONToTemplate(jsonObj, $template) {
|
||||
var noAvailableActions = true;
|
||||
|
||||
if(isAdmin()) {
|
||||
buildActionLinkForSubgridItem("Edit User", accountUserActionMap, $actionMenu, $template);
|
||||
buildActionLinkForSubgridItem("Generate Keys", accountUserActionMap, $actionMenu, $template);
|
||||
noAvailableActions = false;
|
||||
|
||||
@ -533,19 +543,6 @@ var accountActionMap = {
|
||||
}
|
||||
};
|
||||
|
||||
var accountUserActionMap = {
|
||||
"Generate Keys": {
|
||||
api: "registerUserKeys",
|
||||
isAsyncJob: false,
|
||||
inProcessText: "Generate Keys....",
|
||||
afterActionSeccessFn: function(json, id, $subgridItem) {
|
||||
var jsonObj = json.registeruserkeysresponse.userkeys;
|
||||
$subgridItem.find("#apikey").text(fromdb(jsonObj.apikey));
|
||||
$subgridItem.find("#secretkey").text(fromdb(jsonObj.secretkey));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateResourceLimitForAccount(domainId, account, type, max) {
|
||||
$.ajax({
|
||||
data: createURL("command=updateResourceLimit&domainid="+domainId+"&account="+account+"&resourceType="+type+"&max="+max),
|
||||
@ -684,4 +681,79 @@ function doEnableAccount($actionLink, $detailsTab, $midmenuItem1) {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}).dialog("open");
|
||||
}
|
||||
|
||||
|
||||
var accountUserActionMap = {
|
||||
"Edit User": {
|
||||
dialogBeforeActionFn : doEditUser
|
||||
},
|
||||
"Generate Keys": {
|
||||
api: "registerUserKeys",
|
||||
isAsyncJob: false,
|
||||
inProcessText: "Generate Keys....",
|
||||
afterActionSeccessFn: function(json, id, $subgridItem) {
|
||||
var jsonObj = json.registeruserkeysresponse.userkeys;
|
||||
$subgridItem.find("#apikey").text(fromdb(jsonObj.apikey));
|
||||
$subgridItem.find("#secretkey").text(fromdb(jsonObj.secretkey));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function doEditUser($actionLink, $subgridItem) {
|
||||
var jsonObj = $subgridItem.data("jsonObj");
|
||||
var id = jsonObj.id;
|
||||
|
||||
var $dialogEditUser = $("#dialog_edit_user");
|
||||
|
||||
$dialogEditUser.find("#edit_user_username").val($subgridItem.find("#username").text());
|
||||
if(id==systemUserId || id==adminUserId)
|
||||
$dialogEditUser.find("#edit_user_username").attr("disabled", true);
|
||||
else
|
||||
$dialogEditUser.find("#edit_user_username").attr("disabled", false);
|
||||
|
||||
$dialogEditUser.find("#edit_user_email").val($subgridItem.find("#email").text());
|
||||
$dialogEditUser.find("#edit_user_firstname").val($subgridItem.find("#firstname").text());
|
||||
$dialogEditUser.find("#edit_user_lastname").val($subgridItem.find("#lastname").text());
|
||||
$dialogEditUser.find("#edit_user_timezone").val($subgridItem.data("timezone"));
|
||||
|
||||
$dialogEditUser
|
||||
.dialog('option', 'buttons', {
|
||||
"Save": function() {
|
||||
var $thisDialog = $(this);
|
||||
|
||||
// validate values
|
||||
var isValid = true;
|
||||
isValid &= validateString("User name", $thisDialog.find("#edit_user_username"), $thisDialog.find("#edit_user_username_errormsg"), false); //required
|
||||
isValid &= validateString("Email", $thisDialog.find("#edit_user_email"), $thisDialog.find("#edit_user_email_errormsg"), true); //optional
|
||||
isValid &= validateString("First name", $thisDialog.find("#edit_user_firstname"), $thisDialog.find("#edit_user_firstname_errormsg"), true); //optional
|
||||
isValid &= validateString("Last name", $thisDialog.find("#edit_user_lastname"), $thisDialog.find("#edit_user_lastname_errormsg"), true); //optional
|
||||
if (!isValid)
|
||||
return;
|
||||
|
||||
var username = $thisDialog.find("#edit_user_username").val();
|
||||
var email = $thisDialog.find("#edit_user_email").val();
|
||||
var firstname = $thisDialog.find("#edit_user_firstname").val();
|
||||
var lastname = $thisDialog.find("#edit_user_lastname").val();
|
||||
var timezone = $thisDialog.find("#edit_user_timezone").val();
|
||||
|
||||
$thisDialog.dialog("close");
|
||||
|
||||
$.ajax({
|
||||
data: createURL("command=updateUser&id="+id+"&username="+todb(username)+"&email="+todb(email)+"&firstname="+todb(firstname)+"&lastname="+todb(lastname)+"&timezone="+todb(timezone)),
|
||||
dataType: "json",
|
||||
success: function(json) {
|
||||
$subgridItem.find("#username").text(username);
|
||||
$subgridItem.find("#email").text(email);
|
||||
$subgridItem.find("#firstname").text(firstname);
|
||||
$subgridItem.find("#lastname").text(lastname);
|
||||
$subgridItem.find("#timezone").text(timezones[timezone]);
|
||||
$subgridItem.data("timezone", timezone);
|
||||
}
|
||||
});
|
||||
},
|
||||
"Cancel": function() {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}).dialog("open");
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user