1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-09-19 18:31:16 +00:00
AdvLabDB/advlabdb/model_independent_funs.py

28 lines
674 B
Python
Raw Normal View History

2022-05-16 20:20:36 +00:00
# Functions not dependent on advlabdb.models
2022-07-03 15:46:23 +00:00
import secrets
2022-05-29 17:03:54 +00:00
from string import ascii_letters, digits
2022-05-16 20:20:36 +00:00
from sqlalchemy import func, select
2022-05-29 17:03:54 +00:00
from . import app, db
2022-07-03 15:46:23 +00:00
PASSWORD_CHARS: str = ascii_letters + digits + "!%*+=?"
2022-05-29 17:03:54 +00:00
2022-07-03 15:46:23 +00:00
def randomPassword() -> str:
2022-05-29 17:03:54 +00:00
password_length = app.config["SECURITY_PASSWORD_LENGTH_MIN"]
2022-07-03 15:46:23 +00:00
return "".join(secrets.choice(PASSWORD_CHARS) for i in range(password_length))
2022-05-16 20:20:36 +00:00
2022-07-03 15:46:23 +00:00
def reportBadAttempt(message: str) -> None:
2022-05-16 20:20:36 +00:00
print("BAD ATTEMPT:", message) # TODO: Log
def get_count(table):
return db.session.scalar(select(func.count()).select_from(table))
def get_first(table):
return db.session.execute(table.limit(1)).scalars().first()