Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
bf40aa8d
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,发现更多精彩内容 >>
提交
bf40aa8d
编写于
11月 19, 2019
作者:
baltery
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Update] 修改user list api
上级
0c349f93
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
32 addition
and
19 deletion
+32
-19
apps/common/mixins/models.py
apps/common/mixins/models.py
+12
-0
apps/orgs/models.py
apps/orgs/models.py
+16
-4
apps/static/js/jumpserver.js
apps/static/js/jumpserver.js
+2
-0
apps/users/models/user.py
apps/users/models/user.py
+2
-1
apps/users/serializers/user.py
apps/users/serializers/user.py
+0
-14
未找到文件。
apps/common/mixins/models.py
浏览文件 @
bf40aa8d
...
...
@@ -53,3 +53,15 @@ class CommonModelMixin(models.Model):
class
Meta
:
abstract
=
True
class
DebugQueryManager
(
models
.
Manager
):
def
get_queryset
(
self
):
import
traceback
lines
=
traceback
.
format_stack
()
print
(
">>>>>>>>>>>>>>>>>>>>>>>>>>>>"
)
for
line
in
lines
[
-
10
:
-
1
]:
print
(
line
)
print
(
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
)
queryset
=
super
().
get_queryset
()
return
queryset
apps/orgs/models.py
浏览文件 @
bf40aa8d
...
...
@@ -4,7 +4,7 @@ from django.conf import settings
from
django.db
import
models
from
django.utils.translation
import
ugettext_lazy
as
_
from
common.utils
import
is_uuid
from
common.utils
import
is_uuid
,
lazyproperty
class
Organization
(
models
.
Model
):
...
...
@@ -72,7 +72,8 @@ class Organization(models.Model):
org
=
cls
.
default
()
if
default
else
None
return
org
def
get_org_users
(
self
):
@
lazyproperty
def
org_users
(
self
):
from
users.models
import
User
if
self
.
is_real
():
return
self
.
users
.
all
()
...
...
@@ -81,18 +82,29 @@ class Organization(models.Model):
users
=
users
.
filter
(
related_user_orgs__isnull
=
True
)
return
users
def
get_org_admins
(
self
):
def
get_org_users
(
self
):
return
self
.
org_users
@
lazyproperty
def
org_admins
(
self
):
from
users.models
import
User
if
self
.
is_real
():
return
self
.
admins
.
all
()
return
User
.
objects
.
filter
(
role
=
User
.
ROLE_ADMIN
)
def
get_org_auditors
(
self
):
def
get_org_admins
(
self
):
return
self
.
org_admins
@
lazyproperty
def
org_auditors
(
self
):
from
users.models
import
User
if
self
.
is_real
():
return
self
.
auditors
.
all
()
return
User
.
objects
.
filter
(
role
=
User
.
ROLE_AUDITOR
)
def
get_org_auditors
(
self
):
return
self
.
org_auditors
def
get_org_members
(
self
,
exclude
=
()):
from
users.models
import
User
members
=
User
.
objects
.
none
()
...
...
apps/static/js/jumpserver.js
浏览文件 @
bf40aa8d
...
...
@@ -299,6 +299,8 @@ function requestApi(props) {
msg
=
jqXHR
.
responseJSON
.
error
}
else
if
(
jqXHR
.
responseJSON
.
msg
)
{
msg
=
jqXHR
.
responseJSON
.
msg
}
else
if
(
jqXHR
.
responseJSON
.
detail
)
{
msg
=
jqXHR
.
responseJSON
.
detail
}
}
if
(
msg
===
""
)
{
...
...
apps/users/models/user.py
浏览文件 @
bf40aa8d
...
...
@@ -404,7 +404,8 @@ class MFAMixin:
def
mfa_enabled_but_not_set
(
self
):
if
self
.
mfa_enabled
and
\
self
.
mfa_is_otp
()
and
not
self
.
otp_secret_key
:
self
.
mfa_is_otp
()
and
\
not
self
.
otp_secret_key
:
return
True
return
False
...
...
apps/users/serializers/user.py
浏览文件 @
bf40aa8d
...
...
@@ -18,9 +18,6 @@ __all__ = [
class
UserSerializer
(
BulkSerializerMixin
,
serializers
.
ModelSerializer
):
can_update
=
serializers
.
SerializerMethodField
()
can_delete
=
serializers
.
SerializerMethodField
()
class
Meta
:
model
=
User
list_serializer_class
=
AdaptedBulkListSerializer
...
...
@@ -31,7 +28,6 @@ class UserSerializer(BulkSerializerMixin, serializers.ModelSerializer):
'comment'
,
'source'
,
'source_display'
,
'is_valid'
,
'is_expired'
,
'is_active'
,
'created_by'
,
'is_first_login'
,
'date_password_last_updated'
,
'date_expired'
,
'avatar_url'
,
'can_update'
,
'can_delete'
,
]
extra_kwargs
=
{
'password'
:
{
'write_only'
:
True
,
'required'
:
False
,
'allow_null'
:
True
,
'allow_blank'
:
True
},
...
...
@@ -48,16 +44,6 @@ class UserSerializer(BulkSerializerMixin, serializers.ModelSerializer):
'can_delete'
:
{
'read_only'
:
True
},
}
def
get_can_update
(
self
,
obj
):
return
CanUpdateDeleteUser
.
has_update_object_permission
(
self
.
context
[
'request'
],
self
.
context
[
'view'
],
obj
)
def
get_can_delete
(
self
,
obj
):
return
CanUpdateDeleteUser
.
has_delete_object_permission
(
self
.
context
[
'request'
],
self
.
context
[
'view'
],
obj
)
def
validate_role
(
self
,
value
):
request
=
self
.
context
.
get
(
'request'
)
if
not
request
.
user
.
is_superuser
and
value
!=
User
.
ROLE_USER
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录