Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AbstractBaseUser(models.Model):
- password = models.CharField(_('password'), max_length=128)
- last_login = models.DateTimeField(_('last login'), default=timezone.now)
- is_active = True
- REQUIRED_FIELDS = []
- class Meta:
- abstract = True
- def get_username(self):
- "Return the identifying username for this User"
- return getattr(self, self.USERNAME_FIELD)
- def __str__(self):
- return self.get_username()
- def natural_key(self):
- return (self.get_username(),)
- def is_anonymous(self):
- """
- Always returns False. This is a way of comparing User objects to
- anonymous users.
- """
- return False
- def is_authenticated(self):
- """
- Always return True. This is a way to tell if the user has been
- authenticated in templates.
- """
- return True
- def set_password(self, raw_password):
- self.password = make_password(raw_password)
- def check_password(self, raw_password):
- """
- Returns a boolean of whether the raw_password was correct. Handles
- hashing formats behind the scenes.
- """
- def setter(raw_password):
- self.set_password(raw_password)
- self.save(update_fields=["password"])
- return check_password(raw_password, self.password, setter)
- def set_unusable_password(self):
- # Sets a value that will never be a valid hash
- self.password = make_password(None)
- def has_usable_password(self):
- return is_password_usable(self.password)
- def get_full_name(self):
- raise NotImplementedError('subclasses of AbstractBaseUser must provide a get_full_name() method')
- def get_short_name(self):
- raise NotImplementedError('subclasses of AbstractBaseUser must provide a get_short_name() method.')
- def get_session_auth_hash(self):
- """
- Returns an HMAC of the password field.
- """
- key_salt = "django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash"
- return salted_hmac(key_salt, self.password).hexdigest()
Advertisement
Add Comment
Please, Sign In to add comment