mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-04 08:55:40 +00:00
Ldap synchronization (#2512)
* [Add]初步实现ldap一键导入用户到jumpserver用户表里 * [update]增加定时延迟一秒刷新页面 * [Update]更改前端以表格形式显示用户信息,优化代码结构 * [Update]增加用户显示表格 * [Update]settings配置文件取消注释 * [Update]优化ldap同步用功能代码 * [Update]删除ldap同步用户旧html模版 * [Update]修改登录页面图片拉伸问题 * [Update]增加 是否已经导入,在前端提示用户 * [Update]优化ldap同步用户的代码,以及翻译 * [Update] 更新翻译(改密计划) (#2525) * [Update] 更新翻译(添加改密计划) * [Update] 更新翻译(改密计划) * [Update] 更新翻译 * [Update] 更新翻译 * Export login log (#2511) * [Add]增加登录日志导出功能 * [Update]优化导出登录日志代码 * [Update]优化导出登录日志代码 * [Update]更改导出登录日志按钮
This commit is contained in:
@@ -5,17 +5,16 @@ import os
|
||||
import json
|
||||
import jms_storage
|
||||
|
||||
from rest_framework.views import Response, APIView
|
||||
from ldap3 import Server, Connection
|
||||
from rest_framework.views import Response, APIView
|
||||
from django.conf import settings
|
||||
from django.core.mail import send_mail
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
from common.permissions import IsOrgAdmin, IsSuperUser
|
||||
from .serializers import (
|
||||
MailTestSerializer, LDAPTestSerializer
|
||||
)
|
||||
from .models import Setting
|
||||
from .utils import get_ldap_users_list, save_user
|
||||
from common.permissions import IsOrgAdmin, IsSuperUser
|
||||
from .serializers import MailTestSerializer, LDAPTestSerializer
|
||||
|
||||
|
||||
class MailTestingAPI(APIView):
|
||||
@@ -91,6 +90,36 @@ class LDAPTestingAPI(APIView):
|
||||
return Response({"error": str(serializer.errors)}, status=401)
|
||||
|
||||
|
||||
class LDAPSyncAPI(APIView):
|
||||
permission_classes = (IsOrgAdmin,)
|
||||
|
||||
def get(self, request):
|
||||
ldap_users_list = get_ldap_users_list()
|
||||
if not isinstance(ldap_users_list, list):
|
||||
return Response(ldap_users_list, status=401)
|
||||
return Response(ldap_users_list)
|
||||
|
||||
|
||||
class LDAPConfirmSyncAPI(APIView):
|
||||
permission_classes = (IsOrgAdmin,)
|
||||
|
||||
def post(self, request):
|
||||
user_names = request.data.get('user_names', '')
|
||||
if not user_names:
|
||||
error = _('User is not currently selected, please check the user '
|
||||
'you want to import')
|
||||
return Response({'error': error}, status=401)
|
||||
|
||||
ldap_users_list = get_ldap_users_list(user_names=user_names)
|
||||
if not isinstance(ldap_users_list, list):
|
||||
return Response(ldap_users_list, status=401)
|
||||
|
||||
save_result = save_user(ldap_users_list)
|
||||
if 'error' in save_result.keys():
|
||||
return Response(save_result, status=401)
|
||||
return Response(save_result)
|
||||
|
||||
|
||||
class ReplayStorageCreateAPI(APIView):
|
||||
permission_classes = (IsSuperUser,)
|
||||
|
||||
|
Reference in New Issue
Block a user