[Feature] 添加同步 LDAP/AD 用户的定时任务1

pull/3295/head
BaiJiangJie 2019-09-27 14:04:10 +08:00
parent ed5b2f8bf8
commit 4b7cd79682
2 changed files with 26 additions and 1 deletions

View File

@ -186,7 +186,7 @@ class LDAPUtil:
result = {'total': len(user_items), 'succeed': succeed, 'failed': failed}
return result
def sync_users(self, username_list):
def sync_users(self, username_list=None):
user_items = self.search_filter_user_items(username_list)
result = self.create_or_update_users(user_items)
return result

View File

@ -10,6 +10,8 @@ from .models import User
from .utils import (
send_password_expiration_reminder_mail, send_user_expiration_reminder_mail
)
from settings.utils import LDAPUtil
from django.conf import settings
logger = get_logger(__file__)
@ -66,3 +68,26 @@ def check_user_expired_periodic():
}
create_or_update_celery_periodic_tasks(tasks)
@shared_task
def sync_ldap_user():
logger.info("Start sync ldap user periodic task")
util = LDAPUtil()
result = util.sync_users()
logger.info("Result: {}".format(result))
@shared_task
@after_app_ready_start
def sync_ldap_user_periodic():
if not settings.AUTH_LDAP:
return
tasks = {
'sync_ldap_user_periodic': {
'task': sync_ldap_user.name,
'interval': None,
'crontab': '* * * * *',
'enabled': True,
}
}
create_or_update_celery_periodic_tasks(tasks)