Project

General

Profile

Download (6.03 KB) Statistics
| Branch: | Revision:
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

    
(13-13/14)