9144798af18db106a7de72c28a17dfbc9ed53d81
[matthijs/upstream/django-ldapdb.git] / examples / models.py
1 from ldapdb.models.fields import CharField, IntegerField, ListField
2 import ldapdb.models
3
4 class LdapUser(ldapdb.models.Model):
5     """
6     Class for representing an LDAP user entry.
7     """
8     # LDAP meta-data
9     base_dn = "ou=people,dc=nodomain"
10     object_classes = ['posixAccount', 'shadowAccount', 'inetOrgPerson']
11
12     # inetOrgPerson
13     first_name = CharField(db_column='givenName')
14     last_name = CharField(db_column='sn')
15     full_name = CharField(db_column='cn')
16     email = CharField(db_column='mail')
17     phone = CharField(db_column='telephoneNumber', blank=True)
18     mobile_phone = CharField(db_column='mobile', blank=True)
19     photo = ImageField(db_column='jpegPhoto')
20
21     # posixAccount
22     uid = IntegerField(db_column='uidNumber', unique=True)
23     group = IntegerField(db_column='gidNumber')
24     gecos =  CharField(db_column='gecos')
25     home_directory = CharField(db_column='homeDirectory')
26     login_shell = CharField(db_column='loginShell', default=USERS_SHELL)
27     username = CharField(db_column='uid', primary_key=True)
28     password = CharField(db_column='userPassword')
29
30     def __str__(self):
31         return self.username
32
33     def __unicode__(self):
34         return self.full_name
35
36 class LdapGroup(ldapdb.models.Model):
37     """
38     Class for representing an LDAP group entry.
39     """
40     # LDAP meta-data
41     base_dn = "ou=groups,dc=nodomain"
42     object_classes = ['posixGroup']
43
44     # posixGroup attributes
45     gid = IntegerField(db_column='gidNumber', unique=True)
46     name = CharField(db_column='cn', max_length=200, primary_key=True)
47     members = ListField(db_column='memberUid')
48
49     def __str__(self):
50         return self.name
51
52     def __unicode__(self):
53         return self.name
54