correctly error on existing user creation

This commit is contained in:
Yannik Schmidt
2021-08-31 23:00:59 +02:00
parent 3d8f5ff0db
commit b16d4c1e76

View File

@@ -10,6 +10,7 @@ from sqlalchemy import Column, Integer, String, Boolean, or_, and_
from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import sessionmaker
from sqlalchemy.exc import IntegrityError from sqlalchemy.exc import IntegrityError
from sqlalchemy.sql import func from sqlalchemy.sql import func
import sqlalchemy
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
@@ -91,11 +92,17 @@ def createUser(webform):
if username in FORBIDDEN_USERNAMES: if username in FORBIDDEN_USERNAMES:
return "Error: Username {} is forbidden because it is a special user.".format(username) return "Error: Username {} is forbidden because it is a special user.".format(username)
subprocess.run(["/usr/bin/sudo", "./scripts/create_user.sh", cryptPass, username])
# track added users to prevent deletion of other users and listing # # track added users to prevent deletion of other users and listing #
try:
db.session.add(FTPUser(username=webform['username'])) db.session.add(FTPUser(username=webform['username']))
db.session.commit() db.session.commit()
except sqlalchemy.exc.IntegrityError as e:
if "UNIQUE" in str(e):
return "Error: User with this name already exists"
else:
return str(e)
subprocess.run(["/usr/bin/sudo", "./scripts/create_user.sh", cryptPass, username])
return None return None