Ticket #3011: 3011.2.diff
File 3011.2.diff, 6.5 KB (added by , 17 years ago) |
---|
-
django/conf/global_settings.py
328 328 329 329 LOGIN_REDIRECT_URL = '/accounts/profile/' 330 330 331 # The class to use as the default AUTH_USER for the authentication system. 332 AUTH_USER_MODULE = 'django.contrib.auth.default_user.User' 333 331 334 ########### 332 335 # TESTING # 333 336 ########### -
django/contrib/auth/default_user.py
1 from django.db import models 2 from django.core import validators 3 from django.utils.translation import gettext_lazy as _ 4 5 from django.contrib.auth.models import Group, Permission, UserManager, UserTemplate 6 7 import datetime 8 9 class 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
4 4 from django.contrib.contenttypes.models import ContentType 5 5 from django.utils.encoding import smart_str 6 6 from django.utils.translation import ugettext_lazy as _ 7 from django.conf import settings 7 8 import datetime 8 9 import urllib 9 10 … … 100 101 from random import choice 101 102 return ''.join([choice(allowed_chars) for i in range(length)]) 102 103 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 104 class UserTemplate(object): 123 105 class Meta: 124 106 verbose_name = _('user') 125 107 verbose_name_plural = _('users') … … 265 247 raise SiteProfileNotAvailable 266 248 return self._profile_cache 267 249 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 254 auth_user_module_parts = settings.AUTH_USER_MODULE.rsplit('.', 1) 255 auth_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' 257 User = 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(...) 262 from django.db.models.loading import cache 263 cache.register_models('auth', User) 264 265 268 266 class Message(models.Model): 269 267 """ 270 268 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.