mirror of
https://github.com/FAUSheppy/jeffrey_miller_flask_ftp
synced 2025-12-06 08:41:36 +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.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 #
|
||||||
db.session.add(FTPUser(username=webform['username']))
|
try:
|
||||||
db.session.commit()
|
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
|
return None
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user