Unverified Commit 10fd9d77 authored by liuzheng's avatar liuzheng Committed by GitHub

Merge pull request #19 from jumpserver/dev

Dev
parents fb78bff5 592d2ec6
...@@ -33,14 +33,7 @@ ...@@ -33,14 +33,7 @@
"../node_modules/jquery-sparkline/jquery.sparkline.js", "../node_modules/jquery-sparkline/jquery.sparkline.js",
"../node_modules/tether/dist/js/tether.min.js", "../node_modules/tether/dist/js/tether.min.js",
"../node_modules/bootstrap/dist/js/bootstrap.min.js", "../node_modules/bootstrap/dist/js/bootstrap.min.js",
"../node_modules/xterm/dist/xterm.js", "../node_modules/xterm/dist/xterm.js"
"../node_modules/layui-layer/dist/layer.js",
"../node_modules/socket.io-client/dist/socket.io.js",
"./assets/js/mstsc.js",
"./assets/js/keyboard.js",
"./assets/js/rle.js",
"./assets/js/client.js",
"./assets/js/canvas.js"
], ],
"environmentSource": "environments/environment.ts", "environmentSource": "environments/environment.ts",
"environments": { "environments": {
......
...@@ -108,7 +108,7 @@ def asset_groups_assets(): ...@@ -108,7 +108,7 @@ def asset_groups_assets():
"hostname": "192.168.1.6", "hostname": "192.168.1.6",
"ip": "192.168.2.6", "ip": "192.168.2.6",
"port": 22, "port": 22,
"plantform": "Linux", "platform": "Linux",
"system_users_granted": [ "system_users_granted": [
{ {
"id": 1, "id": 1,
...@@ -116,7 +116,8 @@ def asset_groups_assets(): ...@@ -116,7 +116,8 @@ def asset_groups_assets():
"username": "web", "username": "web",
"protocol": "ssh", "protocol": "ssh",
"auth_method": "P", "auth_method": "P",
"auto_push": True "auto_push": True,
"priority": 1
}, },
{ {
"id": 2, "id": 2,
...@@ -124,7 +125,9 @@ def asset_groups_assets(): ...@@ -124,7 +125,9 @@ def asset_groups_assets():
"username": "liuzheng", "username": "liuzheng",
"protocol": "ssh", "protocol": "ssh",
"auth_method": "P", "auth_method": "P",
"auto_push": True "auto_push": True,
"priority": 10
} }
] ]
}, },
...@@ -133,84 +136,16 @@ def asset_groups_assets(): ...@@ -133,84 +136,16 @@ def asset_groups_assets():
"hostname": "windows server", "hostname": "windows server",
"ip": "123.57.183.135", "ip": "123.57.183.135",
"port": 3389, "port": 3389,
"plantform": "Windows", "platform": "Windows",
"assets_granted": [
{
"id": 1,
"name": "web",
"username": "web",
"protocol": "ssh",
"auth_method": "P",
"auto_push": True
}
]
}
]
},
{
"id": 4,
"name": "java",
"comment": "",
"assets_granted": [
{
"id": 2,
"hostname": "192.168.1.6",
"ip": "192.168.2.6",
"port": 22,
"system_users_granted": [
{
"id": 1,
"name": "web",
"username": "web",
"protocol": "ssh",
"auth_method": "P",
"auto_push": True
}
]
}
]
},
{
"id": 3,
"name": "数据库",
"comment": "",
"assets_granted": [
{
"id": 2,
"hostname": "192.168.1.6",
"ip": "192.168.2.6",
"port": 22,
"system_users_granted": [
{
"id": 1,
"name": "web",
"username": "web",
"protocol": "ssh",
"auth_method": "P",
"auto_push": True
}
]
}
]
},
{
"id": 2,
"name": "运维组",
"comment": "",
"assets_granted": [
{
"id": 2,
"hostname": "192.168.1.6",
"ip": "192.168.2.6",
"port": 22,
"system_users_granted": [ "system_users_granted": [
{ {
"id": 1, "id": "3",
"name": "web", "name": "web",
"username": "web", "username": "web",
"protocol": "ssh", "protocol": "rdp",
"auth_method": "P", "auth_method": "P",
"auto_push": True "auto_push": True,
"priority": 10
} }
] ]
} }
......
...@@ -382,7 +382,6 @@ ...@@ -382,7 +382,6 @@
"version": "1.3.4", "version": "1.3.4",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
"integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
"dev": true,
"requires": { "requires": {
"mime-types": "2.1.16", "mime-types": "2.1.16",
"negotiator": "0.6.1" "negotiator": "0.6.1"
...@@ -411,14 +410,6 @@ ...@@ -411,14 +410,6 @@
} }
} }
}, },
"active-x-obfuscator": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/active-x-obfuscator/-/active-x-obfuscator-0.0.1.tgz",
"integrity": "sha1-CJuJs3FF/x2ex0r2UwvlUmyuHxo=",
"requires": {
"zeparser": "0.0.5"
}
},
"adm-zip": { "adm-zip": {
"version": "0.4.7", "version": "0.4.7",
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz",
...@@ -935,6 +926,11 @@ ...@@ -935,6 +926,11 @@
"tweetnacl": "0.14.5" "tweetnacl": "0.14.5"
} }
}, },
"benchmark": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/benchmark/-/benchmark-1.0.0.tgz",
"integrity": "sha1-Lx4vpMNZ8REiqhgwgiGOlX45DHM="
},
"better-assert": { "better-assert": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
...@@ -955,6 +951,12 @@ ...@@ -955,6 +951,12 @@
"integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=",
"dev": true "dev": true
}, },
"bindings": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz",
"integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=",
"optional": true
},
"blob": { "blob": {
"version": "0.0.4", "version": "0.0.4",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz",
...@@ -1213,11 +1215,6 @@ ...@@ -1213,11 +1215,6 @@
} }
} }
}, },
"buffer-crc32": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz",
"integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w="
},
"buffer-indexof": { "buffer-indexof": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
...@@ -1230,6 +1227,16 @@ ...@@ -1230,6 +1227,16 @@
"integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
"dev": true "dev": true
}, },
"bufferutil": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-1.2.1.tgz",
"integrity": "sha1-N75dNuHgZJIiHmjUdLGsWOUQy9c=",
"optional": true,
"requires": {
"bindings": "1.2.1",
"nan": "2.7.0"
}
},
"builtin-modules": { "builtin-modules": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
...@@ -1812,14 +1819,12 @@ ...@@ -1812,14 +1819,12 @@
"content-disposition": { "content-disposition": {
"version": "0.5.2", "version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
"dev": true
}, },
"content-type": { "content-type": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
"dev": true
}, },
"convert-source-map": { "convert-source-map": {
"version": "1.5.0", "version": "1.5.0",
...@@ -1835,8 +1840,7 @@ ...@@ -1835,8 +1840,7 @@
"cookie-signature": { "cookie-signature": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
"dev": true
}, },
"copy-concurrently": { "copy-concurrently": {
"version": "1.0.5", "version": "1.0.5",
...@@ -1920,7 +1924,8 @@ ...@@ -1920,7 +1924,8 @@
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true
}, },
"cosmiconfig": { "cosmiconfig": {
"version": "2.2.2", "version": "2.2.2",
...@@ -2313,8 +2318,7 @@ ...@@ -2313,8 +2318,7 @@
"destroy": { "destroy": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
"dev": true
}, },
"detect-indent": { "detect-indent": {
"version": "4.0.0", "version": "4.0.0",
...@@ -2588,8 +2592,7 @@ ...@@ -2588,8 +2592,7 @@
"encodeurl": { "encodeurl": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
"integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA="
"dev": true
}, },
"end-of-stream": { "end-of-stream": {
"version": "1.4.0", "version": "1.4.0",
...@@ -2843,8 +2846,7 @@ ...@@ -2843,8 +2846,7 @@
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
"dev": true
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
...@@ -2895,8 +2897,7 @@ ...@@ -2895,8 +2897,7 @@
"etag": { "etag": {
"version": "1.8.1", "version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
"dev": true
}, },
"event-emitter": { "event-emitter": {
"version": "0.3.5", "version": "0.3.5",
...@@ -3049,7 +3050,6 @@ ...@@ -3049,7 +3050,6 @@
"version": "4.16.2", "version": "4.16.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz",
"integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=",
"dev": true,
"requires": { "requires": {
"accepts": "1.3.4", "accepts": "1.3.4",
"array-flatten": "1.1.1", "array-flatten": "1.1.1",
...@@ -3086,14 +3086,12 @@ ...@@ -3086,14 +3086,12 @@
"array-flatten": { "array-flatten": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
"dev": true
}, },
"debug": { "debug": {
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
...@@ -3102,7 +3100,6 @@ ...@@ -3102,7 +3100,6 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz",
"integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=",
"dev": true,
"requires": { "requires": {
"debug": "2.6.9", "debug": "2.6.9",
"encodeurl": "1.0.1", "encodeurl": "1.0.1",
...@@ -3116,26 +3113,22 @@ ...@@ -3116,26 +3113,22 @@
"parseurl": { "parseurl": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
"dev": true
}, },
"qs": { "qs": {
"version": "6.5.1", "version": "6.5.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
"dev": true
}, },
"setprototypeof": { "setprototypeof": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
"dev": true
}, },
"utils-merge": { "utils-merge": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
"dev": true
} }
} }
}, },
...@@ -3390,14 +3383,12 @@ ...@@ -3390,14 +3383,12 @@
"forwarded": { "forwarded": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
"dev": true
}, },
"fresh": { "fresh": {
"version": "0.5.2", "version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
"dev": true
}, },
"from2": { "from2": {
"version": "2.3.0", "version": "2.3.0",
...@@ -4504,6 +4495,10 @@ ...@@ -4504,6 +4495,10 @@
"is-glob": "2.0.1" "is-glob": "2.0.1"
} }
}, },
"global": {
"version": "https://github.com/component/global/archive/v2.0.1.tar.gz",
"integrity": "sha512-O91OcV/NbdmQJPHaRu2ekSP7bqFRLWgqSwaJvqHPZHUwmHBagQYTOra29+LnzzG3lZkXH1ANzHzfCxtAPM9HMA=="
},
"globals": { "globals": {
"version": "9.18.0", "version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
...@@ -4693,6 +4688,14 @@ ...@@ -4693,6 +4688,14 @@
"isarray": "0.0.1" "isarray": "0.0.1"
} }
}, },
"has-binary-data": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/has-binary-data/-/has-binary-data-0.1.3.tgz",
"integrity": "sha1-jrsYOItX8ZpSMSdaFvwY1R83mq4=",
"requires": {
"isarray": "0.0.1"
}
},
"has-binary2": { "has-binary2": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz",
...@@ -5201,8 +5204,7 @@ ...@@ -5201,8 +5204,7 @@
"ipaddr.js": { "ipaddr.js": {
"version": "1.5.2", "version": "1.5.2",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz",
"integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A="
"dev": true
}, },
"is-absolute-url": { "is-absolute-url": {
"version": "2.1.0", "version": "2.1.0",
...@@ -6143,11 +6145,6 @@ ...@@ -6143,11 +6145,6 @@
"source-map-support": "0.4.16" "source-map-support": "0.4.16"
} }
}, },
"keypress": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz",
"integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo="
},
"killable": { "killable": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
...@@ -6569,14 +6566,12 @@ ...@@ -6569,14 +6566,12 @@
"merge-descriptors": { "merge-descriptors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
"dev": true
}, },
"methods": { "methods": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
"dev": true
}, },
"metismenu": { "metismenu": {
"version": "2.7.1", "version": "2.7.1",
...@@ -6734,6 +6729,283 @@ ...@@ -6734,6 +6729,283 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"mstsc.js": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/mstsc.js/-/mstsc.js-0.2.4.tgz",
"integrity": "sha1-tl3ECRVFTJIEF9EhSt8+gVdDkM0=",
"requires": {
"express": "4.16.2",
"node-rdpjs": "0.3.0",
"socket.io": "1.3.7"
},
"dependencies": {
"after": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
"integrity": "sha1-q11PuIP1loFtNRX495HAr0ht1ic="
},
"base64-arraybuffer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.2.tgz",
"integrity": "sha1-R030qfLaJOBd8xWMOx2zw81GoVQ="
},
"base64id": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
"integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8="
},
"component-emitter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz",
"integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM="
},
"debug": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.1.0.tgz",
"integrity": "sha1-M6uRVlnYwsyKQUQ9lNbr03aX7SE=",
"requires": {
"ms": "0.6.2"
}
},
"engine.io": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.5.4.tgz",
"integrity": "sha1-xhQQEpEcNQYxwbOQ9TJOtCAuKfI=",
"requires": {
"base64id": "0.1.0",
"debug": "1.0.3",
"engine.io-parser": "1.2.2",
"ws": "0.8.0"
},
"dependencies": {
"debug": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-1.0.3.tgz",
"integrity": "sha1-/IxrLWACgEtAgcAgjg9kYLofo+Q=",
"requires": {
"ms": "0.6.2"
}
}
}
},
"engine.io-client": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.5.4.tgz",
"integrity": "sha1-xq1lpldSopy5MMaRHledKyjREGw=",
"requires": {
"component-emitter": "1.1.2",
"component-inherit": "0.0.3",
"debug": "1.0.4",
"engine.io-parser": "1.2.2",
"has-cors": "1.0.3",
"indexof": "0.0.1",
"parsejson": "0.0.1",
"parseqs": "0.0.2",
"parseuri": "0.0.4",
"ws": "0.8.0",
"xmlhttprequest": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz"
},
"dependencies": {
"debug": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz",
"integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=",
"requires": {
"ms": "0.6.2"
}
},
"parseuri": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.4.tgz",
"integrity": "sha1-gGWCo5iH4eoY3V4v4OAZAiaOk1A=",
"requires": {
"better-assert": "1.0.2"
}
}
}
},
"engine.io-parser": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.2.2.tgz",
"integrity": "sha1-zQgQQf7qOcZDI/95uCqQpyr8zN0=",
"requires": {
"after": "0.8.1",
"arraybuffer.slice": "0.0.6",
"base64-arraybuffer": "0.1.2",
"blob": "0.0.4",
"has-binary": "0.1.6",
"utf8": "2.1.0"
}
},
"has-binary": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz",
"integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=",
"requires": {
"isarray": "0.0.1"
}
},
"has-cors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.0.3.tgz",
"integrity": "sha1-UCrLmzEE2sM90mMOry+IiwuvTLM=",
"requires": {
"global": "https://github.com/component/global/archive/v2.0.1.tar.gz"
}
},
"json3": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/json3/-/json3-3.2.6.tgz",
"integrity": "sha1-9u/JPAagTemuxTBT3yVZuxniA4s="
},
"ms": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz",
"integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw="
},
"object-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.1.tgz",
"integrity": "sha1-VYAuhYQsJru167wVer874wJWm6g="
},
"parsejson": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.1.tgz",
"integrity": "sha1-mxDGwNglq1ieaFFTgm3go7oni8w=",
"requires": {
"better-assert": "1.0.2"
}
},
"parseqs": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.2.tgz",
"integrity": "sha1-nf5wss3aw4i95PNbHyQPpYrb5sc=",
"requires": {
"better-assert": "1.0.2"
}
},
"parseuri": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.2.tgz",
"integrity": "sha1-20GHjy1pZHGL6HCzFAlz2Ak74VY=",
"requires": {
"better-assert": "1.0.2"
}
},
"socket.io": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.3.7.tgz",
"integrity": "sha1-k3R6KbyrYmbw++GREsyl4TiM960=",
"requires": {
"debug": "2.1.0",
"engine.io": "1.5.4",
"has-binary-data": "0.1.3",
"socket.io-adapter": "0.3.1",
"socket.io-client": "1.3.7",
"socket.io-parser": "2.2.4"
}
},
"socket.io-adapter": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.3.1.tgz",
"integrity": "sha1-34H5cLTfZJOQLZPlGce3J1XDqVg=",
"requires": {
"debug": "1.0.2",
"object-keys": "1.0.1",
"socket.io-parser": "2.2.2"
},
"dependencies": {
"debug": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/debug/-/debug-1.0.2.tgz",
"integrity": "sha1-OElZHBDM5khHbDx8Li40FttZY8Q=",
"requires": {
"ms": "0.6.2"
}
},
"socket.io-parser": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.2.tgz",
"integrity": "sha1-PXr2tkSX6Va32f53X5mXFgJ/lBc=",
"requires": {
"benchmark": "1.0.0",
"component-emitter": "1.1.2",
"debug": "0.7.4",
"isarray": "0.0.1",
"json3": "3.2.6"
},
"dependencies": {
"debug": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
"integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk="
}
}
}
}
},
"socket.io-client": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.3.7.tgz",
"integrity": "sha1-erfAabjVBCXrJl8DH4Spfm6+cZw=",
"requires": {
"backo2": "1.0.2",
"component-bind": "1.0.0",
"component-emitter": "1.1.2",
"debug": "0.7.4",
"engine.io-client": "1.5.4",
"has-binary": "0.1.6",
"indexof": "0.0.1",
"object-component": "0.0.3",
"parseuri": "0.0.2",
"socket.io-parser": "2.2.4",
"to-array": "0.1.3"
},
"dependencies": {
"debug": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
"integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk="
}
}
},
"socket.io-parser": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.2.4.tgz",
"integrity": "sha1-+c4ZvxkJYIzrFdl3IeI7/dHnz2U=",
"requires": {
"benchmark": "1.0.0",
"component-emitter": "1.1.2",
"debug": "0.7.4",
"isarray": "0.0.1",
"json3": "3.2.6"
},
"dependencies": {
"debug": {
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz",
"integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk="
}
}
},
"to-array": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz",
"integrity": "sha1-1F2txjY0F/YPKEdP6lDs3btPSZE="
},
"ws": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-0.8.0.tgz",
"integrity": "sha1-rGDrrTEhIdAeFswzg9fsZ60PDx8=",
"requires": {
"bufferutil": "1.2.1",
"options": "0.0.6",
"ultron": "1.0.2",
"utf-8-validate": "1.2.2"
}
}
}
},
"multicast-dns": { "multicast-dns": {
"version": "6.2.0", "version": "6.2.0",
"resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.0.tgz", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.0.tgz",
...@@ -6750,33 +7022,10 @@ ...@@ -6750,33 +7022,10 @@
"integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
"dev": true "dev": true
}, },
"multiparty": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz",
"integrity": "sha1-pWfCrwAK0i3I8qZT2Rl4rh9TFvQ=",
"requires": {
"readable-stream": "1.1.14",
"stream-counter": "0.2.0"
},
"dependencies": {
"readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "0.0.1",
"string_decoder": "0.10.31"
}
}
}
},
"nan": { "nan": {
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
"integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY="
"dev": true
}, },
"ncname": { "ncname": {
"version": "1.0.0", "version": "1.0.0",
...@@ -6954,6 +7203,22 @@ ...@@ -6954,6 +7203,22 @@
"integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=", "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=",
"dev": true "dev": true
}, },
"node-rdpjs": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/node-rdpjs/-/node-rdpjs-0.3.0.tgz",
"integrity": "sha1-h+Lck94armnCwiy8zwFS9heQHO0=",
"requires": {
"lodash": "3.3.0",
"starttls": "1.0.1"
},
"dependencies": {
"lodash": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.3.0.tgz",
"integrity": "sha1-ARzlLQGxTmDq7qdqy5uLpCxwWBs="
}
}
},
"node-sass": { "node-sass": {
"version": "4.7.2", "version": "4.7.2",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz", "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.7.2.tgz",
...@@ -10975,8 +11240,7 @@ ...@@ -10975,8 +11240,7 @@
"path-to-regexp": { "path-to-regexp": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
"dev": true
}, },
"path-type": { "path-type": {
"version": "1.1.0", "version": "1.1.0",
...@@ -10989,11 +11253,6 @@ ...@@ -10989,11 +11253,6 @@
"pinkie-promise": "2.0.1" "pinkie-promise": "2.0.1"
} }
}, },
"pause": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
"integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
},
"pbkdf2": { "pbkdf2": {
"version": "3.0.14", "version": "3.0.14",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz",
...@@ -11059,11 +11318,6 @@ ...@@ -11059,11 +11318,6 @@
} }
} }
}, },
"policyfile": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/policyfile/-/policyfile-0.0.4.tgz",
"integrity": "sha1-1rgurZiueeviKOLa9ZAzEeyYLk0="
},
"popper.js": { "popper.js": {
"version": "1.12.9", "version": "1.12.9",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz", "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz",
...@@ -12043,7 +12297,6 @@ ...@@ -12043,7 +12297,6 @@
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz",
"integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=",
"dev": true,
"requires": { "requires": {
"forwarded": "0.1.2", "forwarded": "0.1.2",
"ipaddr.js": "1.5.2" "ipaddr.js": "1.5.2"
...@@ -12061,27 +12314,6 @@ ...@@ -12061,27 +12314,6 @@
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
"dev": true "dev": true
}, },
"pty.js": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/pty.js/-/pty.js-0.3.1.tgz",
"integrity": "sha1-gfW+0zLW5eeraFaI0boDc0ENUbU=",
"requires": {
"extend": "1.2.1",
"nan": "2.3.5"
},
"dependencies": {
"extend": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz",
"integrity": "sha1-oPX9bPyDpf5J72mNYOyKYk3UV2w="
},
"nan": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz",
"integrity": "sha1-gioNwmYpDOTNOhIoLKPn42Rmigg="
}
}
},
"public-encrypt": { "public-encrypt": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz",
...@@ -12231,8 +12463,7 @@ ...@@ -12231,8 +12463,7 @@
"range-parser": { "range-parser": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
"dev": true
}, },
"raw-body": { "raw-body": {
"version": "2.3.2", "version": "2.3.2",
...@@ -12350,12 +12581,6 @@ ...@@ -12350,12 +12581,6 @@
"strip-indent": "1.0.1" "strip-indent": "1.0.1"
} }
}, },
"redis": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/redis/-/redis-0.7.3.tgz",
"integrity": "sha1-7le3pE0l7BWU5ENl2BZfp9HUgRo=",
"optional": true
},
"reduce-css-calc": { "reduce-css-calc": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
...@@ -12760,7 +12985,6 @@ ...@@ -12760,7 +12985,6 @@
"version": "0.16.1", "version": "0.16.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz",
"integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==",
"dev": true,
"requires": { "requires": {
"debug": "2.6.9", "debug": "2.6.9",
"depd": "1.1.1", "depd": "1.1.1",
...@@ -12781,7 +13005,6 @@ ...@@ -12781,7 +13005,6 @@
"version": "2.6.9", "version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
...@@ -12789,8 +13012,7 @@ ...@@ -12789,8 +13012,7 @@
"mime": { "mime": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
"dev": true
} }
} }
}, },
...@@ -12845,7 +13067,6 @@ ...@@ -12845,7 +13067,6 @@
"version": "1.13.1", "version": "1.13.1",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz",
"integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==",
"dev": true,
"requires": { "requires": {
"encodeurl": "1.0.1", "encodeurl": "1.0.1",
"escape-html": "1.0.3", "escape-html": "1.0.3",
...@@ -12856,8 +13077,7 @@ ...@@ -12856,8 +13077,7 @@
"parseurl": { "parseurl": {
"version": "1.3.2", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
"dev": true
} }
} }
}, },
...@@ -13245,6 +13465,11 @@ ...@@ -13245,6 +13465,11 @@
"safe-buffer": "5.1.1" "safe-buffer": "5.1.1"
} }
}, },
"starttls": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/starttls/-/starttls-1.0.1.tgz",
"integrity": "sha1-5ggcJd5rF49adfjyccFIdEkYO0I="
},
"statuses": { "statuses": {
"version": "1.3.1", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
...@@ -13333,27 +13558,6 @@ ...@@ -13333,27 +13558,6 @@
} }
} }
}, },
"stream-counter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz",
"integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=",
"requires": {
"readable-stream": "1.1.14"
},
"dependencies": {
"readable-stream": {
"version": "1.1.14",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
"core-util-is": "1.0.2",
"inherits": "2.0.3",
"isarray": "0.0.1",
"string_decoder": "0.10.31"
}
}
}
},
"stream-each": { "stream-each": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
...@@ -13435,7 +13639,8 @@ ...@@ -13435,7 +13639,8 @@
"string_decoder": { "string_decoder": {
"version": "0.10.31", "version": "0.10.31",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
"dev": true
}, },
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
...@@ -13677,11 +13882,6 @@ ...@@ -13677,11 +13882,6 @@
"resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
"integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow=="
}, },
"tinycolor": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz",
"integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ="
},
"tmp": { "tmp": {
"version": "0.0.31", "version": "0.0.31",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz",
...@@ -13878,194 +14078,6 @@ ...@@ -13878,194 +14078,6 @@
"integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
"dev": true "dev": true
}, },
"tty.js": {
"version": "0.2.15",
"resolved": "https://registry.npmjs.org/tty.js/-/tty.js-0.2.15.tgz",
"integrity": "sha1-iCM+qnPRhTqLyU6K94e3zcdUj6c=",
"requires": {
"express": "3.4.4",
"pty.js": "0.3.1",
"socket.io": "0.9.16",
"term.js": "0.0.7"
},
"dependencies": {
"base64id": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
"integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8="
},
"bytes": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz",
"integrity": "sha1-VVsIq8sGP4l1kFMCUj5M1P/f3zE="
},
"commander": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz",
"integrity": "sha1-io8w7GcKb91kr1LxkUuQfXnq1bU=",
"requires": {
"keypress": "0.1.0"
}
},
"connect": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/connect/-/connect-2.11.0.tgz",
"integrity": "sha1-mZHOCf+bhdnq0n+dQdCyot8vkoQ=",
"requires": {
"buffer-crc32": "0.2.1",
"bytes": "0.2.1",
"cookie": "0.1.0",
"cookie-signature": "1.0.1",
"debug": "2.6.8",
"fresh": "0.2.0",
"methods": "0.0.1",
"multiparty": "2.2.0",
"negotiator": "0.3.0",
"pause": "0.0.1",
"qs": "0.6.5",
"raw-body": "0.0.3",
"send": "0.1.4",
"uid2": "0.0.3"
},
"dependencies": {
"methods": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/methods/-/methods-0.0.1.tgz",
"integrity": "sha1-J3yQ+L7zlwlkWoNxxRw7bGSOBow="
}
}
},
"cookie": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz",
"integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA="
},
"cookie-signature": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz",
"integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss="
},
"express": {
"version": "3.4.4",
"resolved": "https://registry.npmjs.org/express/-/express-3.4.4.tgz",
"integrity": "sha1-C2OuYmyWtxt40T384HnBA1FjWoY=",
"requires": {
"buffer-crc32": "0.2.1",
"commander": "1.3.2",
"connect": "2.11.0",
"cookie": "0.1.0",
"cookie-signature": "1.0.1",
"debug": "2.6.8",
"fresh": "0.2.0",
"methods": "0.1.0",
"mkdirp": "0.3.5",
"range-parser": "0.0.4",
"send": "0.1.4"
}
},
"fresh": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz",
"integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc="
},
"methods": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz",
"integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8="
},
"mime": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz",
"integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA="
},
"mkdirp": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
"integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc="
},
"nan": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-1.0.0.tgz",
"integrity": "sha1-riT4hQgY1mL8q1rPfzuVv6oszzg="
},
"negotiator": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz",
"integrity": "sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A="
},
"qs": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/qs/-/qs-0.6.5.tgz",
"integrity": "sha1-KUsmjksNQlD23eGbO4s0k13/FO8="
},
"range-parser": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz",
"integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs="
},
"raw-body": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-0.0.3.tgz",
"integrity": "sha1-DLPrIs7RymB9Mt2P2Upus4Pz64o="
},
"send": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz",
"integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=",
"requires": {
"debug": "2.6.8",
"fresh": "0.2.0",
"mime": "1.2.11",
"range-parser": "0.0.4"
}
},
"socket.io": {
"version": "0.9.16",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-0.9.16.tgz",
"integrity": "sha1-O6sEROSbVfu8FXQk29Qao3WlGnY=",
"requires": {
"base64id": "0.1.0",
"policyfile": "0.0.4",
"redis": "0.7.3",
"socket.io-client": "0.9.16"
}
},
"socket.io-client": {
"version": "0.9.16",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-0.9.16.tgz",
"integrity": "sha1-TadRXF53MEHRtCOXBBW8xDDzX8Y=",
"requires": {
"active-x-obfuscator": "0.0.1",
"uglify-js": "1.2.5",
"ws": "0.4.32",
"xmlhttprequest": "1.4.2"
}
},
"uglify-js": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.2.5.tgz",
"integrity": "sha1-tULCx29477NLIAsgF3Y0Mw/3ArY="
},
"ws": {
"version": "0.4.32",
"resolved": "https://registry.npmjs.org/ws/-/ws-0.4.32.tgz",
"integrity": "sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=",
"requires": {
"commander": "2.1.0",
"nan": "1.0.0",
"options": "0.0.6",
"tinycolor": "0.0.1"
},
"dependencies": {
"commander": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz",
"integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E="
}
}
}
}
},
"tunnel-agent": { "tunnel-agent": {
"version": "0.6.0", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
...@@ -14162,16 +14174,10 @@ ...@@ -14162,16 +14174,10 @@
} }
} }
}, },
"uid2": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
"integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
},
"ultron": { "ultron": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz",
"integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po="
"dev": true
}, },
"underscore": { "underscore": {
"version": "1.4.4", "version": "1.4.4",
...@@ -14313,6 +14319,29 @@ ...@@ -14313,6 +14319,29 @@
} }
} }
}, },
"utf-8-validate": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.2.2.tgz",
"integrity": "sha1-i7hxpHQeCFxwSHynrNvX1tNgKes=",
"optional": true,
"requires": {
"bindings": "1.2.1",
"nan": "2.4.0"
},
"dependencies": {
"nan": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.4.0.tgz",
"integrity": "sha1-+zxZ1F/k7/4hXwuJD4rfbrMtIjI=",
"optional": true
}
}
},
"utf8": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.0.tgz",
"integrity": "sha1-DP7FyAUtRKI+OqqQgQToB1+V39U="
},
"util": { "util": {
"version": "0.10.3", "version": "0.10.3",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
...@@ -14382,8 +14411,7 @@ ...@@ -14382,8 +14411,7 @@
"vary": { "vary": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
"dev": true
}, },
"vendors": { "vendors": {
"version": "1.0.1", "version": "1.0.1",
...@@ -15150,9 +15178,8 @@ ...@@ -15150,9 +15178,8 @@
"integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk="
}, },
"xmlhttprequest": { "xmlhttprequest": {
"version": "1.4.2", "version": "https://github.com/rase-/node-XMLHttpRequest/archive/a6b6f2.tar.gz",
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.4.2.tgz", "integrity": "sha512-GO6pmHif8rvZ9YddEoem4hQo0OvcTZJnPGyKxBNsFwgEwNYxbpfewye2ulTDAanWXTcfl2+XKE6/DK7SAoKqMw=="
"integrity": "sha1-AUU6HZvtHo8XL2SVu/TIxCYyFQA="
}, },
"xmlhttprequest-ssl": { "xmlhttprequest-ssl": {
"version": "1.5.3", "version": "1.5.3",
...@@ -15240,11 +15267,6 @@ ...@@ -15240,11 +15267,6 @@
"integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=",
"dev": true "dev": true
}, },
"zeparser": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/zeparser/-/zeparser-0.0.5.tgz",
"integrity": "sha1-A3JlYbwmjy5URPVMZlt/1KjAKeI="
},
"zone.js": { "zone.js": {
"version": "0.8.17", "version": "0.8.17",
"resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.17.tgz", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.17.tgz",
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
"layui-layer": "git+https://github.com/jumpserver/layer.git", "layui-layer": "git+https://github.com/jumpserver/layer.git",
"materialize-css": "^0.100.2", "materialize-css": "^0.100.2",
"metismenu": "^2.5.0", "metismenu": "^2.5.0",
"mstsc.js": "^0.2.4",
"ng2-charts": "^1.5.0", "ng2-charts": "^1.5.0",
"ng2-cookies": "^1.0.12", "ng2-cookies": "^1.0.12",
"ngx-bootstrap": "^1.6.6", "ngx-bootstrap": "^1.6.6",
...@@ -54,8 +55,8 @@ ...@@ -54,8 +55,8 @@
"socket.io": "^2.0.3", "socket.io": "^2.0.3",
"socket.io-client": "^2.0.4", "socket.io-client": "^2.0.4",
"ssh-keygen": "^0.4.1", "ssh-keygen": "^0.4.1",
"term.js": "0.0.7",
"tether": "^1.4.0", "tether": "^1.4.0",
"tty.js": "^0.2.15",
"xterm": "^2.9.2", "xterm": "^2.9.2",
"zone.js": "^0.8.14" "zone.js": "^0.8.14"
}, },
......
...@@ -67,11 +67,7 @@ label { ...@@ -67,11 +67,7 @@ label {
background: #2f2a2a; background: #2f2a2a;
font-size: 9pt; font-size: 9pt;
border-top-width: 1px; border-top-width: 1px;
<<<<<<< HEAD
left: 0; left: 0;
=======
left: 0px;
>>>>>>> github_dev
padding: 1px 20px 0 20px; padding: 1px 20px 0 20px;
position: absolute; position: absolute;
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<label for="hostgroup-{{i}}">{{hostGroup.name}}</label> <label for="hostgroup-{{i}}">{{hostGroup.name}}</label>
<ul [ngClass]="{'insearch': q }"> <ul [ngClass]="{'insearch': q }">
<li *ngFor="let host of hostGroup.assets_granted | SearchFilter: q" (click)="Connect(host)"> <li *ngFor="let host of hostGroup.assets_granted | SearchFilter: q" (click)="Connect(host)">
<i class="fa" [ngClass]="'fa-'+(host.plantform||'undefined').toLowerCase()" id="fa-{{i}}"></i> <i class="fa" [ngClass]="'fa-'+(host.platform||'undefined').toLowerCase()" id="fa-{{i}}"></i>
{{host.hostname}} {{host.hostname}}
</li> </li>
</ul> </ul>
......
...@@ -116,55 +116,90 @@ export class CleftbarComponent implements OnInit { ...@@ -116,55 +116,90 @@ export class CleftbarComponent implements OnInit {
Connect(host) { Connect(host) {
// console.log(host); // console.log(host);
let userid: string; let user: any;
const that = this; const that = this;
if (host.system_users_granted.length > 1) { if (host.system_users_granted.length > 1) {
let options = ''; let options = '';
for (let u of host.system_users_granted) { user = this.checkPriority(host.system_users_granted);
options += '<option value="' + u.id + '">' + u.username + '</option>'; if (user) {
} this.login(host, user);
layer.open({ } else {
title: 'Please Choose a User', for (let u of host.system_users_granted) {
scrollbar: false, options += '<option value="' + u.id + '">' + u.username + '</option>';
moveOut: true,
moveType: 1,
btn: ['确定', '取消'],
content: '<select id="selectuser">' + options + '</select>',
yes: function (index, layero) {
userid = jQuery('#selectuser').val();
that.login(host, userid);
layer.close(index);
},
btn2: function (index, layero) {
},
cancel: function () {
// 右上角关闭回调
// return false 开启该代码可禁止点击该按钮关闭
} }
}); layer.open({
title: 'Please Choose a User',
scrollbar: false,
moveOut: true,
moveType: 1,
btn: ['确定', '取消'],
content: '<select id="selectuser">' + options + '</select>',
yes: function (index, layero) {
const userid = jQuery('#selectuser').val();
for (let i of host.system_users_granted) {
if (i.id.toString() === userid.toString()) {
user = i;
break;
}
}
that.login(host, user);
layer.close(index);
},
btn2: function (index, layero) {
},
cancel: function () {
// 右上角关闭回调
// return false 开启该代码可禁止点击该按钮关闭
}
});
}
} else if (host.system_users_granted.length === 1) { } else if (host.system_users_granted.length === 1) {
userid = host.system_users_granted[0].id; user = host.system_users_granted[0];
this.login(host, userid); this.login(host, user);
} }
} }
login(host, userid) { login(host, user) {
if (userid === '') { if (user) {
return; if (user.protocol === 'ssh') {
jQuery('app-ssh').show();
jQuery('app-rdp').hide();
this._term.TerminalConnect(host, user.id);
} else if (user.protocol === 'rdp') {
jQuery('app-ssh').hide();
jQuery('app-rdp').show();
this._rdp.Connect(host, user.id);
}
} }
if (host.plantform.toLowerCase() === 'linux') { // if (host.platform) {
jQuery('app-ssh').show(); // if (host.platform.toLowerCase() === 'linux') {
jQuery('app-rdp').hide(); // jQuery('app-ssh').show();
this._term.TerminalConnect(host, userid); // jQuery('app-rdp').hide();
} else if (host.plantform.toLowerCase() === 'windows') { // this._term.TerminalConnect(host, user.id);
jQuery('app-ssh').hide(); // } else if (host.platform.toLowerCase() === 'windows') {
jQuery('app-rdp').show(); // jQuery('app-ssh').hide();
this._rdp.Connect(host, userid); // jQuery('app-rdp').show();
} else { // this._rdp.Connect(host, user.id);
jQuery('app-ssh').show(); // } else {
jQuery('app-rdp').hide(); // jQuery('app-ssh').show();
this._term.TerminalConnect(host, userid); // jQuery('app-rdp').hide();
// this._term.TerminalConnect(host, user.id);
// }
// }
}
checkPriority(sysUsers) {
let priority: number = -1;
let user: any;
for (let u of sysUsers) {
if (u.priority > priority) {
user = u;
priority = u.priority;
} else if (u.priority === priority) {
return null;
}
} }
return user;
} }
Search(q) { Search(q) {
......
...@@ -46,6 +46,17 @@ export let NavList: { ...@@ -46,6 +46,17 @@ export let NavList: {
styleUrls: ['./control.component.css'] styleUrls: ['./control.component.css']
}) })
export class ControlComponent implements OnInit { export class ControlComponent implements OnInit {
static active(id) {
for (let i in NavList.List) {
if (id.toString() === i) {
NavList.List[id].hide = false;
} else {
NavList.List[i].hide = true;
}
}
NavList.Active = id;
}
constructor() { constructor() {
} }
......
...@@ -46,6 +46,7 @@ export class ControlnavComponent implements OnInit { ...@@ -46,6 +46,7 @@ export class ControlnavComponent implements OnInit {
if (NavList.List[index].type === 'ssh') { if (NavList.List[index].type === 'ssh') {
jQuery('app-ssh').show(); jQuery('app-ssh').show();
jQuery('app-rdp').hide(); jQuery('app-rdp').hide();
NavList.List[index].Term.term.focus();
} else if (NavList.List[index].type === 'rdp') { } else if (NavList.List[index].type === 'rdp') {
jQuery('app-ssh').hide(); jQuery('app-ssh').hide();
jQuery('app-rdp').show(); jQuery('app-rdp').show();
...@@ -69,4 +70,5 @@ export class ControlnavComponent implements OnInit { ...@@ -69,4 +70,5 @@ export class ControlnavComponent implements OnInit {
ControlnavComponent.checkActive(index); ControlnavComponent.checkActive(index);
} }
} }
...@@ -6,9 +6,13 @@ ...@@ -6,9 +6,13 @@
*/ */
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {NavList, View, Rdp} from '../control.component'; import {NavList, View, Rdp, ControlComponent} from '../control.component';
declare let Mstsc: any; import {Mstsc} from 'mstsc.js/client/js/mstsc.js';
import {Client} from 'mstsc.js/client/js/client.js';
import {Canvas} from 'mstsc.js/client/js/canvas.js';
// declare let Mstsc: any;
@Component({ @Component({
selector: 'app-rdp', selector: 'app-rdp',
...@@ -18,12 +22,8 @@ declare let Mstsc: any; ...@@ -18,12 +22,8 @@ declare let Mstsc: any;
export class RdpComponent implements OnInit { export class RdpComponent implements OnInit {
NavList = NavList; NavList = NavList;
static Disconnect(host) { static Disconnect(host) {
host.connected = false; host.connected = false;
// document.getElementById("templatesrc").remove();
} }
static DisconnectAll() { static DisconnectAll() {
...@@ -40,9 +40,9 @@ export class RdpComponent implements OnInit { ...@@ -40,9 +40,9 @@ export class RdpComponent implements OnInit {
const id = NavList.List.length - 1; const id = NavList.List.length - 1;
const canvas = Mstsc.$('canvas-' + id); const canvas = Mstsc.$('canvas-' + id);
canvas.style.display = 'inline'; // canvas.style.display = 'inline';
canvas.width = window.innerWidth; // canvas.width = window.innerWidth;
canvas.height = window.innerHeight; // canvas.height = window.innerHeight;
NavList.List[id].nick = host.name; NavList.List[id].nick = host.name;
NavList.List[id].connected = true; NavList.List[id].connected = true;
...@@ -52,18 +52,11 @@ export class RdpComponent implements OnInit { ...@@ -52,18 +52,11 @@ export class RdpComponent implements OnInit {
NavList.List[id].Rdp = new Rdp; NavList.List[id].Rdp = new Rdp;
NavList.List[id].Rdp.token = host.token; NavList.List[id].Rdp.token = host.token;
NavList.List[id].Rdp.machine = host.uuid; NavList.List[id].Rdp.machine = host.uuid;
NavList.List[id].Rdp.client = Mstsc.client.create(Mstsc.$('canvas-' + id)); NavList.List[id].Rdp.client = new Client.Client(Mstsc.$('canvas-' + id));
NavList.List[id].Rdp.client.connect(host.token, 'rdp/socket.io'); NavList.List[id].Rdp.client.connect(host.token, '/rdp/socket.io');
NavList.List.push(new View()); NavList.List.push(new View());
for (let m in NavList.List) { ControlComponent.active(id);
NavList.List[m].hide = true;
}
NavList.List[id].hide = false;
NavList.Active = id;
} }
} }
...@@ -9,7 +9,7 @@ import {Component, OnInit} from '@angular/core'; ...@@ -9,7 +9,7 @@ import {Component, OnInit} from '@angular/core';
import {Logger} from 'angular2-logger/core'; import {Logger} from 'angular2-logger/core';
import {Cookie} from 'ng2-cookies/ng2-cookies'; import {Cookie} from 'ng2-cookies/ng2-cookies';
import {AppService} from '../../../app.service'; import {AppService} from '../../../app.service';
import {NavList, View, Term} from '../control.component'; import {NavList, View, Term, ControlComponent} from '../control.component';
import {Terminal} from '../../../globals'; import {Terminal} from '../../../globals';
import * as io from 'socket.io-client'; import * as io from 'socket.io-client';
import * as jQuery from 'jquery/dist/jquery.min.js'; import * as jQuery from 'jquery/dist/jquery.min.js';
...@@ -30,11 +30,8 @@ export class SshComponent implements OnInit { ...@@ -30,11 +30,8 @@ export class SshComponent implements OnInit {
static TerminalDisconnectAll() { static TerminalDisconnectAll() {
alert('TerminalDisconnectAll'); alert('TerminalDisconnectAll');
for (let _i = 0; _i < NavList.List.length; _i++) { for (let i = 0; i < NavList.List.length; i++) {
SshComponent.TerminalDisconnect(_i); SshComponent.TerminalDisconnect(NavList.List[i]);
// TermStore.term[i]["connected"] = false;
// TermStore.term[i]["socket"].destroy();
// TermStore.term[i]["term"].write('\r\n\x1b[31mBye Bye!\x1b[m\r\n');
} }
} }
...@@ -77,15 +74,7 @@ export class SshComponent implements OnInit { ...@@ -77,15 +74,7 @@ export class SshComponent implements OnInit {
screenKeys: true, screenKeys: true,
}); });
NavList.List.push(new View()); NavList.List.push(new View());
for (let i = 0; i < NavList.List.length; i++) { ControlComponent.active(id);
if (id === i) {
NavList.List[id].hide = false;
} else {
NavList.List[i].hide = true;
}
}
NavList.Active = id;
// TermStore.term[id]['term'].on('title', function (title) { // TermStore.term[id]['term'].on('title', function (title) {
......
...@@ -12,15 +12,15 @@ import {environment} from '../environments/environment'; ...@@ -12,15 +12,15 @@ import {environment} from '../environments/environment';
import {NotFoundComponent} from './BasicPage/not-found/not-found.component'; import {NotFoundComponent} from './BasicPage/not-found/not-found.component';
import {LoginComponent} from './BasicPage/login/login.component'; import {LoginComponent} from './BasicPage/login/login.component';
import {ControlPageComponent} from './ControlPage/controlpage.component'; import {ControlPageComponent} from './ControlPage/controlpage.component';
import {RdppageComponent} from './rdppage/rdppage.component';
import {TermpageComponent} from './termpage/termpage.component';
import {ReplayPageComponent} from './replay-page/replay-page.component'; import {ReplayPageComponent} from './replay-page/replay-page.component';
import {MonitorPageComponent} from './monitor-page/monitor-page.component'; import {MonitorPageComponent} from './monitor-page/monitor-page.component';
import {RdpPageComponent} from './rdp-page/rdp-page.component';
import {TermPageComponent} from './term-page/term-page.component';
const appRoutes: Routes = [ const appRoutes: Routes = [
{path: 'users/login', component: LoginComponent}, {path: 'users/login', component: LoginComponent},
{path: 'rdp/:token', component: RdppageComponent}, {path: 'rdp/:token', component: RdpPageComponent},
{path: 'term/:token', component: TermpageComponent}, {path: 'term/:token', component: TermPageComponent},
{path: 'replay/:token', component: ReplayPageComponent}, {path: 'replay/:token', component: ReplayPageComponent},
{path: 'monitor/:token', component: MonitorPageComponent}, {path: 'monitor/:token', component: MonitorPageComponent},
{path: '', component: ControlPageComponent}, {path: '', component: ControlPageComponent},
......
...@@ -36,8 +36,8 @@ import {SshComponent} from './ControlPage/control/ssh/ssh.component'; ...@@ -36,8 +36,8 @@ import {SshComponent} from './ControlPage/control/ssh/ssh.component';
import {ControlPageComponent} from './ControlPage/controlpage.component'; import {ControlPageComponent} from './ControlPage/controlpage.component';
import {IndexPageComponent} from './IndexPage/index-page.component'; import {IndexPageComponent} from './IndexPage/index-page.component';
import {NotFoundComponent} from './BasicPage/not-found/not-found.component'; import {NotFoundComponent} from './BasicPage/not-found/not-found.component';
import {RdppageComponent} from './rdppage/rdppage.component'; import {RdpPageComponent} from './rdp-page/rdp-page.component';
import {TermpageComponent} from './termpage/termpage.component'; import {TermPageComponent} from './term-page/term-page.component';
import {ReplayPageComponent} from './replay-page/replay-page.component'; import {ReplayPageComponent} from './replay-page/replay-page.component';
import {Mp4Component} from './replay-page/mp4/mp4.component'; import {Mp4Component} from './replay-page/mp4/mp4.component';
import {JsonComponent} from './replay-page/json/json.component'; import {JsonComponent} from './replay-page/json/json.component';
...@@ -45,7 +45,7 @@ import {UtcDatePipe} from './app.pipe'; ...@@ -45,7 +45,7 @@ import {UtcDatePipe} from './app.pipe';
import {MonitorPageComponent} from './monitor-page/monitor-page.component'; import {MonitorPageComponent} from './monitor-page/monitor-page.component';
import {LinuxComponent} from './monitor-page/linux/linux.component'; import {LinuxComponent} from './monitor-page/linux/linux.component';
import {WindowsComponent} from './monitor-page/windows/windows.component'; import {WindowsComponent} from './monitor-page/windows/windows.component';
import {ElementRdpComponent} from './elements/rdp/rdp.component';
@NgModule({ @NgModule({
imports: [ imports: [
...@@ -61,6 +61,7 @@ import {WindowsComponent} from './monitor-page/windows/windows.component'; ...@@ -61,6 +61,7 @@ import {WindowsComponent} from './monitor-page/windows/windows.component';
ElementPopupComponent, ElementPopupComponent,
ElementTermComponent, ElementTermComponent,
ElementInteractiveComponent, ElementInteractiveComponent,
ElementRdpComponent,
LoginComponent, LoginComponent,
RdpComponent, RdpComponent,
SshComponent, SshComponent,
...@@ -73,8 +74,8 @@ import {WindowsComponent} from './monitor-page/windows/windows.component'; ...@@ -73,8 +74,8 @@ import {WindowsComponent} from './monitor-page/windows/windows.component';
ControlPageComponent, ControlPageComponent,
IndexPageComponent, IndexPageComponent,
NotFoundComponent, NotFoundComponent,
RdppageComponent, RdpPageComponent,
TermpageComponent, TermPageComponent,
ReplayPageComponent, ReplayPageComponent,
Mp4Component, Mp4Component,
JsonComponent, JsonComponent,
......
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ElementRdpComponent } from './rdp.component';
describe('ElementRdpComponent', () => {
let component: ElementRdpComponent;
let fixture: ComponentFixture<ElementRdpComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ElementRdpComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ElementRdpComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
...@@ -4,35 +4,40 @@ ...@@ -4,35 +4,40 @@
* @date 2017-11-24 * @date 2017-11-24
* @author liuzheng <liuzheng712@gmail.com> * @author liuzheng <liuzheng712@gmail.com>
*/ */
import {Component, OnInit} from '@angular/core'; import {AfterViewInit, Component, ElementRef, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute, Params} from '@angular/router'; import {ActivatedRoute, Params} from '@angular/router';
import {DataStore} from '../globals'; import {DataStore} from '../../globals';
declare let Mstsc: any; declare let Mstsc: any;
@Component({ @Component({
selector: 'app-rdppage', selector: 'app-element-rdp',
templateUrl: './rdppage.component.html', templateUrl: './rdp.component.html',
styleUrls: ['./rdppage.component.css'] styleUrls: ['./rdp.component.scss']
}) })
export class RdppageComponent implements OnInit { export class ElementRdpComponent implements OnInit, AfterViewInit {
@ViewChild('rdp') el: ElementRef;
constructor(private activatedRoute: ActivatedRoute) { constructor(private activatedRoute: ActivatedRoute) {
DataStore.NavShow = false; DataStore.NavShow = false;
} }
ngOnInit() { ngOnInit() {
}
ngAfterViewInit() {
let token: string; let token: string;
this.activatedRoute.params.subscribe((params: Params) => { this.activatedRoute.params.subscribe((params: Params) => {
token = params['token']; token = params['token'];
}); });
const canvas = Mstsc.$('canvas'); const canvas = Mstsc.$(this.el.nativeElement);
canvas.style.display = 'inline'; canvas.style.display = 'inline';
canvas.width = window.innerWidth; canvas.width = window.innerWidth;
canvas.height = window.innerHeight; canvas.height = window.innerHeight;
const client = Mstsc.client.create(Mstsc.$('canvas')); const client = Mstsc.client.create(Mstsc.$(this.el.nativeElement));
client.connect(token, 'socket.io'); client.connect(token, 'socket.io');
} }
......
...@@ -22,27 +22,20 @@ export class ElementTermComponent implements OnInit, AfterViewInit { ...@@ -22,27 +22,20 @@ export class ElementTermComponent implements OnInit, AfterViewInit {
ngAfterViewInit() { ngAfterViewInit() {
term.col = Math.floor(jQuery(this.el.nativeElement).width() / jQuery('#liuzheng').width() * 8) - 3; term.col = Math.floor(jQuery(this.el.nativeElement).width() / jQuery('#liuzheng').width() * 8) - 3;
term.row = Math.floor(jQuery(this.el.nativeElement).height() / jQuery('#liuzheng').height()) - 5; term.row = Math.floor(jQuery(this.el.nativeElement).height() / jQuery('#liuzheng').height()) - 5;
// term.term = Terminal({
// cols: term.col,
// rows: term.row,
// useStyle: true,
// screenKeys: true,
// });
term.term.resize(term.col, term.row);
term.term.open(this.el.nativeElement, true); term.term.open(this.el.nativeElement, true);
// const that = this; const that = this;
// window.onresize = function () { window.onresize = function () {
// term.col = Math.floor(jQuery(that.el.nativeElement).width() / jQuery('#liuzheng').width() * 8) - 3; term.col = Math.floor(jQuery(that.el.nativeElement).width() / jQuery('#liuzheng').width() * 8) - 3;
// term.row = Math.floor(jQuery(that.el.nativeElement).height() / jQuery('#liuzheng').height()) - 5; term.row = Math.floor(jQuery(that.el.nativeElement).height() / jQuery('#liuzheng').height()) - 3;
// if (term.col < 80) {
// if (term.col < 80) { term.col = 80;
// term.col = 80; }
// } if (term.row < 24) {
// if (term.row < 24) { term.row = 24;
// term.row = 24; }
// } term.term.resize(term.col, term.row);
// term.term.resize(term.col, term.row); };
// }; jQuery(window).resize();
} }
} }
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { RdppageComponent } from './rdppage.component'; import { RdpPageComponent } from './rdp-page.component';
describe('RdppageComponent', () => { describe('RdpPageComponent', () => {
let component: RdppageComponent; let component: RdpPageComponent;
let fixture: ComponentFixture<RdppageComponent>; let fixture: ComponentFixture<RdpPageComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ RdppageComponent ] declarations: [ RdpPageComponent ]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(RdppageComponent); fixture = TestBed.createComponent(RdpPageComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
......
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-rdp-page',
templateUrl: './rdp-page.component.html',
styleUrls: ['./rdp-page.component.scss']
})
export class RdpPageComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
...@@ -24,4 +24,6 @@ ...@@ -24,4 +24,6 @@
app-element-term { app-element-term {
position: absolute; position: absolute;
width: 100%;
height: 100%;
} }
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Video} from '../../globals'; import {Video, term} from '../../globals';
import {term} from '../../globals';
@Component({ @Component({
selector: 'app-json', selector: 'app-json',
...@@ -22,7 +21,14 @@ export class JsonComponent implements OnInit { ...@@ -22,7 +21,14 @@ export class JsonComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
this.restart(); const that = this;
let r = true;
window.onresize = function () {
if (r) {
that.pause();
r = false;
}
};
} }
setSpeed() { setSpeed() {
......
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TermpageComponent } from './termpage.component'; import { TermPageComponent } from './term-page.component';
describe('TermpageComponent', () => { describe('TermPageComponent', () => {
let component: TermpageComponent; let component: TermPageComponent;
let fixture: ComponentFixture<TermpageComponent>; let fixture: ComponentFixture<TermPageComponent>;
beforeEach(async(() => { beforeEach(async(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [ TermpageComponent ] declarations: [ TermPageComponent ]
}) })
.compileComponents(); .compileComponents();
})); }));
beforeEach(() => { beforeEach(() => {
fixture = TestBed.createComponent(TermpageComponent); fixture = TestBed.createComponent(TermPageComponent);
component = fixture.componentInstance; component = fixture.componentInstance;
fixture.detectChanges(); fixture.detectChanges();
}); });
......
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-term-page',
templateUrl: './term-page.component.html',
styleUrls: ['./term-page.component.scss']
})
export class TermPageComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
#term {
width: 100%;
height: 100%;
}
#term > div {
height: 100%;
}
.terminal {
border: #000 solid 5px;
color: #f0f0f0;
box-shadow: rgba(0, 0, 0, 0.8) 2px 2px 20px;
white-space: nowrap;
display: inline-block;
width: 100%;
height: 100%;
background-color: black;
}
#term .terminal div span {
min-width: 12px;
}
import {Component, OnInit} from '@angular/core';
import {ActivatedRoute, Params} from '@angular/router';
import {DataStore} from '../globals';
import * as io from 'socket.io-client';
import * as Terminal from 'term.js/src/term.js';
@Component({
selector: 'app-termpage',
templateUrl: './termpage.component.html',
styleUrls: ['./termpage.component.css']
})
export class TermpageComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute) {
DataStore.NavShow = false;
}
ngOnInit() {
let token: string;
this.activatedRoute.params.subscribe((params: Params) => {
token = params['token'];
});
const socket = io.connect('/ssh');
const term = new Terminal({
cols: '80',
rows: '24',
useStyle: true,
screenKeys: true,
});
term.open(document.getElementById('term'), true);
socket.on('connect', function () {
socket.emit('token', token);
term.on('data', function (data) {
socket.emit('data', data);
});
socket.on('data', function (data) {
term.write(data);
});
socket.on('disconnect', function () {
term.destroy();
});
socket.on('resize', function (data) {
term.resize(data.col, data.row);
});
// jQuery(window).resize();
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment