mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
159 lines
5.8 KiB
JavaScript
159 lines
5.8 KiB
JavaScript
(function(cloudStack, $, testData) {
|
||
$.extend(window.cloudStack, testData, {
|
||
home: 'dashboard',
|
||
|
||
sectionPreFilter: function(args) {
|
||
if(isAdmin()) {
|
||
return ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "system", "global-settings", "configuration", "projects"];
|
||
}
|
||
else if(isDomainAdmin()) {
|
||
return ["dashboard", "instances", "storage", "network", "templates", "accounts", "domains", "events", "projects"];
|
||
}
|
||
else { //normal user
|
||
return ["dashboard", "instances", "storage", "network", "templates", "events", "projects"];
|
||
}
|
||
},
|
||
sections: {
|
||
/**
|
||
* Dashboard
|
||
*/
|
||
dashboard: {},
|
||
//'dashboard-user': {},
|
||
instances: {},
|
||
storage: {},
|
||
network: {},
|
||
templates: {},
|
||
accounts: {},
|
||
domains: {},
|
||
events: {},
|
||
system: {},
|
||
'global-settings': {},
|
||
configuration: {},
|
||
projects: {}
|
||
}
|
||
});
|
||
|
||
$(function() {
|
||
var $container = $('#cloudStack3-container');
|
||
|
||
cloudStack.uiCustom.login({
|
||
$container: $container,
|
||
|
||
// Use this for checking the session, to bypass login screen
|
||
bypassLoginCheck: function(args) {
|
||
return false;
|
||
return {
|
||
user: {
|
||
login: 'wchan',
|
||
name: 'Will Chan'
|
||
}
|
||
};
|
||
},
|
||
|
||
// Actual login process, via form
|
||
loginAction: function(args) {
|
||
var array1 = [];
|
||
array1.push("&username=" + encodeURIComponent(args.data.username));
|
||
|
||
var password;
|
||
if (md5Hashed)
|
||
password = $.md5(args.data.password);
|
||
else
|
||
password = args.data.password;
|
||
array1.push("&password=" + password);
|
||
|
||
var domain;
|
||
if(args.data.domain != null && args.data.domain.length > 0) {
|
||
if (args.data.domain.charAt(0) != "/")
|
||
domain = "/" + args.data.domain;
|
||
else
|
||
domain = args.data.domain;
|
||
array1.push("&domain=" + encodeURIComponent(domain));
|
||
}
|
||
else {
|
||
array1.push("&domain=" + encodeURIComponent("/"));
|
||
}
|
||
|
||
$.ajax({
|
||
//type: "POST",
|
||
url: createURL("login") + array1.join(""),
|
||
dataType: "json",
|
||
async: false,
|
||
success: function(json) {
|
||
var loginresponse = json.loginresponse;
|
||
|
||
g_mySession = $.cookie('JSESSIONID');
|
||
g_sessionKey = encodeURIComponent(loginresponse.sessionkey);
|
||
g_role = loginresponse.type;
|
||
g_username = loginresponse.username;
|
||
g_account = loginresponse.account;
|
||
g_domainid = loginresponse.domainid;
|
||
g_timezone = loginresponse.timezone;
|
||
g_timezoneoffset = loginresponse.timezoneoffset;
|
||
|
||
$.cookie('sessionKey', g_sessionKey, { expires: 1});
|
||
$.cookie('username', g_username, { expires: 1});
|
||
$.cookie('account', g_account, { expires: 1});
|
||
$.cookie('domainid', g_domainid, { expires: 1});
|
||
$.cookie('role', g_role, { expires: 1});
|
||
$.cookie('timezoneoffset', g_timezoneoffset, { expires: 1});
|
||
$.cookie('timezone', g_timezone, { expires: 1});
|
||
|
||
$.ajax({
|
||
url: createURL("listCapabilities"),
|
||
//url: "command=/client/api?listCapabilities&sessionkey="+g_sessionKey,
|
||
dataType: "json",
|
||
async: false,
|
||
success: function(json) {
|
||
/* g_supportELB: "guest" <20> ips are allocated on guest network (so use 'forvirtualnetwork' = false)
|
||
* g_supportELB: "public" - ips are allocated on public network (so use 'forvirtualnetwork' = true)
|
||
* g_supportELB: "false" <20> no ELB support
|
||
*/
|
||
g_supportELB = json.listcapabilitiesresponse.capability.supportELB.toString(); //convert boolean to string if it's boolean
|
||
$.cookie('supportELB', g_supportELB, { expires: 1});
|
||
|
||
g_firewallRuleUiEnabled = json.listcapabilitiesresponse.capability.firewallRuleUiEnabled.toString(); //convert boolean to string if it's boolean
|
||
$.cookie('firewallRuleUiEnabled', g_firewallRuleUiEnabled, { expires: 1});
|
||
|
||
if (json.listcapabilitiesresponse.capability.userpublictemplateenabled != null) {
|
||
g_userPublicTemplateEnabled = json.listcapabilitiesresponse.capability.userpublictemplateenabled.toString(); //convert boolean to string if it's boolean
|
||
$.cookie('userpublictemplateenabled', g_userPublicTemplateEnabled, { expires: 1});
|
||
}
|
||
|
||
if (json.listcapabilitiesresponse.capability.securitygroupsenabled != null) {
|
||
g_directAttachSecurityGroupsEnabled = json.listcapabilitiesresponse.capability.securitygroupsenabled.toString(); //convert boolean to string if it's boolean
|
||
$.cookie('directattachsecuritygroupsenabled', g_directAttachSecurityGroupsEnabled, { expires: 1});
|
||
}
|
||
|
||
args.response.success({
|
||
data: {
|
||
user: $.extend(true, {}, loginresponse, {
|
||
name: loginresponse.firstname + ' ' + loginresponse.lastname,
|
||
role: loginresponse.type == 1 ? 'admin' : 'user'
|
||
})
|
||
}
|
||
});
|
||
},
|
||
error: function(xmlHTTP) {
|
||
args.response.error();
|
||
}
|
||
});
|
||
},
|
||
error: function() {
|
||
args.response.error();
|
||
}
|
||
});
|
||
},
|
||
|
||
// Show cloudStack main UI widget
|
||
complete: function(args) {
|
||
$container.cloudStack($.extend(cloudStack, {
|
||
context: {
|
||
users: [args.user]
|
||
}
|
||
}));
|
||
}
|
||
});
|
||
});
|
||
})(cloudStack, jQuery, testData);
|