67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""passbook LDAP Models"""
 | 
						|
 | 
						|
from django.db import models
 | 
						|
from django.utils.translation import gettext as _
 | 
						|
 | 
						|
from passbook.core.models import Source
 | 
						|
 | 
						|
 | 
						|
class LDAPSource(Source):
 | 
						|
    """LDAP Authentication source"""
 | 
						|
 | 
						|
    TYPE_ACTIVE_DIRECTORY = 'ad'
 | 
						|
    TYPE_GENERIC = 'generic'
 | 
						|
    TYPES = (
 | 
						|
        (TYPE_ACTIVE_DIRECTORY, _('Active Directory')),
 | 
						|
        (TYPE_GENERIC, _('Generic')),
 | 
						|
    )
 | 
						|
 | 
						|
    server_uri = models.TextField()
 | 
						|
    bind_cn = models.TextField()
 | 
						|
    bind_password = models.TextField()
 | 
						|
    type = models.CharField(max_length=20, choices=TYPES)
 | 
						|
 | 
						|
    domain = models.TextField()
 | 
						|
    base_dn = models.TextField()
 | 
						|
    create_user = models.BooleanField(default=False)
 | 
						|
    reset_password = models.BooleanField(default=True)
 | 
						|
 | 
						|
    form = 'passbook.ldap.forms.LDAPSourceForm'
 | 
						|
 | 
						|
    @property
 | 
						|
    def get_login_button(self):
 | 
						|
        raise NotImplementedError()
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        verbose_name = _('LDAP Source')
 | 
						|
        verbose_name_plural = _('LDAP Sources')
 | 
						|
 | 
						|
 | 
						|
# class LDAPModification(UUIDModel, CreatedUpdatedModel):
 | 
						|
#     """Store LDAP Data in DB if LDAP Server is unavailable"""
 | 
						|
#     ACTION_ADD = 'ADD'
 | 
						|
#     ACTION_MODIFY = 'MODIFY'
 | 
						|
 | 
						|
#     ACTIONS = (
 | 
						|
#         (ACTION_ADD, 'ADD'),
 | 
						|
#         (ACTION_MODIFY, 'MODIFY'),
 | 
						|
#     )
 | 
						|
 | 
						|
#     dn = models.CharField(max_length=255)
 | 
						|
#     action = models.CharField(max_length=17, choices=ACTIONS, default=ACTION_MODIFY)
 | 
						|
#     data = JSONField()
 | 
						|
 | 
						|
#     def __str__(self):
 | 
						|
#         return "LDAPModification %d from %s" % (self.pk, self.created)
 | 
						|
 | 
						|
 | 
						|
# class LDAPGroupMapping(UUIDModel, CreatedUpdatedModel):
 | 
						|
#     """Model to map an LDAP Group to a supervisr group"""
 | 
						|
 | 
						|
#     ldap_dn = models.TextField()
 | 
						|
#     group = models.ForeignKey(Group, on_delete=models.CASCADE)
 | 
						|
 | 
						|
#     def __str__(self):
 | 
						|
#         return "LDAPGroupMapping %s -> %s" % (self.ldap_dn, self.group.name)
 |