1
|
define([
|
2
|
"dojo/_base/xhr",
|
3
|
"dojo/cookie"
|
4
|
],
|
5
|
function(xhr, cookie){
|
6
|
|
7
|
var user = {
|
8
|
is_admin: null,
|
9
|
username: null,
|
10
|
storagequota: null,
|
11
|
memoryquota: null,
|
12
|
vcpuquota: null,
|
13
|
externalipquota: null
|
14
|
};
|
15
|
if (typeof IRIGO === 'undefined') {
|
16
|
IRIGO = {};
|
17
|
}
|
18
|
|
19
|
user.load = function() {
|
20
|
var url = "/stabile/users?action=listids";
|
21
|
xhr.get({
|
22
|
sync: true,
|
23
|
url : url,
|
24
|
handleAs : "json",
|
25
|
load : function(response) {
|
26
|
user.privileges = response.items[0].privileges;
|
27
|
user.userprivileges = response.items[0].userprivileges;
|
28
|
user.is_admin = (user.privileges.indexOf('a') != -1);
|
29
|
user.is_readonly = (user.privileges.indexOf('r') != -1);
|
30
|
user.node_storage_allowed = (user.privileges.indexOf('n') != -1) || user.is_admin;
|
31
|
var tktuser
|
32
|
tktuser = response.items[0].tktuser;
|
33
|
if (!tktuser)
|
34
|
tktuser = cookie("tktuser");
|
35
|
var account = cookie("steamaccount");
|
36
|
if (account) user.username = account;
|
37
|
else user.username = tktuser;
|
38
|
user.tktuser = tktuser;
|
39
|
user.storagequota = Math.max(0, response.items[0].storagequota);
|
40
|
user.nodestoragequota = Math.max(0, response.items[0].nodestoragequota);
|
41
|
user.memoryquota = Math.max(0, response.items[0].memoryquota);
|
42
|
user.vcpuquota = Math.max(0, response.items[0].vcpuquota);
|
43
|
user.externalipquota = Math.max(0, response.items[0].externalipquota);
|
44
|
user.rxquota = Math.max(0, response.items[0].rxquota);
|
45
|
user.txquota = Math.max(0, response.items[0].txquota);
|
46
|
|
47
|
user.defaultstoragequota = Math.max(0, response.items[0].defaultstoragequota);
|
48
|
user.defaultnodestoragequota = Math.max(0, response.items[0].defaultnodestoragequota);
|
49
|
user.defaultmemoryquota = Math.max(0, response.items[0].defaultmemoryquota);
|
50
|
user.defaultvcpuquota = Math.max(0, response.items[0].defaultvcpuquota);
|
51
|
user.defaultexternalipquota = Math.max(0, response.items[0].defaultexternalipquota);
|
52
|
user.defaultrxquota = Math.max(0, response.items[0].defaultrxquota);
|
53
|
user.defaulttxquota = Math.max(0, response.items[0].defaulttxquota);
|
54
|
|
55
|
user.fullname = response.items[0].fullname;
|
56
|
user.phone = response.items[0].phone;
|
57
|
user.opphone = response.items[0].opphone;
|
58
|
user.opfullname = response.items[0].opfullname;
|
59
|
user.email = response.items[0].email;
|
60
|
user.opemail = response.items[0].opemail;
|
61
|
user.alertemail = response.items[0].alertemail;
|
62
|
user.allowfrom = response.items[0].allowfrom;
|
63
|
user.allowinternalapi = response.items[0].allowinternalapi;
|
64
|
user.lastlogin = response.items[0].lastlogin;
|
65
|
user.lastloginfrom = response.items[0].lastloginfrom;
|
66
|
if (response.items[0].hasOwnProperty("engine")) {
|
67
|
user.zfsavailable = response.items[0].engine.zfsavailable;
|
68
|
user.engineid = response.items[0].engine.engineid;
|
69
|
user.enginename = response.items[0].engine.enginename;
|
70
|
user.engineuser = response.items[0].engine.engineuser;
|
71
|
user.enginelinked = response.items[0].engine.enginelinked;
|
72
|
user.downloadmasters = response.items[0].engine.downloadmasters;
|
73
|
user.externaliprangestart = response.items[0].engine.externaliprangestart;
|
74
|
user.externaliprangeend = response.items[0].engine.externaliprangeend;
|
75
|
user.proxyiprangestart = response.items[0].engine.proxyiprangestart;
|
76
|
user.proxyiprangeend = response.items[0].engine.proxyiprangeend;
|
77
|
user.proxygw = response.items[0].engine.proxygw;
|
78
|
user.disablesnat = response.items[0].engine.disablesnat;
|
79
|
user.imagesdevice = response.items[0].engine.imagesdevice;
|
80
|
user.backupdevice = response.items[0].engine.backupdevice;
|
81
|
user.vmreadlimit = response.items[0].engine.vmreadlimit;
|
82
|
user.vmwritelimit = response.items[0].engine.vmwritelimit;
|
83
|
user.vmiopsreadlimit = response.items[0].engine.vmiopsreadlimit;
|
84
|
user.vmiopswritelimit = response.items[0].engine.vmiopswritelimit;
|
85
|
}
|
86
|
if (response.items[0].favicon) {
|
87
|
user.favicon = response.items[0].favicon;
|
88
|
var link = document.querySelector("link[rel~='icon']");
|
89
|
if (link) document.head.removeChild(link);
|
90
|
var newlink = document.createElement('link');
|
91
|
newlink.rel = 'icon';
|
92
|
newlink.href = user.favicon;
|
93
|
newlink.id= 'icon';
|
94
|
document.getElementsByTagName('head')[0].appendChild(newlink);
|
95
|
}
|
96
|
user.showcost = response.items[0].showcost;
|
97
|
user.billto = response.items[0].billto;
|
98
|
user.appstoreurl = response.items[0].appstoreurl;
|
99
|
user.dnsdomain = response.items[0].dnsdomain;
|
100
|
IRIGO.user = user;
|
101
|
if (!IRIGO.alerts) IRIGO.alerts = [];
|
102
|
},
|
103
|
error : function(response) {
|
104
|
console && console.log('An error occurred.', response);
|
105
|
}
|
106
|
});
|
107
|
}
|
108
|
user.releasepressure = function() {
|
109
|
var url = "/stabile/users?action=releasepressure";
|
110
|
xhr.get({
|
111
|
sync: true,
|
112
|
url : url,
|
113
|
handleAs : "text",
|
114
|
load : function(response) {
|
115
|
},
|
116
|
error : function(response) {
|
117
|
console && console.log('An error occurred.', response);
|
118
|
}
|
119
|
});
|
120
|
}
|
121
|
user.load();
|
122
|
return user;
|
123
|
});
|
124
|
|