authentik/passbook/sources/ldap/models.py

45 lines
1.4 KiB
Python
Raw Normal View History

2018-11-26 16:18:56 +00:00
"""passbook LDAP Models"""
2018-11-11 12:41:48 +00:00
2019-10-10 16:36:09 +01:00
from django.core.validators import URLValidator
2018-11-26 16:18:56 +00:00
from django.db import models
from django.utils.translation import gettext as _
2018-11-11 12:41:48 +00:00
2019-10-10 16:36:09 +01:00
from passbook.core.models import Group, PropertyMapping, Source
2018-11-26 16:18:56 +00:00
class LDAPSource(Source):
"""LDAP Authentication source"""
2019-10-10 16:36:09 +01:00
server_uri = models.URLField(validators=[URLValidator(schemes=['ldap', 'ldaps'])])
2018-11-26 16:18:56 +00:00
bind_cn = models.TextField()
bind_password = models.TextField()
2019-10-10 16:36:09 +01:00
start_tls = models.BooleanField(default=False)
2018-11-26 16:18:56 +00:00
base_dn = models.TextField()
2019-10-10 16:36:09 +01:00
additional_user_dn = models.TextField(help_text=_('Prepended to Base DN for User-queries.'))
additional_group_dn = models.TextField(help_text=_('Prepended to Base DN for Group-queries.'))
user_object_filter = models.TextField()
group_object_filter = models.TextField()
sync_groups = models.BooleanField(default=True)
sync_parent_group = models.ForeignKey(Group, blank=True,
default=None, on_delete=models.SET_DEFAULT)
2018-11-26 16:18:56 +00:00
2019-10-07 15:33:48 +01:00
form = 'passbook.sources.ldap.forms.LDAPSourceForm'
2018-11-26 17:22:38 +00:00
@property
def get_login_button(self):
raise NotImplementedError()
2018-11-26 16:18:56 +00:00
class Meta:
verbose_name = _('LDAP Source')
verbose_name_plural = _('LDAP Sources')
2018-11-11 12:41:48 +00:00
2019-10-10 16:36:09 +01:00
class LDAPPropertyMapping(PropertyMapping):
2018-11-11 12:41:48 +00:00
2019-10-10 16:36:09 +01:00
ldap_property = models.TextField()
object_field = models.TextField()