Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
5cc43f69
Commit
5cc43f69
authored
Mar 07, 2018
by
ibuler
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'github/dev' into dev
parents
d852f018
9aed73d6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
1 deletion
+27
-1
api.py
apps/terminal/api.py
+27
-1
No files found.
apps/terminal/api.py
View file @
5cc43f69
...
@@ -23,6 +23,7 @@ from .hands import IsSuperUserOrAppUser, IsAppUser, \
...
@@ -23,6 +23,7 @@ from .hands import IsSuperUserOrAppUser, IsAppUser, \
IsSuperUserOrAppUserOrUserReadonly
IsSuperUserOrAppUserOrUserReadonly
from
.backends
import
get_command_store
,
get_multi_command_store
,
\
from
.backends
import
get_command_store
,
get_multi_command_store
,
\
SessionCommandSerializer
SessionCommandSerializer
import
boto3
# AWS S3 sdk
logger
=
logging
.
getLogger
(
__file__
)
logger
=
logging
.
getLogger
(
__file__
)
...
@@ -249,7 +250,7 @@ class SessionReplayViewSet(viewsets.ViewSet):
...
@@ -249,7 +250,7 @@ class SessionReplayViewSet(viewsets.ViewSet):
def
gen_session_path
(
self
):
def
gen_session_path
(
self
):
date
=
self
.
session
.
date_start
.
strftime
(
'
%
Y-
%
m-
%
d'
)
date
=
self
.
session
.
date_start
.
strftime
(
'
%
Y-
%
m-
%
d'
)
return
os
.
path
.
join
(
date
,
str
(
self
.
session
.
id
)
+
'.gz'
)
return
os
.
path
.
join
(
date
,
str
(
self
.
session
.
id
)
+
'.gz'
)
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
session_id
=
kwargs
.
get
(
'pk'
)
session_id
=
kwargs
.
get
(
'pk'
)
...
@@ -279,8 +280,33 @@ class SessionReplayViewSet(viewsets.ViewSet):
...
@@ -279,8 +280,33 @@ class SessionReplayViewSet(viewsets.ViewSet):
url
=
default_storage
.
url
(
path
)
url
=
default_storage
.
url
(
path
)
return
redirect
(
url
)
return
redirect
(
url
)
else
:
else
:
config
=
self
.
app
.
config
.
get
(
"REPLAY_STORAGE"
,
None
)
if
config
:
for
name
in
config
.
keys
():
if
config
[
name
]
.
get
(
"TYPE"
,
''
)
==
"s3"
:
client
,
bucket
=
self
.
s3Client
(
config
[
name
])
try
:
client
.
head_object
(
Bucket
=
bucket
,
Key
=
path
)
client
.
download_file
(
bucket
,
path
,
default_storage
.
base_location
+
'/'
+
path
)
return
redirect
(
default_storage
.
url
(
path
))
except
:
pass
return
HttpResponseNotFound
()
return
HttpResponseNotFound
()
def
s3Client
(
self
,
config
):
bucket
=
config
.
get
(
"BUCKET"
,
"jumpserver"
)
REGION
=
config
.
get
(
"REGION"
,
None
)
ACCESS_KEY
=
config
.
get
(
"ACCESS_KEY"
,
None
)
SECRET_KEY
=
config
.
get
(
"SECRET_KEY"
,
None
)
if
self
.
ACCESS_KEY
and
REGION
and
SECRET_KEY
:
s3
=
boto3
.
client
(
's3'
,
region_name
=
REGION
,
aws_access_key_id
=
ACCESS_KEY
,
aws_secret_access_key
=
SECRET_KEY
)
else
:
s3
=
boto3
.
client
(
's3'
)
return
s3
,
bucket
class
TerminalConfig
(
APIView
):
class
TerminalConfig
(
APIView
):
permission_classes
=
(
IsAppUser
,)
permission_classes
=
(
IsAppUser
,)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment