mirror of https://github.com/jumpserver/jumpserver
22 lines
824 B
Python
22 lines
824 B
Python
from django.utils.translation import gettext_lazy as _
|
|
from rest_framework import serializers
|
|
from ops.mixin import PeriodTaskSerializerMixin
|
|
|
|
|
|
class LDAPSerializerMixin:
|
|
def validate(self, attrs):
|
|
is_periodic = attrs.get(self.periodic_key)
|
|
crontab = attrs.get(self.crontab_key)
|
|
interval = attrs.get(self.interval_key)
|
|
if is_periodic and not any([crontab, interval]):
|
|
msg = _("Require interval or crontab setting")
|
|
raise serializers.ValidationError(msg)
|
|
return super().validate(attrs)
|
|
|
|
def post_save(self):
|
|
keys = [self.periodic_key, self.interval_key, self.crontab_key]
|
|
kwargs = {k: self.validated_data[k] for k in keys if k in self.validated_data}
|
|
if not kwargs:
|
|
return
|
|
self.import_task_function(**kwargs)
|