Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
c5af4d47
J
jumpserver
项目概览
gjl2004yn
/
jumpserver
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jumpserver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c5af4d47
编写于
3月 27, 2018
作者:
baltery
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'some_auth_api' into dev
上级
3aaea6cc
c37bfb68
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
58 addition
and
26 deletion
+58
-26
apps/assets/api/admin_user.py
apps/assets/api/admin_user.py
+8
-1
apps/assets/api/system_user.py
apps/assets/api/system_user.py
+0
-9
apps/assets/serializers/admin_user.py
apps/assets/serializers/admin_user.py
+17
-0
apps/assets/serializers/base.py
apps/assets/serializers/base.py
+28
-0
apps/assets/serializers/system_user.py
apps/assets/serializers/system_user.py
+2
-3
apps/assets/urls/api_urls.py
apps/assets/urls/api_urls.py
+2
-12
apps/users/serializers.py
apps/users/serializers.py
+1
-1
未找到文件。
apps/assets/api/admin_user.py
浏览文件 @
c5af4d47
...
...
@@ -28,7 +28,8 @@ from ..tasks import test_admin_user_connectability_manual
logger
=
get_logger
(
__file__
)
__all__
=
[
'AdminUserViewSet'
,
'ReplaceNodesAdminUserApi'
,
'AdminUserTestConnectiveApi'
'AdminUserViewSet'
,
'ReplaceNodesAdminUserApi'
,
'AdminUserTestConnectiveApi'
,
'AdminUserAuthApi'
,
]
...
...
@@ -41,6 +42,12 @@ class AdminUserViewSet(IDInFilterMixin, BulkModelViewSet):
permission_classes
=
(
IsSuperUser
,)
class
AdminUserAuthApi
(
generics
.
UpdateAPIView
):
queryset
=
AdminUser
.
objects
.
all
()
serializer_class
=
serializers
.
AdminUserAuthSerializer
permission_classes
=
(
IsSuperUser
,)
class
ReplaceNodesAdminUserApi
(
generics
.
UpdateAPIView
):
queryset
=
AdminUser
.
objects
.
all
()
serializer_class
=
serializers
.
ReplaceNodeAdminUserSerializer
...
...
apps/assets/api/system_user.py
浏览文件 @
c5af4d47
...
...
@@ -48,15 +48,6 @@ class SystemUserAuthInfoApi(generics.RetrieveUpdateAPIView):
permission_classes
=
(
IsSuperUserOrAppUser
,)
serializer_class
=
serializers
.
SystemUserAuthSerializer
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
password
=
request
.
data
.
pop
(
"password"
,
None
)
private_key
=
request
.
data
.
pop
(
"private_key"
,
None
)
instance
=
self
.
get_object
()
if
password
or
private_key
:
instance
.
set_auth
(
password
=
password
,
private_key
=
private_key
)
return
super
().
update
(
request
,
*
args
,
**
kwargs
)
class
SystemUserPushApi
(
generics
.
RetrieveAPIView
):
"""
...
...
apps/assets/serializers/admin_user.py
浏览文件 @
c5af4d47
...
...
@@ -2,9 +2,12 @@
#
from
django.core.cache
import
cache
from
rest_framework
import
serializers
from
..models
import
Node
,
AdminUser
from
..const
import
ADMIN_USER_CONN_CACHE_KEY
from
.base
import
AuthSerializer
class
AdminUserSerializer
(
serializers
.
ModelSerializer
):
"""
...
...
@@ -18,6 +21,10 @@ class AdminUserSerializer(serializers.ModelSerializer):
model
=
AdminUser
fields
=
'__all__'
def
get_field_names
(
self
,
declared_fields
,
info
):
fields
=
super
().
get_field_names
(
declared_fields
,
info
)
return
[
f
for
f
in
fields
if
not
f
.
startswith
(
'_'
)]
@
staticmethod
def
get_unreachable_amount
(
obj
):
data
=
cache
.
get
(
ADMIN_USER_CONN_CACHE_KEY
.
format
(
obj
.
name
))
...
...
@@ -39,6 +46,13 @@ class AdminUserSerializer(serializers.ModelSerializer):
return
obj
.
assets_amount
class
AdminUserAuthSerializer
(
AuthSerializer
):
class
Meta
:
model
=
AdminUser
fields
=
[
'password'
,
'private_key'
]
class
ReplaceNodeAdminUserSerializer
(
serializers
.
ModelSerializer
):
"""
管理用户更新关联到的集群
...
...
@@ -50,3 +64,6 @@ class ReplaceNodeAdminUserSerializer(serializers.ModelSerializer):
class
Meta
:
model
=
AdminUser
fields
=
[
'id'
,
'nodes'
]
apps/assets/serializers/base.py
0 → 100644
浏览文件 @
c5af4d47
# -*- coding: utf-8 -*-
#
from
rest_framework
import
serializers
from
common.utils
import
ssh_pubkey_gen
class
AuthSerializer
(
serializers
.
ModelSerializer
):
password
=
serializers
.
CharField
(
required
=
False
,
allow_blank
=
True
,
allow_null
=
True
,
max_length
=
1024
)
private_key
=
serializers
.
CharField
(
required
=
False
,
allow_blank
=
True
,
allow_null
=
True
,
max_length
=
4096
)
def
gen_keys
(
self
,
private_key
=
None
,
password
=
None
):
if
private_key
is
None
:
return
None
,
None
public_key
=
ssh_pubkey_gen
(
private_key
=
private_key
,
password
=
password
)
return
private_key
,
public_key
def
save
(
self
,
**
kwargs
):
password
=
self
.
validated_data
.
pop
(
'password'
)
or
None
private_key
=
self
.
validated_data
.
pop
(
'private_key'
)
or
None
self
.
instance
=
super
().
save
(
**
kwargs
)
if
password
or
private_key
:
private_key
,
public_key
=
self
.
gen_keys
(
private_key
,
password
)
self
.
instance
.
set_auth
(
password
=
password
,
private_key
=
private_key
,
public_key
=
public_key
)
return
self
.
instance
apps/assets/serializers/system_user.py
浏览文件 @
c5af4d47
from
rest_framework
import
serializers
from
..models
import
SystemUser
from
.base
import
AuthSerializer
class
SystemUserSerializer
(
serializers
.
ModelSerializer
):
...
...
@@ -36,12 +37,10 @@ class SystemUserSerializer(serializers.ModelSerializer):
return
len
(
obj
.
assets
)
class
SystemUserAuthSerializer
(
serializers
.
Model
Serializer
):
class
SystemUserAuthSerializer
(
Auth
Serializer
):
"""
系统用户认证信息
"""
password
=
serializers
.
CharField
(
max_length
=
1024
)
private_key
=
serializers
.
CharField
(
max_length
=
4096
)
class
Meta
:
model
=
SystemUser
...
...
apps/assets/urls/api_urls.py
浏览文件 @
c5af4d47
...
...
@@ -7,9 +7,7 @@ app_name = 'assets'
router
=
BulkRouter
()
# router.register(r'v1/groups', api.AssetGroupViewSet, 'asset-group')
router
.
register
(
r
'v1/assets'
,
api
.
AssetViewSet
,
'asset'
)
# router.register(r'v1/clusters', api.ClusterViewSet, 'cluster')
router
.
register
(
r
'v1/admin-user'
,
api
.
AdminUserViewSet
,
'admin-user'
)
router
.
register
(
r
'v1/system-user'
,
api
.
SystemUserViewSet
,
'system-user'
)
router
.
register
(
r
'v1/labels'
,
api
.
LabelViewSet
,
'label'
)
...
...
@@ -27,18 +25,10 @@ urlpatterns = [
api
.
AssetAdminUserTestApi
.
as_view
(),
name
=
'asset-alive-test'
),
url
(
r
'^v1/assets/user-assets/$'
,
api
.
UserAssetListView
.
as_view
(),
name
=
'user-asset-list'
),
# update the asset group, which add or delete the asset to the group
#url(r'^v1/groups/(?P<pk>[0-9a-zA-Z\-]{36})/assets/$',
# api.GroupUpdateAssetsApi.as_view(), name='group-update-assets'),
#url(r'^v1/groups/(?P<pk>[0-9a-zA-Z\-]{36})/assets/add/$',
# api.GroupAddAssetsApi.as_view(), name='group-add-assets'),
# update the Cluster, and add or delete the assets to the Cluster
#url(r'^v1/cluster/(?P<pk>[0-9a-zA-Z\-]{36})/assets/$',
# api.ClusterAddAssetsApi.as_view(), name='cluster-add-assets'),
#url(r'^v1/cluster/(?P<pk>[0-9a-zA-Z\-]{36})/assets/connective/$',
# api.ClusterTestAssetsAliveApi.as_view(), name='cluster-test-connective'),
url
(
r
'^v1/admin-user/(?P<pk>[0-9a-zA-Z\-]{36})/nodes/$'
,
api
.
ReplaceNodesAdminUserApi
.
as_view
(),
name
=
'replace-nodes-admin-user'
),
url
(
r
'^v1/admin-user/(?P<pk>[0-9a-zA-Z\-]{36})/auth/$'
,
api
.
AdminUserAuthApi
.
as_view
(),
name
=
'admin-user-auth'
),
url
(
r
'^v1/admin-user/(?P<pk>[0-9a-zA-Z\-]{36})/connective/$'
,
api
.
AdminUserTestConnectiveApi
.
as_view
(),
name
=
'admin-user-connective'
),
url
(
r
'^v1/system-user/(?P<pk>[0-9a-zA-Z\-]{36})/push/$'
,
...
...
apps/users/serializers.py
浏览文件 @
c5af4d47
...
...
@@ -14,7 +14,7 @@ signer = get_signer()
class
UserSerializer
(
BulkSerializerMixin
,
serializers
.
ModelSerializer
):
groups_display
=
serializers
.
SerializerMethodField
()
groups
=
serializers
.
PrimaryKeyRelatedField
(
many
=
True
,
queryset
=
UserGroup
.
objects
.
all
())
groups
=
serializers
.
PrimaryKeyRelatedField
(
many
=
True
,
queryset
=
UserGroup
.
objects
.
all
()
,
required
=
False
)
class
Meta
:
model
=
User
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录