Ticket #3011: auth_user_module.diff
File auth_user_module.diff, 8.1 KB (added by , 18 years ago) |
---|
-
django/contrib/auth/users/models.py
1 from django.core import validators 2 from django.db import backend, connection, models 3 from django.utils.translation import gettext_lazy as _ 4 from django.contrib.auth.models import Group, Permission, UserManager, UserTemplate 5 6 class 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
3 3 from django.db import backend, connection, models 4 4 from django.contrib.contenttypes.models import ContentType 5 5 from django.utils.translation import gettext_lazy as _ 6 from django.conf import settings 6 7 import datetime 7 8 8 9 def check_password(raw_password, enc_password): … … 82 83 from random import choice 83 84 return ''.join([choice(allowed_chars) for i in range(length)]) 84 85 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 86 class UserTemplate: 120 87 def __str__(self): 121 88 return self.username 122 89 … … 240 207 SiteProfileNotAvailable if this site does not allow profiles. 241 208 """ 242 209 if not hasattr(self, '_profile_cache'): 243 from django.conf import settings244 210 if not settings.AUTH_PROFILE_MODULE: 245 211 raise SiteProfileNotAvailable 246 212 try: … … 251 217 raise SiteProfileNotAvailable 252 218 return self._profile_cache 253 219 220 # Grab the AUTH_USER_MODULE path from the settings 221 auth_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 224 auth_user_module = __import__('.'.join(user_module_path[0:-1]), {}, {}, ['.'.join(user_module_path[0:-1])]) 225 # This is the custom User class 226 User = getattr(user_module, user_module_path[-1]) 227 254 228 class Message(models.Model): 255 229 """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. 256 230 """ -
django/conf/global_settings.py
315 315 # The name of the database to use for testing purposes. 316 316 # If None, a name of 'test_' + DATABASE_NAME will be assumed 317 317 TEST_DATABASE_NAME = None 318 319 # The class to use as the default AUTH_USER for the authentication system. 320 AUTH_USER_MODULE = 'django.contrib.auth.users.models.DefaultUser'