Merge pull request 'added authentication' (#16) from authentication into main

Reviewed-on: http://192.168.1.2:3000/brian/visual_critical_discourse_analysis/pulls/16
This commit was merged in pull request #16.
This commit is contained in:
Brian Bjarke Jensen
2024-02-24 22:59:05 +01:00
4 changed files with 28 additions and 1 deletions
Generated
+17 -1
View File
@@ -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)"] 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)"] 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]] [[package]]
name = "dash-bootstrap-components" name = "dash-bootstrap-components"
version = "1.5.0" version = "1.5.0"
@@ -928,4 +944,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = "^3.12" python-versions = "^3.12"
content-hash = "9146cd32f0af25ddc99e5950dbf6ebc5a249f16238834b9a5db8d1b45fa9efb9" content-hash = "d4df77270fa7781e482a10c4671c5c22d23f4d461bbe007f98b929142078a653"
+1
View File
@@ -18,6 +18,7 @@ dash-mantine-components = "^0.12.1"
pydantic = "^2.6.1" pydantic = "^2.6.1"
pillow = "^10.2.0" pillow = "^10.2.0"
pymongo = "^4.6.1" pymongo = "^4.6.1"
dash-auth = "^2.2.0"
[build-system] [build-system]
+2
View File
@@ -15,6 +15,8 @@ necesasary_var_list = {
"MONGO_COLLECTION", "MONGO_COLLECTION",
"MONGO_USER", "MONGO_USER",
"MONGO_PASSWORD", "MONGO_PASSWORD",
"DASH_AUTH_USERNAME",
"DASH_AUTH_PASSWORD"
} }
for env_var in necesasary_var_list: for env_var in necesasary_var_list:
# ensure env var set # ensure env var set
+8
View File
@@ -1,8 +1,10 @@
from dash import Dash, Input, Output, State, ALL from dash import Dash, Input, Output, State, ALL
import dash_bootstrap_components as dbc import dash_bootstrap_components as dbc
from dash_auth import BasicAuth
import logging import logging
from typing import List from typing import List
from pydantic import ValidationError from pydantic import ValidationError
import os
from .layout import app_layout from .layout import app_layout
from src.database import ( from src.database import (
@@ -19,6 +21,12 @@ app.title = "visual critical discourse analysis".title()
app.layout = app_layout app.layout = app_layout
server = app.server server = app.server
# setup authentication
AUTH_DICT = {
os.getenv("DASH_AUTH_USERNAME"): os.getenv("DASH_AUTH_PASSWORD")
}
BasicAuth(app, AUTH_DICT)
# connect to database # connect to database
collection, db, client = connect() collection, db, client = connect()