Esempio n. 1
0
    def create_user(cls, email, first_name, last_name, password,
                        groups=[]):
        """
        Responsible for validating new user input.  Hashes password
        and raises UserExists error if is duplicate. Creates and saves
        a new user.
        """
        # let validation error bubble up for right now
        validate_email(email)

        # check if user exists based on email
        try:
            cls.objects.get(email=email)
            # how should User be referred to ? cls or User?
            raise UserExists
        except User.DoesNotExist:
            pass

        # hash bpassword
        encrypted_password = encrypt_password(password)
        now_datetime = datetime.now()

        new_user = cls(
            email = email, 
            first_name = first_name, 
            last_name = last_name, 
            password = encrypted_password,
            datetime_joined = now_datetime, 
            last_login = now_datetime,
            is_active = True
        )
        if groups:
            new_user.groups = groups
        new_user.save()
        return new_user
Esempio n. 2
0
    def authenticate(cls, email, password):
        """
        Check to see if a user's credentials are correct.

        @param email string
        @param password string
        @return User object or None
        """
        encrypted_password = encrypt_password(password)
        try:
            user = cls.objects.get(email=email, 
                            password=encrypted_password, is_active=True)
            return user
        except cls.DoesNotExist:
            return None