Skip to content
Snippets Groups Projects
Forked from infrastruktur / warpinfra
32 commits behind the upstream repository.
models.py 1.90 KiB
from django.db import models
from ldapdb.models.fields import CharField, IntegerField, ListField
import ldapdb.models
from django.forms import ModelForm


class PasswordResetToken(models.Model):
    user = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    hash = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.hash

class ActivationToken(models.Model):
    user = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    token = models.CharField(max_length=100)
    created = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.token

# LDAP


class LdapUser(ldapdb.models.Model):
    class Meta:
        managed = False

    base_dn = "ou=users,dc=warpzone,dc=ms"
    object_classes = ['inetOrgPerson']

    uid = CharField(db_column='uid', unique=True, primary_key=True)
    first_name = CharField(db_column='givenName', max_length=200)
    last_name = CharField(db_column='sn', max_length=200)
    email = CharField(db_column='mail', max_length=200)
    cn = CharField(db_column='cn', max_length=200)
    card_id = CharField(db_column='employeeNumber', max_length=200)

    def __str__(self):
        return self.uid

    def __unicode__(self):
        return self.uid


class LdapUserForm(ModelForm):
    class Meta:
        model = LdapUser
        fields = ['first_name', 'last_name', 'email', 'card_id']


class LdapGroup(ldapdb.models.Model):
    class Meta:
        managed = False

    base_dn = "ou=groups,dc=warpzone,dc=ms"
    object_classes = ['groupOfUniqueNames']

    gid = IntegerField(db_column='gidNumber', unique=True)
    name = CharField(db_column='cn', max_length=200, primary_key=True)
    members = ListField(db_column='uniqueMember')

    def __str__(self):
        return self.name

    def __unicode__(self):
        return self.name