mirror of
https://github.com/FAUSheppy/jeffrey_miller_flask_ftp
synced 2025-12-06 18:21:35 +01:00
correctly error on existing user creation
This commit is contained in:
15
server.py
15
server.py
@@ -10,6 +10,7 @@ from sqlalchemy import Column, Integer, String, Boolean, or_, and_
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
from sqlalchemy.sql import func
|
||||
import sqlalchemy
|
||||
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
|
||||
@@ -91,11 +92,17 @@ def createUser(webform):
|
||||
if username in FORBIDDEN_USERNAMES:
|
||||
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 #
|
||||
db.session.add(FTPUser(username=webform['username']))
|
||||
db.session.commit()
|
||||
try:
|
||||
db.session.add(FTPUser(username=webform['username']))
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user