auth providers
This commit is contained in:
@@ -30,25 +30,21 @@ USE_OFFLINE_LIBS = _env_bool("PYTORRENT_USE_OFFLINE_LIBS", False)
|
||||
# Note: Optional authentication remains disabled unless explicitly enabled in .env.
|
||||
AUTH_ENABLE = _env_bool("PYTORRENT_AUTH_ENABLE", False)
|
||||
AUTH_PROVIDER = os.getenv("PYTORRENT_AUTH_PROVIDER", "local").strip().lower() or "local"
|
||||
if AUTH_PROVIDER == "tinyauth":
|
||||
AUTH_PROXY_USER_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_USER_HEADER", "Remote-User")
|
||||
AUTH_PROXY_EMAIL_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_EMAIL_HEADER", "Remote-Email")
|
||||
AUTH_PROXY_NAME_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_NAME_HEADER", "Remote-Name")
|
||||
AUTH_PROXY_SUBJECT_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_SUBJECT_HEADER", "Remote-Sub")
|
||||
else:
|
||||
AUTH_PROXY_USER_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_USER_HEADER", "Remote-User")
|
||||
AUTH_PROXY_EMAIL_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_EMAIL_HEADER", "Remote-Email")
|
||||
AUTH_PROXY_NAME_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_NAME_HEADER", "Remote-Name")
|
||||
AUTH_PROXY_SUBJECT_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_SUBJECT_HEADER", "")
|
||||
AUTH_PROXY_AUTO_CREATE = _env_bool("PYTORRENT_AUTH_PROXY_AUTO_CREATE", False)
|
||||
AUTH_PROXY_DEFAULT_ROLE = os.getenv("PYTORRENT_AUTH_PROXY_DEFAULT_ROLE", "user").strip().lower()
|
||||
AUTH_PROXY_DEFAULT_ACCESS = os.getenv("PYTORRENT_AUTH_PROXY_DEFAULT_ACCESS", "ro").strip().lower()
|
||||
if AUTH_PROVIDER not in {"local", "proxy", "tinyauth"}:
|
||||
AUTH_PROVIDER = "local"
|
||||
if AUTH_PROXY_DEFAULT_ROLE not in {"user", "admin"}:
|
||||
AUTH_PROXY_DEFAULT_ROLE = "user"
|
||||
if AUTH_PROXY_DEFAULT_ACCESS not in {"none", "ro", "full"}:
|
||||
AUTH_PROXY_DEFAULT_ACCESS = "ro"
|
||||
|
||||
# Note: External auth reads only one identity value from the trusted reverse proxy.
|
||||
AUTH_PROXY_USER_HEADER = os.getenv("PYTORRENT_AUTH_PROXY_USER_HEADER", "Remote-User").strip() or "Remote-User"
|
||||
AUTH_PROXY_AUTO_CREATE = _env_bool("PYTORRENT_AUTH_PROXY_AUTO_CREATE", False)
|
||||
AUTH_PROXY_AUTO_CREATE_ROLE = os.getenv("PYTORRENT_AUTH_PROXY_AUTO_CREATE_ROLE", "user").strip().lower()
|
||||
AUTH_PROXY_AUTO_CREATE_PERMISSION = os.getenv("PYTORRENT_AUTH_PROXY_AUTO_CREATE_PERMISSION", "ro").strip().lower()
|
||||
if AUTH_PROXY_AUTO_CREATE_ROLE not in {"user", "admin"}:
|
||||
AUTH_PROXY_AUTO_CREATE_ROLE = "user"
|
||||
# Note: Keep rw as an operator-friendly alias while storing full internally.
|
||||
if AUTH_PROXY_AUTO_CREATE_PERMISSION == "rw":
|
||||
AUTH_PROXY_AUTO_CREATE_PERMISSION = "full"
|
||||
if AUTH_PROXY_AUTO_CREATE_PERMISSION not in {"none", "ro", "full"}:
|
||||
AUTH_PROXY_AUTO_CREATE_PERMISSION = "ro"
|
||||
if AUTH_ENABLE and (not _SECRET_KEY_ENV or SECRET_KEY == "dev-change-me"):
|
||||
# Note: Auth mode cannot use Flask's development secret; persist a local random session key instead.
|
||||
_secret_file = BASE_DIR / "data" / ".session_secret"
|
||||
|
||||
Reference in New Issue
Block a user