6 Commits

2 changed files with 10 additions and 6 deletions

View File

@@ -7,10 +7,10 @@ license = { file = "LICENSE" }
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
dependencies = [ dependencies = [
"alembic>=1.17", "alembic>=1.16",
"beautifulsoup4>=4.14", "beautifulsoup4>=4.14",
"click>=8.3", "click>=8.2",
"flask-admin>=2.0", "flask-admin>=1.6",
"flask-sqlalchemy>=3.1", "flask-sqlalchemy>=3.1",
"flask>=3.0", "flask>=3.0",
"isbnlib>=3.10", "isbnlib>=3.10",

View File

@@ -2,7 +2,7 @@ import tomllib
from pathlib import Path from pathlib import Path
from pprint import pformat from pprint import pformat
from typing import Any from typing import Any
import os
class Config: class Config:
""" """
@@ -38,10 +38,14 @@ class Config:
@staticmethod @staticmethod
def read_password(password_field: str) -> str: def read_password(password_field: str) -> str:
if Path(password_field).is_file(): file: Path = Path(password_field)
if file.is_file() and any([file.stat().st_mode & 0o400 and file.stat().st_uid == os.getuid(), file.stat().st_mode & 0o040 and file.stat().st_gid == os.getgid(), file.stat().st_mode & 0o004]):
with Path(password_field).open() as f: with Path(password_field).open() as f:
return f.read() return f.read().strip()
else: else:
raise RuntimeError(
f"Testing, should only use file. {password_field}",
)
return password_field return password_field
@classmethod @classmethod