mirror of https://github.com/jumpserver/jumpserver
update
parent
1084be4712
commit
9b43c6c238
|
@ -16,15 +16,15 @@ class Log(models.Model):
|
||||||
'''
|
'''
|
||||||
add by liuzheng
|
add by liuzheng
|
||||||
'''
|
'''
|
||||||
userMM = models.ManyToManyField(User)
|
# userMM = models.ManyToManyField(User)
|
||||||
logPath = models.TextField()
|
# logPath = models.TextField()
|
||||||
filename = models.CharField(max_length=40)
|
# filename = models.CharField(max_length=40)
|
||||||
logPWD = models.TextField() # log zip file's
|
# logPWD = models.TextField() # log zip file's
|
||||||
nick = models.TextField(null=True) # log's nick name
|
# nick = models.TextField(null=True) # log's nick name
|
||||||
log = models.TextField(null=True)
|
# log = models.TextField(null=True)
|
||||||
history = models.TextField(null=True)
|
# history = models.TextField(null=True)
|
||||||
timestamp = models.IntegerField(default=int(time.time()))
|
# timestamp = models.IntegerField(default=int(time.time()))
|
||||||
datetimestamp = models.DateTimeField(auto_now_add=True)
|
# datetimestamp = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|
|
@ -7,7 +7,7 @@ from jperm.perm_api import user_have_perm
|
||||||
from django.http import HttpResponseNotFound
|
from django.http import HttpResponseNotFound
|
||||||
from jlog.log_api import renderTemplate
|
from jlog.log_api import renderTemplate
|
||||||
|
|
||||||
from jlog.models import Log, ExecLog, FileLog
|
from jlog.models import Log, ExecLog, FileLog,TermLog
|
||||||
from jumpserver.settings import LOG_DIR
|
from jumpserver.settings import LOG_DIR
|
||||||
import zipfile
|
import zipfile
|
||||||
import json
|
import json
|
||||||
|
@ -136,9 +136,9 @@ def log_record(request):
|
||||||
elif request.method == "POST":
|
elif request.method == "POST":
|
||||||
log_id = request.REQUEST.get('id', None)
|
log_id = request.REQUEST.get('id', None)
|
||||||
if log_id:
|
if log_id:
|
||||||
logs = TermLogRecorder(request.user)
|
TermL = TermLogRecorder(request.user)
|
||||||
log = Log.objects.get(id=int(log_id))
|
log = TermLog.objects.get(id=int(log_id))
|
||||||
return HttpResponse(logs.load_full_log(log.filename))
|
return HttpResponse(TermL.load_full_log(log.filename))
|
||||||
else:
|
else:
|
||||||
return HttpResponse("ERROR")
|
return HttpResponse("ERROR")
|
||||||
else:
|
else:
|
||||||
|
@ -261,16 +261,16 @@ class TermLogRecorder(object):
|
||||||
zf.setpassword(password)
|
zf.setpassword(password)
|
||||||
zf.writestr(filename, json.dumps(self.log))
|
zf.writestr(filename, json.dumps(self.log))
|
||||||
zf.close()
|
zf.close()
|
||||||
record = Log.objects.create(logPath=filepath, logPWD=password, filename=filename,
|
record = TermLog.objects.create(logPath=filepath, logPWD=password, filename=filename,
|
||||||
history=json.dumps(self.CMD), timestamp=int(self.recoderStartTime))
|
history=json.dumps(self.CMD), timestamp=int(self.recoderStartTime))
|
||||||
if self.user:
|
if self.user:
|
||||||
record.userMM.add(self.user)
|
record.user.add(self.user)
|
||||||
except:
|
except:
|
||||||
record = Log.objects.create(logPath='locale', logPWD=password, log=json.dumps(self.log),
|
record = TermLog.objects.create(logPath='locale', logPWD=password, log=json.dumps(self.log),
|
||||||
filename=filename, history=json.dumps(self.CMD),
|
filename=filename, history=json.dumps(self.CMD),
|
||||||
timestamp=int(self.recoderStartTime))
|
timestamp=int(self.recoderStartTime))
|
||||||
if self.user:
|
if self.user:
|
||||||
record.userMM.add(self.user)
|
record.user.add(self.user)
|
||||||
|
|
||||||
def list(self, user=None, uid=None):
|
def list(self, user=None, uid=None):
|
||||||
tmp = []
|
tmp = []
|
||||||
|
@ -281,7 +281,7 @@ class TermLogRecorder(object):
|
||||||
else:
|
else:
|
||||||
user = self.user
|
user = self.user
|
||||||
if user:
|
if user:
|
||||||
self._lists = Log.objects.filter(user=user.id)
|
self._lists = TermLog.objects.filter(user=user.id)
|
||||||
for i in self._lists.all():
|
for i in self._lists.all():
|
||||||
tmp.append(
|
tmp.append(
|
||||||
{'filename': i.filename, 'locale': i.logPath == 'locale', 'nick': i.nick, 'timestamp': i.timestamp,
|
{'filename': i.filename, 'locale': i.logPath == 'locale', 'nick': i.nick, 'timestamp': i.timestamp,
|
||||||
|
@ -299,7 +299,7 @@ class TermLogRecorder(object):
|
||||||
if self._lists:
|
if self._lists:
|
||||||
self.file = self._lists.get(filename=filename)
|
self.file = self._lists.get(filename=filename)
|
||||||
else:
|
else:
|
||||||
self.file = Log.objects.get(user=user.id, filename=filename)
|
self.file = TermLog.objects.get(user=user.id, filename=filename)
|
||||||
if self.file.logPath == 'locale':
|
if self.file.logPath == 'locale':
|
||||||
return self.file.log
|
return self.file.log
|
||||||
else:
|
else:
|
||||||
|
@ -323,7 +323,7 @@ class TermLogRecorder(object):
|
||||||
if self._lists:
|
if self._lists:
|
||||||
self.file = self._lists.get(filename=filename)
|
self.file = self._lists.get(filename=filename)
|
||||||
else:
|
else:
|
||||||
self.file = Log.objects.get(user=user.id, filename=filename)
|
self.file = TermLog.objects.get(user=user.id, filename=filename)
|
||||||
return self.file.history
|
return self.file.history
|
||||||
return 'ERROR User(None)'
|
return 'ERROR User(None)'
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ class TermLogRecorder(object):
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
if user:
|
if user:
|
||||||
Log.objects.get(filename=filename).userMM.add(user)
|
TermLog.objects.get(filename=filename).user.add(user)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -347,6 +347,6 @@ class TermLogRecorder(object):
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
if user:
|
if user:
|
||||||
Log.objects.get(filename=filename).userMM.remove(user)
|
TermLog.objects.get(filename=filename).user.remove(user)
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -103,17 +103,17 @@ NgApp.controller('TerminalRecordCtrl', function ($scope, $http) {
|
||||||
};
|
};
|
||||||
|
|
||||||
var term = new Terminal({
|
var term = new Terminal({
|
||||||
rows: 80,
|
rows: 24,
|
||||||
cols: 24,
|
cols: 80,
|
||||||
useStyle: true,
|
useStyle: true,
|
||||||
screenKeys: true
|
screenKeys: true
|
||||||
});
|
});
|
||||||
var timelist = [];
|
var timelist = [];
|
||||||
for (var i in data) {
|
for (var i in data) {
|
||||||
totalTime = totalTime > i ? totalTime : i;
|
totalTime = Math.max(totalTime, i);
|
||||||
timelist.push(i);
|
timelist.push(i);
|
||||||
}
|
}
|
||||||
timelist = timelist.sort();
|
timelist = timelist.sort(function(a, b){return a-b});
|
||||||
totalTime = totalTime * 1000;
|
totalTime = totalTime * 1000;
|
||||||
document.getElementById("afterScrubberText").innerHTML = buildTimeString(totalTime);
|
document.getElementById("afterScrubberText").innerHTML = buildTimeString(totalTime);
|
||||||
term.open(document.getElementById('terminal'));
|
term.open(document.getElementById('terminal'));
|
||||||
|
|
|
@ -8,6 +8,11 @@
|
||||||
{% include 'nav_cat_bar.html' %}
|
{% include 'nav_cat_bar.html' %}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
iframe {
|
||||||
|
|
||||||
|
overflow:hidden;
|
||||||
|
|
||||||
|
}
|
||||||
.bootstrap-dialog-body {
|
.bootstrap-dialog-body {
|
||||||
background-color: rgba(0, 0, 0, 0);
|
background-color: rgba(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
@ -157,7 +162,7 @@
|
||||||
title: title,
|
title: title,
|
||||||
maxmin: true,
|
maxmin: true,
|
||||||
shade: false,
|
shade: false,
|
||||||
area: ['800px', '520px'],
|
area: ['620px', '450px'],
|
||||||
content: url
|
content: url
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html ng-app="NgApp">
|
<html ng-app="NgApp" style=" overflow:hidden;">
|
||||||
<head lang="en">
|
<head lang="en">
|
||||||
<title>Jumpserver 录像回放</title>
|
<title>Jumpserver 录像回放</title>
|
||||||
<script type="application/javascript" src='/static/js/jquery-2.1.1.js'></script>
|
<script type="application/javascript" src='/static/js/jquery-2.1.1.js'></script>
|
||||||
|
|
Loading…
Reference in New Issue