Commit 6b60789b authored by ibuler's avatar ibuler

删除node modules

parent 05940a90
...@@ -3,3 +3,5 @@ ...@@ -3,3 +3,5 @@
*.pyo *.pyo
.access_key .access_key
logs/*.log logs/*.log
luna.iml
node_modules
\ No newline at end of file
FROM jumpserver/base-env-alpine:latest FROM jumpserver/python:v3.6.1
MAINTAINER Jumpserver Team <ibuler@qq.com> LABEL MAINTAINER Jumpserver Team <ibuler@qq.com>
COPY . /opt/jumpserver-web-terminal COPY . /opt/luna
WORKDIR /opt/jumpserver-web-terminal WORKDIR /opt/luna
RUN cd requirements && yum -y install $(cat rpm_requirements.txt)
RUN cd requirements && pip install -r requirements.txt
RUN yum clean all
VOLUME /opt/luna/logs
VOLUME /opt/luna/keys
RUN rm -r .git
RUN rm -f keys/.access_key
RUN cp config_docker.py config.py
RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple
EXPOSE 5000 EXPOSE 5000
ENV JUMPSERVER_ENDPOINT ''
ENV LUNA_ACCESS_KEY ''
ENV ACCESS_KEY_ENV ''
ENV ACCESS_KEY_STORE ''
CMD python run_server.py CMD python run_server.py
\ No newline at end of file
...@@ -12,13 +12,10 @@ module.exports = function(grunt) { ...@@ -12,13 +12,10 @@ module.exports = function(grunt) {
'luna/src/js/jquery-ui.min.js', 'luna/src/js/jquery-ui.min.js',
'luna/src/js/logo.js', 'luna/src/js/logo.js',
'luna/src/js/term.js', 'luna/src/js/term.js',
// 'node_modules/jquery.fancytree/dist/jquery.fancytree.min.js',
'node_modules/jquery.fancytree/dist/jquery.fancytree-all.min.js', 'node_modules/jquery.fancytree/dist/jquery.fancytree-all.min.js',
'node_modules/jquery.fancytree/dist/jquery.fancytree.glyph.js', 'node_modules/jquery.fancytree/dist/jquery.fancytree.glyph.js',
'node_modules/ui-contextmenu/jquery.ui-contextmenu.min.js', 'node_modules/ui-contextmenu/jquery.ui-contextmenu.min.js',
'node_modules/socket.io-client/dist/socket.io.js', 'node_modules/socket.io-client/dist/socket.io.js',
'node_modules/core-js/client/shim.min.js', 'node_modules/core-js/client/shim.min.js',
'node_modules/zone.js/dist/zone.js', 'node_modules/zone.js/dist/zone.js',
'node_modules/reflect-metadata/Reflect.js', 'node_modules/reflect-metadata/Reflect.js',
...@@ -28,22 +25,6 @@ module.exports = function(grunt) { ...@@ -28,22 +25,6 @@ module.exports = function(grunt) {
'luna/src/js/config.js', 'luna/src/js/config.js',
'node_modules/clipboard/dist/clipboard.min.js' 'node_modules/clipboard/dist/clipboard.min.js'
// 'node_modules/es6-shim/es6-shim.min.js',
// 'node_modules/systemjs/dist/system-polyfills.js',
// 'node_modules/angular2/es6/dev/src/testing/shims_for_IE.js',
// 'node_modules/angular2/bundles/angular2-polyfills.min.js',
//
// 'node_modules/systemjs/dist/system.js',
// 'node_modules/typescript/lib/typescript.js',
// 'node_modules/rxjs/bundles/Rx.min.js'
// 'node_modules/angular2/bundles/angular2.dev.js',
// 'node_modules/angular2/bundles/router.dev.js',
// 'node_modules/angular2/bundles/http.dev.js',
// 'node_modules/angular2-websocket/angular2-websocket.js'
// 'node_modules/reflect-metadata/Reflect.js',
], ],
dest: 'luna/src/js/main.js' //合并不压缩 dest: 'luna/src/js/main.js' //合并不压缩
} }
...@@ -52,53 +33,15 @@ module.exports = function(grunt) { ...@@ -52,53 +33,15 @@ module.exports = function(grunt) {
options: {}, options: {},
dist: { dist: {
files: { files: {
// 'luna/dist/main.min.js': 'luna/src/js/main.js', 'luna/src/js/main.min.js': 'luna/src/js/main.js'
// 'luna/dist/ts/index.js': 'luna/src/ts/index.js',
// 'luna/dist/ts/leftbar.js': 'luna/src/ts/leftbar.js',
// 'luna/dist/ts/nav.js': 'luna/src/ts/nav.js',
// 'luna/dist/ts/terminal.js': 'luna/src/ts/terminal.js',
// 'luna/dist/ts/service.js': 'luna/src/ts/service.js',
// 'luna/dist/ts/login.js': 'luna/src/ts/login.js',
// 'luna/dist/ts/hostedit.js': 'luna/src/ts/hostedit.js'
} }
} }
}, },
copy: { copy: {
main: { main: {
dest: 'luna/dist/main.min.js', dest: 'luna/dist/main.min.js',
src: 'luna/src/js/main.js' src: 'luna/src/js/main.min.js'
// files: [
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/luna/src/ts/index.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.ts' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.ts' },
// { filter: 'isFile', dest: 'luna/dist/', src: 'luna/src/js/main.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/index.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/leftbar.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/nav.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/terminal.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/service.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/login.js.map' },
// { filter: 'isFile', dest: 'luna/dist/ts/', src: 'luna/src/ts/hostedit.js.map' }
// ]
}, },
// ts: {
// dest: 'luna/dist/ts/**',
// src: 'luna/src/ts/**'
// }
ts: { ts: {
files: [{ files: [{
expand: true, expand: true,
......
...@@ -4,7 +4,7 @@ DEBUG = True ...@@ -4,7 +4,7 @@ DEBUG = True
# NAME = 'luna' # NAME = 'luna'
# BIND_HOST = '0.0.0.0' # BIND_HOST = '0.0.0.0'
# LISTEN_PORT = 5000 # LISTEN_PORT = 5000
# JUMPSERVER_ENDPOINT = 'http://localhost:8080/' JUMPSERVER_ENDPOINT = 'http://127.0.0.1:8080/'
# ACCESS_KEY = None # ACCESS_KEY = None
# ACCESS_KEY_ENV = 'LUNA_ACCESS_KEY' # ACCESS_KEY_ENV = 'LUNA_ACCESS_KEY'
# ACCESS_KEY_STORE = os.path.join(BASE_DIR, 'luna', 'keys', '.access_key') # ACCESS_KEY_STORE = os.path.join(BASE_DIR, 'luna', 'keys', '.access_key')
......
# ~*~ coding: utf-8 ~*~
import os
DEBUG = True
# NAME = 'luna'
# BIND_HOST = '0.0.0.0'
# LISTEN_PORT = 5000
JUMPSERVER_ENDPOINT = os.environ.get("JUMPSERVER_ENDPOINT") or 'http://jumpserver:8080/'
# ACCESS_KEY = None
# ACCESS_KEY_ENV = 'LUNA_ACCESS_KEY'
# ACCESS_KEY_STORE = os.path.join(BASE_DIR, 'luna', 'keys', '.access_key')
# LOG_DIR = os.path.join(BASE_DIR, 'luna', 'logs')
# LOG_LEVEL = 'DEBUG'
# ASSET_LIST_SORT_BY = 'ip'
# HEATBEAT_INTERVAL = 5
...@@ -6,6 +6,4 @@ BASE_DIR = os.path.abspath(os.path.dirname(__file__)) ...@@ -6,6 +6,4 @@ BASE_DIR = os.path.abspath(os.path.dirname(__file__))
from .app import app, socket_io from .app import app, socket_io
from . import authentication, views from . import authentication, views
import logger from . import logger
from flask import request
...@@ -3,12 +3,14 @@ ...@@ -3,12 +3,14 @@
import logging import logging
import time import time
import threading import threading
from gevent import monkey
from flask import Flask from flask import Flask
from flask_socketio import SocketIO from flask_socketio import SocketIO
from .conf import config from .conf import config
from .service import service from .service import service
monkey.patch_all()
logger = logging.getLogger(__file__) logger = logging.getLogger(__file__)
...@@ -63,7 +65,6 @@ class Luna(Flask): ...@@ -63,7 +65,6 @@ class Luna(Flask):
tasks = result.get('tasks') tasks = result.get('tasks')
if tasks: if tasks:
logger.info('Receive task: %s' % tasks) logger.info('Receive task: %s' % tasks)
print(tasks)
self.handle_task(tasks) self.handle_task(tasks)
time.sleep(config.HEATBEAT_INTERVAL) time.sleep(config.HEATBEAT_INTERVAL)
......
...@@ -23,13 +23,11 @@ def login_required(func=None, login_url=None): ...@@ -23,13 +23,11 @@ def login_required(func=None, login_url=None):
csrf_token = request.cookies.get('csrftoken', '') csrf_token = request.cookies.get('csrftoken', '')
if '' in [session_id, csrf_token]: if '' in [session_id, csrf_token]:
print(session_id, csrf_token)
return redirect(url) return redirect(url)
g.user_service = UserService(endpoint=app.config['JUMPSERVER_ENDPOINT']) g.user_service = UserService(endpoint=app.config['JUMPSERVER_ENDPOINT'])
g.user_service.auth_from_session(session_id, csrf_token) g.user_service.auth_from_session(session_id, csrf_token)
user = g.user_service.is_authenticated() user = g.user_service.is_authenticated()
print(user)
if user: if user:
g.user = user g.user = user
assets = g.user_service.get_my_assets() assets = g.user_service.get_my_assets()
...@@ -38,8 +36,6 @@ def login_required(func=None, login_url=None): ...@@ -38,8 +36,6 @@ def login_required(func=None, login_url=None):
assets_dict[asset['id']] = asset assets_dict[asset['id']] = asset
g.assets = assets_dict g.assets = assets_dict
return func(*args, **kwargs) return func(*args, **kwargs)
else:
print('hello')
return wrapper return wrapper
......
...@@ -16,6 +16,8 @@ class ProxyChannel(object): ...@@ -16,6 +16,8 @@ class ProxyChannel(object):
def send(self, s): def send(self, s):
"""Proxy server中使用select, 通过socketio发送给用户""" """Proxy server中使用select, 通过socketio发送给用户"""
if isinstance(s, bytes):
s = s.decode("utf-8")
return socket_io.emit('data', s, room=self.sid) return socket_io.emit('data', s, room=self.sid)
def recv(self, size): def recv(self, size):
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
<base href="/luna/"> <base href="/luna/">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="main.min.css"/> <link rel="stylesheet" type="text/css" href="main.min.css"/>
<link rel="shortcut icon" href="/luna/imgs/facio.ico" type="image/x-icon">
<!--script src="node_modules/requirejs/require.js"></script--> <!--script src="node_modules/requirejs/require.js"></script-->
<script src="main.min.js"></script> <script src="main.min.js"></script>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -28,7 +28,7 @@ class ProxyServer(object): ...@@ -28,7 +28,7 @@ class ProxyServer(object):
We also record the command and result to database for audit We also record the command and result to database for audit
""" """
ENTER_CHAR = ['\r', '\n', '\r\n'] ENTER_CHAR = ('\r', '\n', '\r\n')
OUTPUT_END_PATTERN = re.compile(r'\x1b]0;.+@.+:.+\x07.*') OUTPUT_END_PATTERN = re.compile(r'\x1b]0;.+@.+:.+\x07.*')
VIM_PATTERN = re.compile(r'\x1b\[\?1049', re.X) VIM_PATTERN = re.compile(r'\x1b\[\?1049', re.X)
IGNORE_OUTPUT_COMMAND = [re.compile(r'^cat\s+'), IGNORE_OUTPUT_COMMAND = [re.compile(r'^cat\s+'),
...@@ -61,7 +61,7 @@ class ProxyServer(object): ...@@ -61,7 +61,7 @@ class ProxyServer(object):
def is_finish_input(self, s): def is_finish_input(self, s):
for char in s: for char in s:
if char in self.ENTER_CHAR: if chr(char) in self.ENTER_CHAR:
return True return True
return False return False
...@@ -97,7 +97,7 @@ class ProxyServer(object): ...@@ -97,7 +97,7 @@ class ProxyServer(object):
def get_asset_auth(self, system_user): def get_asset_auth(self, system_user):
return self.service.get_system_user_auth_info(system_user) return self.service.get_system_user_auth_info(system_user)
def connect(self, term=b'xterm', width=80, height=24, timeout=10): def connect(self, term='xterm', width=80, height=24, timeout=10):
user = self.user user = self.user
asset = self.asset asset = self.asset
system_user = self.system_user system_user = self.system_user
...@@ -105,7 +105,6 @@ class ProxyServer(object): ...@@ -105,7 +105,6 @@ class ProxyServer(object):
try: try:
width = int(client_channel.win_width) width = int(client_channel.win_width)
height = int(client_channel.win_height) height = int(client_channel.win_height)
print('term %s*%s' % (width, height))
except TypeError: except TypeError:
pass pass
if not self.validate_user_asset_permission(): if not self.validate_user_asset_permission():
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -54,11 +54,15 @@ def leftbar(): ...@@ -54,11 +54,15 @@ def leftbar():
asset_groups_assets = user_service.get_my_asset_groups_assets() asset_groups_assets = user_service.get_my_asset_groups_assets()
for asset_group in asset_groups_assets: for asset_group in asset_groups_assets:
asset_group = asset_group.toDict()
asset_group['title'] = asset_group['name'] asset_group['title'] = asset_group['name']
asset_group['children'] = asset_group['assets'] asset_group['children'] = asset_group["assets"]
asset_group['folder'] = True asset_group['folder'] = True
del asset_group['assets']
del asset_group['name']
for asset in asset_group['children']: for asset in asset_group['children']:
asset['title'] = asset['hostname'] asset['title'] = asset['hostname']
del asset['hostname']
response.append(asset_group) response.append(asset_group)
return jsonify(response) return jsonify(response)
......
...@@ -48,7 +48,6 @@ def get_asset_system_user(asset_id, system_user_id): ...@@ -48,7 +48,6 @@ def get_asset_system_user(asset_id, system_user_id):
@login_required @login_required
def handle_machine(message): def handle_machine(message):
sid = request.sid sid = request.sid
print('Get message: {}'.format(message))
asset_id = message.get('assetId') asset_id = message.get('assetId')
system_user_id = message.get('sysUserId') system_user_id = message.get('sysUserId')
if not asset_id or not system_user_id: if not asset_id or not system_user_id:
...@@ -86,6 +85,7 @@ def handle_data(message): ...@@ -86,6 +85,7 @@ def handle_data(message):
@socket_io.on('disconnect') @socket_io.on('disconnect')
def handle_term_disconnect(): def handle_term_disconnect():
sid = request.sid sid = request.sid
if sid in clients:
del clients[sid] del clients[sid]
disconnect() disconnect()
print('term disconnect') print('term disconnect')
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
"type": "git", "type": "git",
"url": "https://github.com/jumpserver/luna.git" "url": "https://github.com/jumpserver/luna.git"
}, },
"author": "liuzheng712,sofia", "author": "liuzheng712,sofia,ibuler",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@angular/common": "2.0.0-rc.4", "@angular/common": "2.0.0-rc.4",
......
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