Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gjl2004yn
jumpserver
提交
00e986a6
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,发现更多精彩内容 >>
提交
00e986a6
编写于
5月 29, 2019
作者:
B
BaiJiangJie
提交者:
baltery
5月 29, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Update] 优化LDAP用户导入功能,可导入跨页选取的所有用户 (#2745)
上级
dc4bf669
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
46 addition
and
12 deletion
+46
-12
apps/settings/api.py
apps/settings/api.py
+42
-4
apps/settings/templates/settings/_ldap_list_users_modal.html
apps/settings/templates/settings/_ldap_list_users_modal.html
+3
-3
apps/settings/templates/settings/ldap_setting.html
apps/settings/templates/settings/ldap_setting.html
+1
-4
apps/settings/utils.py
apps/settings/utils.py
+0
-1
未找到文件。
apps/settings/api.py
浏览文件 @
00e986a6
...
...
@@ -5,7 +5,9 @@ import os
import
json
import
jms_storage
from
rest_framework
import
generics
from
rest_framework.views
import
Response
,
APIView
from
rest_framework.pagination
import
LimitOffsetPagination
from
django.conf
import
settings
from
django.core.mail
import
send_mail
from
django.utils.translation
import
ugettext_lazy
as
_
...
...
@@ -89,19 +91,55 @@ class LDAPTestingAPI(APIView):
return
Response
({
"error"
:
"Have user but attr mapping error"
},
status
=
401
)
class
LDAPUserListApi
(
APIView
):
class
LDAPUserListApi
(
generics
.
ListAPIView
):
pagination_class
=
LimitOffsetPagination
permission_classes
=
(
IsOrgAdmin
,)
def
get
(
self
,
request
):
def
get
_queryset
(
self
):
util
=
LDAPUtil
()
try
:
users
=
util
.
search_user_items
()
except
Exception
as
e
:
users
=
[]
logger
.
error
(
e
,
exc_info
=
True
)
# 前端data_table会根据row.id对table.selected值进行操作
for
user
in
users
:
user
[
'id'
]
=
user
[
'username'
]
return
users
def
filter_queryset
(
self
,
queryset
):
search
=
self
.
request
.
query_params
.
get
(
'search'
)
if
not
search
:
return
queryset
search
=
search
.
lower
()
queryset
=
[
q
for
q
in
queryset
if
search
in
q
[
'username'
].
lower
()
or
search
in
q
[
'name'
].
lower
()
or
search
in
q
[
'email'
].
lower
()
]
return
queryset
def
sort_queryset
(
self
,
queryset
):
order_by
=
self
.
request
.
query_params
.
get
(
'order'
)
if
not
order_by
:
order_by
=
'existing'
if
order_by
.
startswith
(
'-'
):
order_by
=
order_by
.
lstrip
(
'-'
)
reverse
=
True
else
:
users
=
sorted
(
users
,
key
=
lambda
u
:
(
u
[
'existing'
],
u
[
'username'
]))
return
Response
(
users
)
reverse
=
False
queryset
=
sorted
(
queryset
,
key
=
lambda
x
:
x
[
order_by
],
reverse
=
reverse
)
return
queryset
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
queryset
=
self
.
sort_queryset
(
queryset
)
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
return
self
.
get_paginated_response
(
page
)
return
Response
(
queryset
)
class
LDAPUserSyncAPI
(
APIView
):
...
...
apps/settings/templates/settings/_ldap_list_users_modal.html
浏览文件 @
00e986a6
...
...
@@ -52,7 +52,7 @@
var
ldap_users_table
=
0
;
function
initLdapUsersTable
()
{
if
(
ldap_users_table
){
return
return
ldap_users_table
}
var
options
=
{
ele
:
$
(
'
#ldap_list_users_table
'
),
...
...
@@ -73,10 +73,10 @@ function initLdapUsersTable() {
{
data
:
"
username
"
},{
data
:
"
username
"
},
{
data
:
"
name
"
},
{
data
:
"
email
"
},
{
data
:
'
existing
'
}
],
pageLength
:
1
0
pageLength
:
1
5
};
ldap_users_table
=
jumpserver
.
initDataTable
(
options
);
ldap_users_table
=
jumpserver
.
init
ServerSide
DataTable
(
options
);
return
ldap_users_table
}
...
...
apps/settings/templates/settings/ldap_setting.html
浏览文件 @
00e986a6
...
...
@@ -110,10 +110,7 @@ $(document).ready(function () {
});
})
.
on
(
"
click
"
,
"
#btn_ldap_modal_confirm
"
,
function
()
{
var
username_list
=
[];
$
(
"
tbody input[type='checkbox']:checked
"
).
each
(
function
()
{
username_list
.
push
(
$
(
this
).
attr
(
'
id
'
));
});
var
username_list
=
ldap_users_table
.
selected
;
if
(
username_list
.
length
===
0
){
var
msg
=
"
{% trans 'User is not currently selected, please check the user you want to import'%}
"
;
...
...
apps/settings/utils.py
浏览文件 @
00e986a6
...
...
@@ -61,7 +61,6 @@ class LDAPUtil:
try
:
user
=
User
.
objects
.
get
(
username
=
username
)
except
Exception
as
e
:
logger
.
info
(
e
)
return
None
else
:
return
user
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录