Skip to content
Snippets Groups Projects
app.py 1.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • from flask_migrate import Migrate
    from models import db, Benutzer
    #from sqlalchemy import create_engine
    from flask_httpauth import HTTPBasicAuth
    from sqlalchemy.orm.exc import NoResultFound
    from werkzeug.security import generate_password_hash, check_password_hash
    from flask import Flask, jsonify, request
    from sqlalchemy import select
    
    
    auth = HTTPBasicAuth()
    
    autorisierte_benutzer = {
        "admin": generate_password_hash("admin")
    }
    
    #engine = create_engine("postgresql://postgres:postgres@postgres:5432/web-sec",echo = True)
    #conn = engine.connect()
    
    app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://postgres:postgres@postgres:5432/web-sec"
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    db.init_app(app)
    migrate = Migrate(app, db)
    
    @auth.verify_password
    def verify_password(username, password):
        if username in autorisierte_benutzer and \
                check_password_hash(autorisierte_benutzer.get(username), password):
            return username
    
    @auth.login_required
    
            return json.dumps({'Aufgabe1': 'Security of web applications'})
        
    @app.route("/benutzer/<id>", methods=["GET"])
    @auth.login_required
    def get_email(id):
        benutzer_email = db.session.query(Benutzer.email).filter(Benutzer.customerid == id).first()[0]
        return jsonify(email=benutzer_email)
    
    @app.route("/benutzer", methods=["POST"])
    @auth.login_required
    def create_user():
        new_user = Benutzer(
            vorname=request.json['vorname'],
            nachname=request.json['nachname'],
            email=request.json['email']
        )
        db.session.add(new_user)
        db.session.commit()
        return jsonify(benutzer=new_user)
    
    @app.route("/benutzer/<id>", methods=["DELETE"])
    @auth.login_required
    def delete_user(id):
        benutzer = db.session.query(Benutzer).filter(Benutzer.customerid == id).first()[0]
        db.session.delete(benutzer)
        db.session.commit()
    
        app.run(debug=True)