def upload_to_mugshot(instance, filename): """ Uploads a mugshot for a user to the ``ACCOUNTS_MUGSHOT_PATH`` and saving it under unique hash for the image. This is for privacy reasons so others can't just browse through the mugshot directory. """ extension = filename.split('.')[-1].lower() salt, hash = generate_sha1(instance.id) return '%(path)s%(hash)s.%(extension)s' % {'path': accounts_settings.ACCOUNTS_MUGSHOT_PATH, 'hash': hash[:10], 'extension': extension}
def create_accounts_profile(self, user): """ Creates an :class:`UserenaSignup` instance for this user. :param user: Django :class:`User` instance. :return: The newly created :class:`UserenaSignup` instance. """ if isinstance(user.username, unicode): user.username = user.username.encode('utf-8') salt, activation_key = generate_sha1(user.username) return self.create(user=user, activation_key=activation_key)
def change_email(self, email): """ Changes the email address for a user. A user needs to verify this new email address before it becomes active. By storing the new email address in a temporary field -- ``temporary_email`` -- we are able to set this email address after the user has verified it by clicking on the verification URI in the email. This email gets send out by ``send_verification_email``. :param email: The new email address that the user wants to use. """ self.email_unconfirmed = email salt, hash = generate_sha1(self.user.username) self.email_confirmation_key = hash self.email_confirmation_key_created = get_datetime_now() self.save() # Send email for activation self.send_confirmation_email()