web/ldt/user/models.py
author ymh <ymh.work@gmail.com>
Tue, 08 Jun 2010 15:44:35 +0200
changeset 5 ae8593287883
parent 0 ecdfc63274bf
permissions -rw-r--r--
correct error changing ldt.ldt to ldt.ldt_utils
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
from django.db import models
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
from django.contrib.auth.models import User, Group, UserManager
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
from django.utils.translation import gettext as _
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
from django.contrib import admin
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
import datetime
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
class IriGroup(Group):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    description = models.TextField(null=True, blank=True)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    def __unicode__(self):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        return self.name
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
            
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
class ldt(User):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    irigroups = models.ManyToManyField(IriGroup, blank=True)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    class Meta:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        verbose_name = 'iri user'
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        verbose_name_plural = 'iri users'
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    def __unicode__(self):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        return self.username
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
class ldtManager(UserManager):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    def create_user(self, username, email, password=None):
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        "Creates and saves a User with the given username, e-mail and password."
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        now = datetime.datetime.now()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        user = ldt(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
        if password:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            user.set_password(password)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        else:
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            user.set_unusable_password()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        user.save()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
        return user   
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
User.objects = ldtManager()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
User.objects.contribute_to_class(User, "objects")
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
admin.site.register(ldt)
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
admin.site.register(IriGroup)