skeleton routes

This commit is contained in:
Yannik Schmidt
2021-08-30 18:37:24 +02:00
parent c5d9149bb2
commit c2a41ca4dd

View File

@@ -14,11 +14,18 @@ from sqlalchemy.sql import func
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
app = flask.Flask("Flask-VSFTP-User-Tool") app = flask.Flask("Flask-VSFTP-User-Tool")
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
HTTP_FORBIDDEN = 401 HTTP_FORBIDDEN = 401
HTTP_NOT_FOUND = 404 HTTP_NOT_FOUND = 404
HTTP_UNPROCESSABLE = 422 HTTP_UNPROCESSABLE = 422
HTTP_INTERNAL_ERR = 500 HTTP_INTERNAL_ERR = 500
# unix useradd requires exactly this salt, do not change
PAM_PASSWD_SALT = "22"
@app.route('/') @app.route('/')
def index(): def index():
return flask.render_template("index.html") return flask.render_template("index.html")
@@ -29,20 +36,20 @@ def createUser():
return ("Success", 200) return ("Success", 200)
@app.route('/delete-user', methods=["POST"]) @app.route('/delete-user', methods=["POST"])
def createUser(): def deleteUser():
deleteUser(user=flask.request.get('user') deleteUser(user=flask.request.get('user'))
return ("Success", 200) return ("Success", 200)
@app.route('/list-user') @app.route('/list-users')
def listUsers(''): def listUsers():
users = db.session.query(FTPUser) users = db.session.query(FTPUser)
return flask.render_template("list_users.html", users=users) return flask.render_template("list_users.html", users=users)
def createUser(webform): def createUser(webform):
# command line useradd requires a pre-encrypted password # command line useradd requires a pre-encrypted password
cryptPass = crypt.crypt(password, webform.password) cryptPass = crypt.crypt(webform['password'], PAM_PASSWD_SALT)
subprocess.run(["./scripts/create_user.sh", cryptPass, webform.username]) subprocess.run(["./scripts/create_user.sh", cryptPass, webform['username']])
# track added users to prevent deletion of other users and listing # # track added users to prevent deletion of other users and listing #
db.session.add(FTPUser(webform.username)) db.session.add(FTPUser(webform.username))