Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
6d552f46
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,发现更多精彩内容 >>
提交
6d552f46
编写于
1月 29, 2018
作者:
baltery
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Feature] 添加链接token
上级
cc4eca25
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
35 addition
and
2 deletion
+35
-2
apps/users/api.py
apps/users/api.py
+32
-1
apps/users/urls/api_urls.py
apps/users/urls/api_urls.py
+1
-0
apps/users/views/login.py
apps/users/views/login.py
+2
-1
未找到文件。
apps/users/api.py
浏览文件 @
6d552f46
# ~*~ coding: utf-8 ~*~
import
uuid
from
django.core.cache
import
cache
from
rest_framework
import
generics
from
rest_framework.permissions
import
AllowAny
,
IsAuthenticated
...
...
@@ -11,7 +14,8 @@ from .serializers import UserSerializer, UserGroupSerializer, \
UserUpdateGroupSerializer
,
ChangeUserPasswordSerializer
from
.tasks
import
write_login_log_async
from
.models
import
User
,
UserGroup
from
.permissions
import
IsSuperUser
,
IsValidUser
,
IsCurrentUserOrReadOnly
from
.permissions
import
IsSuperUser
,
IsValidUser
,
IsCurrentUserOrReadOnly
,
\
IsSuperUserOrAppUser
from
.utils
import
check_user_valid
,
generate_token
from
common.mixins
import
CustomFilterMixin
from
common.utils
import
get_logger
...
...
@@ -160,3 +164,30 @@ class UserAuthApi(APIView):
return
Response
({
'token'
:
token
,
'user'
:
user
.
to_json
()})
else
:
return
Response
({
'msg'
:
msg
},
status
=
401
)
class
UserConnectionTokenApi
(
APIView
):
permission_classes
=
(
IsSuperUserOrAppUser
,)
def
post
(
self
,
request
):
user_id
=
request
.
data
.
get
(
'user'
,
''
)
asset_id
=
request
.
data
.
get
(
'asset'
,
''
)
system_user_id
=
request
.
data
.
get
(
'system_user'
,
''
)
token
=
str
(
uuid
.
uuid4
())
value
=
{
'user'
:
user_id
,
'asset'
:
asset_id
,
'system_user'
:
system_user_id
}
cache
.
set
(
token
,
value
,
timeout
=
3600
)
return
Response
({
"token"
:
token
},
status
=
201
)
def
get
(
self
,
request
):
token
=
request
.
query_params
.
get
(
'token'
)
value
=
cache
.
get
(
token
,
None
)
if
value
:
cache
.
delete
(
token
)
return
Response
(
value
)
apps/users/urls/api_urls.py
浏览文件 @
6d552f46
...
...
@@ -17,6 +17,7 @@ router.register(r'v1/groups', api.UserGroupViewSet, 'user-group')
urlpatterns
=
[
# url(r'', api.UserListView.as_view()),
url
(
r
'^v1/token/$'
,
api
.
UserToken
.
as_view
(),
name
=
'user-token'
),
url
(
r
'^v1/connection-token/$'
,
api
.
UserConnectionTokenApi
.
as_view
(),
name
=
'connection-token'
),
url
(
r
'^v1/profile/$'
,
api
.
UserProfile
.
as_view
(),
name
=
'user-profile'
),
url
(
r
'^v1/auth/$'
,
api
.
UserAuthApi
.
as_view
(),
name
=
'user-auth'
),
url
(
r
'^v1/users/(?P<pk>[0-9a-zA-Z\-]{36})/password/$'
,
...
...
apps/users/views/login.py
浏览文件 @
6d552f46
...
...
@@ -80,7 +80,8 @@ class UserLogoutView(TemplateView):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
auth_logout
(
request
)
return
super
().
get
(
request
,
*
args
,
**
kwargs
)
response
=
super
().
get
(
request
,
*
args
,
**
kwargs
)
return
response
def
get_context_data
(
self
,
**
kwargs
):
context
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录