Exemplo n.º 1
0
    def add(cls, email, password, confirm_password, first_name, last_name, brief=None):

        # validate email
        if not is_email_address_valid(email):
            raise InvalidFieldError("Email address is not valid", ["email"])

        # check matched password
        if password != confirm_password:
            raise InvalidFieldError("Password and confirm password does not match", ["password", "confirm_password"])
        elif len(password) < 6:
            raise InvalidFieldError("Password length must be at least 6 characters", ["password"])
        # validate name
        if not first_name or not last_name:
            raise InvalidFieldError("First name and/or last name are in valid", ["first_name", "last_name"])

        args = {
            "email": email.lower(),
            "password": hashlib.md5(password).hexdigest(),
            "first_name": first_name,
            "last_name": last_name
        }

        if brief:
            args["brief"] = brief

        # create activate id
        user = DBUser(**args)
        user.activation_id = hashlib.md5(email + password).hexdigest()

        # persistent user object
        try:
            user.save()
            return user
        except:
            raise
Exemplo n.º 2
0
    def update_user(cls, user_id, email=None, password=None, confirm_password=None, first_name=None, last_name=None,
                    brief=None, avatar=None):
        try:
            user = DBUser.get_by_id(user_id)

            if user is None:
                raise UserNotFoundError("User with id = %d does not exist" %user_id)

            # validate email
            if email and not is_email_address_valid(email):
                raise InvalidFieldError("Email address is not valid", ["email"])
            elif email:
                user.email = email

            if password and confirm_password:
                # check matched password
                if password != confirm_password:
                    raise InvalidFieldError("Password and confirm password does not match", ["password", "confirm_password"])
                elif len(password) < 6:
                    raise InvalidFieldError("Password length must be at least 6 characters", ["password"])
                else:
                    user.password = hashlib.md5(password).hexdigest()

            # validate name
            if first_name is not None and len(first_name) == 0:
                raise InvalidFieldError("First name is in valid", ["first_name"])
            elif first_name:
                user.first_name = first_name

            if last_name is not  None and len(last_name) == 0:
                raise InvalidFieldError("Last name is in valid", ["last_name"])
            elif last_name:
                user.last_name = last_name

            if brief:
                user.brief = brief

            if avatar:
                user.avatar = avatar

            # persistent user object
            user.update()
            return user
        except:
            raise
Exemplo n.º 3
0
    def activate_user(cls, email, activation_id):
        # validate input
        if not is_email_address_valid(email):
            return None

        arg = {
            "email": email.lower(),
        }

        user = DBUser.get_one(arg)

        if user :
                if user.activation_id == activation_id:
                    # only return some basic info
                    user.activation_id = ""
                    user.activated = True
                    user.update()
                    return user
                else:
                    return None
        else:
            return None
Exemplo n.º 4
0
    def verify_user(cls, email, password):
        # validate input
        if not is_email_address_valid(email) or len(password) < 6:
            return None

        arg = {
            "email": email.lower(),
        }

        password_hashed = hashlib.md5(password).hexdigest()
        user = DBUser.get_one(arg)

        if user :
            if user.activated:
                if user.password == password_hashed:
                    # only return some basic info

                    return user
                else:
                    return None
            else:
                raise UserNotActivatedError()
        else:
            return None