Ticket #3011: auth_user_module2.diff

File auth_user_module2.diff, 8.1 KB (added by nowell strite, 9 years ago)

updated patch, fixes typo in previous file

  • django/contrib/auth/users/models.py

     
     1from django.core import validators
     2from django.db import backend, connection, models
     3from django.utils.translation import gettext_lazy as _
     4from django.contrib.auth.models import Group, Permission, UserManager, UserTemplate
     5
     6class DefaultUser(models.Model, UserTemplate):
     7    """Users within the Django authentication system are represented by this model.
     8
     9    Username and password are required. Other fields are optional.
     10    """
     11    username = models.CharField(_('username'), maxlength=30, unique=True, validator_list=[validators.isAlphaNumeric], help_text=_("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."))
     12    first_name = models.CharField(_('first name'), maxlength=30, blank=True)
     13    last_name = models.CharField(_('last name'), maxlength=30, blank=True)
     14    email = models.EmailField(_('e-mail address'), blank=True)
     15    password = models.CharField(_('password'), maxlength=128, help_text=_("Use '[algo]$[salt]$[hexdigest]'"))
     16    is_staff = models.BooleanField(_('staff status'), default=False, help_text=_("Designates whether the user can log into this admin site."))
     17    is_active = models.BooleanField(_('active'), default=True, help_text=_("Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."))
     18    is_superuser = models.BooleanField(_('superuser status'), default=False, help_text=_("Designates that this user has all permissions without explicitly assigning them."))
     19    last_login = models.DateTimeField(_('last login'), default=models.LazyDate())
     20    date_joined = models.DateTimeField(_('date joined'), default=models.LazyDate())
     21    groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True, help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
     22    user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True, filter_interface=models.HORIZONTAL)
     23    objects = UserManager()
     24
     25    class Meta:
     26        verbose_name = _('user')
     27        verbose_name_plural = _('users')
     28        ordering = ('username',)
     29        db_table = 'auth_user'
     30       
     31    class Admin:
     32        fields = (
     33            (None, {'fields': ('username', 'password')}),
     34            (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
     35            (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
     36            (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
     37            (_('Groups'), {'fields': ('groups',)}),
     38        )
     39        list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
     40        list_filter = ('is_staff', 'is_superuser')
     41        search_fields = ('username', 'first_name', 'last_name', 'email')
  • django/contrib/auth/models.py

     
    33from django.db import backend, connection, models
    44from django.contrib.contenttypes.models import ContentType
    55from django.utils.translation import gettext_lazy as _
     6from django.conf import settings
    67import datetime
    78
    89def check_password(raw_password, enc_password):
     
    8283        from random import choice
    8384        return ''.join([choice(allowed_chars) for i in range(length)])
    8485
    85 class User(models.Model):
    86     """Users within the Django authentication system are represented by this model.
    87 
    88     Username and password are required. Other fields are optional.
    89     """
    90     username = models.CharField(_('username'), maxlength=30, unique=True, validator_list=[validators.isAlphaNumeric], help_text=_("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."))
    91     first_name = models.CharField(_('first name'), maxlength=30, blank=True)
    92     last_name = models.CharField(_('last name'), maxlength=30, blank=True)
    93     email = models.EmailField(_('e-mail address'), blank=True)
    94     password = models.CharField(_('password'), maxlength=128, help_text=_("Use '[algo]$[salt]$[hexdigest]'"))
    95     is_staff = models.BooleanField(_('staff status'), default=False, help_text=_("Designates whether the user can log into this admin site."))
    96     is_active = models.BooleanField(_('active'), default=True, help_text=_("Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."))
    97     is_superuser = models.BooleanField(_('superuser status'), default=False, help_text=_("Designates that this user has all permissions without explicitly assigning them."))
    98     last_login = models.DateTimeField(_('last login'), default=models.LazyDate())
    99     date_joined = models.DateTimeField(_('date joined'), default=models.LazyDate())
    100     groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True,
    101         help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
    102     user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True, filter_interface=models.HORIZONTAL)
    103     objects = UserManager()
    104     class Meta:
    105         verbose_name = _('user')
    106         verbose_name_plural = _('users')
    107         ordering = ('username',)
    108     class Admin:
    109         fields = (
    110             (None, {'fields': ('username', 'password')}),
    111             (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
    112             (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}),
    113             (_('Important dates'), {'fields': ('last_login', 'date_joined')}),
    114             (_('Groups'), {'fields': ('groups',)}),
    115         )
    116         list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
    117         list_filter = ('is_staff', 'is_superuser')
    118         search_fields = ('username', 'first_name', 'last_name', 'email')
    119 
     86class UserTemplate:
    12087    def __str__(self):
    12188        return self.username
    12289
     
    240207        SiteProfileNotAvailable if this site does not allow profiles.
    241208        """
    242209        if not hasattr(self, '_profile_cache'):
    243             from django.conf import settings
    244210            if not settings.AUTH_PROFILE_MODULE:
    245211                raise SiteProfileNotAvailable
    246212            try:
     
    251217                raise SiteProfileNotAvailable
    252218        return self._profile_cache
    253219
     220# Grab the AUTH_USER_MODULE path from the settings
     221auth_user_module_path = settings.AUTH_USER_MODULE.split('.')
     222# Import the AUTH_USER_MODULE
     223# The [0:-1] holds the module path, [-1] holds the class name
     224auth_user_module = __import__('.'.join(auth_user_module_path[0:-1]), {}, {}, ['.'.join(auth_user_module_path[0:-1])])
     225# This is the custom User class
     226User = getattr(auth_user_module, auth_user_module_path[-1])
     227
    254228class Message(models.Model):
    255229    """The message system is a lightweight way to queue messages for given users. A message is associated with a User instance (so it is only applicable for registered users). There's no concept of expiration or timestamps. Messages are created by the Django admin after successful actions. For example, "The poll Foo was created successfully." is a message.
    256230    """
  • django/conf/global_settings.py

     
    315315# The name of the database to use for testing purposes.
    316316# If None, a name of 'test_' + DATABASE_NAME will be assumed
    317317TEST_DATABASE_NAME = None
     318
     319# The class to use as the default AUTH_USER for the authentication system.
     320AUTH_USER_MODULE = 'django.contrib.auth.users.models.DefaultUser'
Back to Top