def create(cls, **extrafields): extrafields.setdefault('is_super_user', False) extrafields.setdefault('is_staff_user', False) extrafields.setdefault('is_active_user', True) extrafields['password'] = _hash_password(extrafields['password']) new_user = cls(**extrafields) if settings.BULB_REGISTRATION_USE_EMAIL_CONFIRMATION: # Generate the email confirmation key. email_confirmation_key = make_uuid() # Apply it to the new User instance. new_user.update('email_confirmation_key', email_confirmation_key) target_email = extrafields[settings.BULB_USER_EMAIL_PROPERTY_NAME] confirmation_url = settings.BULB_CONFIRMATION_VIEW_PATH + email_confirmation_key send_mail( from_email=settings.BULB_EMAIL_CONFIRMATION_SENDER_NAME, subject=settings.BULB_EMAIL_CONFIRMATION_SUBJECT, recipient_list=[f"{target_email}"], message=settings.BULB_EMAIL_CONFIRMATION_DEFAULT_MESSAGE + confirmation_url, html_message=render_to_string( settings.BULB_EMAIL_CONFIRMATION_TEMPLATE_PATH, {"confirmation_url": confirmation_url})) return new_user
def create_super_user(cls, **extrafields): extrafields.setdefault('is_super_user', True) extrafields.setdefault('is_staff_user', True) extrafields.setdefault('is_active_user', True) extrafields['password'] = _hash_password(extrafields['password']) is_super_user = extrafields.get('is_super_user') is_staff_user = extrafields.get('is_staff_user') if not is_super_user: bulb_logger.error( 'ValueError(\'A SuperUser must have "is_super_user = True".\')' ) raise ValueError('A SuperUser must have "is_super_user = True".') elif not is_staff_user: bulb_logger.error( 'ValueError(\'A SuperUser must have "is_staff_user = True".\')' ) raise ValueError('A SuperUser must have "is_staff_user = True".') else: new_super_user = User(**extrafields) return new_super_user
def set_password(self, new_password): self.update("password", _hash_password(new_password))