From 03df319fd59021f4089aaf2b4aaaf23ed6832450 Mon Sep 17 00:00:00 2001 From: Brian Bjarke Jensen Date: Sat, 24 Feb 2024 22:58:12 +0100 Subject: [PATCH 1/2] installed packages --- poetry.lock | 18 +++++++++++++++++- pyproject.toml | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 1909a9e..117fbbb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -190,6 +190,22 @@ dev = ["PyYAML (>=5.4.1)", "coloredlogs (>=15.0.1)", "fire (>=0.4.0)"] diskcache = ["diskcache (>=5.2.1)", "multiprocess (>=0.70.12)", "psutil (>=5.8.0)"] testing = ["beautifulsoup4 (>=4.8.2)", "cryptography (<3.4)", "dash-testing-stub (>=0.0.2)", "lxml (>=4.6.2)", "multiprocess (>=0.70.12)", "percy (>=2.0.2)", "psutil (>=5.8.0)", "pytest (>=6.0.2)", "requests[security] (>=2.21.0)", "selenium (>=3.141.0,<=4.2.0)", "waitress (>=1.4.4)"] +[[package]] +name = "dash-auth" +version = "2.2.0" +description = "Dash Authorization Package." +optional = false +python-versions = ">=3.8" +files = [ + {file = "dash_auth-2.2.0-py3-none-any.whl", hash = "sha256:27453a31e5742d3b46273b0db199f9164ec47a396886aecb069f0d75fc169fe3"}, + {file = "dash_auth-2.2.0.tar.gz", hash = "sha256:2841586ca79459d6dfabc3ed1837a71a9731118852e99ef2c2078976c61e6fb5"}, +] + +[package.dependencies] +dash = ">=1.1.1" +flask = "*" +werkzeug = "*" + [[package]] name = "dash-bootstrap-components" version = "1.5.0" @@ -928,4 +944,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.12" -content-hash = "9146cd32f0af25ddc99e5950dbf6ebc5a249f16238834b9a5db8d1b45fa9efb9" +content-hash = "d4df77270fa7781e482a10c4671c5c22d23f4d461bbe007f98b929142078a653" diff --git a/pyproject.toml b/pyproject.toml index 880a82d..bf86f43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,6 +18,7 @@ dash-mantine-components = "^0.12.1" pydantic = "^2.6.1" pillow = "^10.2.0" pymongo = "^4.6.1" +dash-auth = "^2.2.0" [build-system] -- 2.54.0 From 31121c547d2d42f5f042cf3245644fcce6a775d9 Mon Sep 17 00:00:00 2001 From: Brian Bjarke Jensen Date: Sat, 24 Feb 2024 22:58:30 +0100 Subject: [PATCH 2/2] added authentication --- src/main.py | 2 ++ src/web/app.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/main.py b/src/main.py index 024b1b5..d2326aa 100644 --- a/src/main.py +++ b/src/main.py @@ -15,6 +15,8 @@ necesasary_var_list = { "MONGO_COLLECTION", "MONGO_USER", "MONGO_PASSWORD", + "DASH_AUTH_USERNAME", + "DASH_AUTH_PASSWORD" } for env_var in necesasary_var_list: # ensure env var set diff --git a/src/web/app.py b/src/web/app.py index d5bd975..22094d0 100644 --- a/src/web/app.py +++ b/src/web/app.py @@ -1,8 +1,10 @@ from dash import Dash, Input, Output, State, ALL import dash_bootstrap_components as dbc +from dash_auth import BasicAuth import logging from typing import List from pydantic import ValidationError +import os from .layout import app_layout from src.database import ( @@ -19,6 +21,12 @@ app.title = "visual critical discourse analysis".title() app.layout = app_layout server = app.server +# setup authentication +AUTH_DICT = { + os.getenv("DASH_AUTH_USERNAME"): os.getenv("DASH_AUTH_PASSWORD") +} +BasicAuth(app, AUTH_DICT) + # connect to database collection, db, client = connect() -- 2.54.0