Ticket #3011: 3011.2.diff

File 3011.2.diff, 6.5 KB (added by Densetsu no Ero-sennin <densetsu.no.ero.sennin@…>, 17 years ago)

patch against [6023]

  • django/conf/global_settings.py

     
    328328
    329329LOGIN_REDIRECT_URL = '/accounts/profile/'
    330330
     331# The class to use as the default AUTH_USER for the authentication system.
     332AUTH_USER_MODULE = 'django.contrib.auth.default_user.User'
     333
    331334###########
    332335# TESTING #
    333336###########
  • django/contrib/auth/default_user.py

     
     1from django.db import models
     2from django.core import validators
     3from django.utils.translation import gettext_lazy as _
     4
     5from django.contrib.auth.models import Group, Permission, UserManager, UserTemplate
     6
     7import datetime
     8
     9class User(models.Model, UserTemplate):
     10    """Users within the Django authentication system are represented by this model.
     11
     12    Username and password are required. Other fields are optional.
     13    """
     14    username = models.CharField(_('username'), max_length=30, unique=True, validator_list=[validators.isAlphaNumeric], help_text=_("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."))
     15    first_name = models.CharField(_('first name'), max_length=30, blank=True)
     16    last_name = models.CharField(_('last name'), max_length=30, blank=True)
     17    email = models.EmailField(_('e-mail address'), blank=True)
     18    password = models.CharField(_('password'), max_length=128, help_text=_("Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."))
     19    is_staff = models.BooleanField(_('staff status'), default=False, help_text=_("Designates whether the user can log into this admin site."))
     20    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."))
     21    is_superuser = models.BooleanField(_('superuser status'), default=False, help_text=_("Designates that this user has all permissions without explicitly assigning them."))
     22    last_login = models.DateTimeField(_('last login'), default=datetime.datetime.now)
     23    date_joined = models.DateTimeField(_('date joined'), default=datetime.datetime.now)
     24    groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True,
     25        help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
     26    user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True)
     27    objects = UserManager()
  • django/contrib/auth/models.py

     
    44from django.contrib.contenttypes.models import ContentType
    55from django.utils.encoding import smart_str
    66from django.utils.translation import ugettext_lazy as _
     7from django.conf import settings
    78import datetime
    89import urllib
    910
     
    100101        from random import choice
    101102        return ''.join([choice(allowed_chars) for i in range(length)])
    102103
    103 class User(models.Model):
    104     """Users within the Django authentication system are represented by this model.
    105 
    106     Username and password are required. Other fields are optional.
    107     """
    108     username = models.CharField(_('username'), max_length=30, unique=True, validator_list=[validators.isAlphaNumeric], help_text=_("Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."))
    109     first_name = models.CharField(_('first name'), max_length=30, blank=True)
    110     last_name = models.CharField(_('last name'), max_length=30, blank=True)
    111     email = models.EmailField(_('e-mail address'), blank=True)
    112     password = models.CharField(_('password'), max_length=128, help_text=_("Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."))
    113     is_staff = models.BooleanField(_('staff status'), default=False, help_text=_("Designates whether the user can log into this admin site."))
    114     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."))
    115     is_superuser = models.BooleanField(_('superuser status'), default=False, help_text=_("Designates that this user has all permissions without explicitly assigning them."))
    116     last_login = models.DateTimeField(_('last login'), default=datetime.datetime.now)
    117     date_joined = models.DateTimeField(_('date joined'), default=datetime.datetime.now)
    118     groups = models.ManyToManyField(Group, verbose_name=_('groups'), blank=True,
    119         help_text=_("In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."))
    120     user_permissions = models.ManyToManyField(Permission, verbose_name=_('user permissions'), blank=True)
    121     objects = UserManager()
    122 
     104class UserTemplate(object):
    123105    class Meta:
    124106        verbose_name = _('user')
    125107        verbose_name_plural = _('users')
     
    265247                raise SiteProfileNotAvailable
    266248        return self._profile_cache
    267249
     250
     251# Grab the AUTH_USER_MODULE path and classname from the settings.
     252# auth_user_module_parts[0] = module path
     253# auth_user_module_parts[1] = class name
     254auth_user_module_parts = settings.AUTH_USER_MODULE.rsplit('.', 1)
     255auth_user_module = __import__(auth_user_module_parts[0], {}, {}, [auth_user_module_parts[0]])
     256# Store the auth_user model so it is accessible with the standard 'from django.contrib.auth.models import User'
     257User = getattr(auth_user_module, auth_user_module_parts[1])
     258
     259# Add the User model to the django models cache
     260# These two lines allow the custom auth_user model to play nicely with syncdb and other systems that rely
     261# on functions like django.db.models.loading.get_model(...)
     262from django.db.models.loading import cache
     263cache.register_models('auth', User)
     264
     265
    268266class Message(models.Model):
    269267    """
    270268    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.
Back to Top