Exemple #1
0
def create_user(db: Session, user: UserCreate):
    user.password = get_password_hash(user.password)
    db_user = models.User(**user.dict())
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user
    def post(self):
        '''do the login :)'''
        email = self.request.data.get('email')
        password = self.request.data.get('password')

        user = yield from db.users.find_one({
            'email': email
        })

        if user:
            password_hash = yield from utils.get_password_hash(
                user['salt'],
                password.encode()
            )
            if user['password'] == password_hash:
                user['last_login'] = datetime.datetime.now()
                yield from db.users.save(user)

                user['token'] = yield from utils.generate_token(user)
                yield from serializers.user(user)
                self.response.set_content(user)
            else:
                self.invalid_response()
        else:
            self.invalid_response()
        yield from self.response.close()
Exemple #3
0
 def change_user_password(username: str, password: str) -> UserDto:
     c = connection.cursor()
     password = get_password_hash(password)
     c.execute("UPDATE users SET password=%s WHERE username=%s;",
               (password, username))
     connection.commit()
     return UsersService.get_user_by_username(username)
Exemple #4
0
 def create_user(username: str, password: str) -> UserDto:
     now = datetime.now()
     c = connection.cursor()
     password = get_password_hash(password)
     c.execute(
         "INSERT INTO users (username, password, created_at, updated_at) VALUES (%s, %s, %s, %s) RETURNING id;",
         (username, password, now, now),
     )
     (user_id, ) = c.fetchone()
     connection.commit()
     return UsersService.get_user_by_id(user_id)
Exemple #5
0
def register_customer(firstname, surname, password, email):
    """Registers a new customer."""
    password_hash = get_password_hash(password)
    session = generate_session_id(firstname)
    query = (
        "INSERT INTO customers (firstname, surname, password, email, session_id) VALUES (%s, %s, %s, %s, %s)"
    )
    query_info = (firstname, surname, password_hash, email, session)
    execute_query(query, query_info)
    print("Added new customer user to DB")
    return session
Exemple #6
0
def register_staff(name, password, email, _type):
    """Registers a staff member with all relevant details."""
    password_hash = get_password_hash(password)
    session = generate_session_id(name)
    query = (
        "INSERT INTO staff (name, password, email, type, session_id) VALUES (%s, %s, %s, %s, %s)"
    )
    query_info = (name, password_hash, email, _type, session)
    execute_query(query, query_info)
    print("Added new staff user to DB")
    return session
Exemple #7
0
def login():
    if request.method == "GET":
        return render_template("login.html")
    elif request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        if not user_credentials_schema.validate(request.form):
            abort(400)
        password = get_password_hash(password)
        user = UsersService.get_user_by_username(username)
        if user.password != password:
            abort(400)
        SessionsService.attach_user(request.session_token, user.id)
        return redirect(url_for("index_page"))
Exemple #8
0
    def post(self):
        ''' This method is called on HTTP POST'''
        user = self.request.data
        is_valid = yield from self.validate_user(user)

        if is_valid:
            user['salt'] = yield from utils.generate_salt()
            user['last_login'] = user['created'] = datetime.datetime.now()
            user['modified'] = None
            user['password'] = yield from utils.get_password_hash(
                user['salt'], user['password'].encode())
            db.users.insert(user)
            yield from serializers.user(user)

            # Generate the token
            user['token'] = yield from utils.generate_token(user)

            self.response.status_code = 201
            self.response.set_content(user)
            yield from self.response.close()
    def post(self):
        ''' This method is called on HTTP POST'''
        user = self.request.data
        is_valid = yield from self.validate_user(user)

        if is_valid:
            user['salt'] = yield from utils.generate_salt()
            user['last_login'] = user['created'] = datetime.datetime.now()
            user['modified'] = None
            user['password'] = yield from utils.get_password_hash(
                user['salt'], user['password'].encode()
            )
            db.users.insert(user)
            yield from serializers.user(user)

            # Generate the token
            user['token'] = yield from utils.generate_token(user)

            self.response.status_code = 201
            self.response.set_content(user)
            yield from self.response.close()
Exemple #10
0
    def post(self):
        '''do the login :)'''
        email = self.request.data.get('email')
        password = self.request.data.get('password')

        user = yield from db.users.find_one({'email': email})

        if user:
            password_hash = yield from utils.get_password_hash(
                user['salt'], password.encode())
            if user['password'] == password_hash:
                user['last_login'] = datetime.datetime.now()
                yield from db.users.save(user)

                user['token'] = yield from utils.generate_token(user)
                yield from serializers.user(user)
                self.response.set_content(user)
            else:
                self.invalid_response()
        else:
            self.invalid_response()
        yield from self.response.close()