Spaces:
Runtime error
Runtime error
Commit
·
3b82899
1
Parent(s):
45f1e0e
added login
Browse files- 0_Introduction.py +2 -0
- utils/__pycache__/levels.cpython-310.pyc +0 -0
- utils/__pycache__/login.cpython-310.pyc +0 -0
- utils/levels.py +7 -3
- utils/login.py +26 -0
0_Introduction.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
import os
|
| 3 |
from utils.levels import complete_level, initialize_level, render_page, get_level
|
|
|
|
| 4 |
|
|
|
|
| 5 |
initialize_level()
|
| 6 |
|
| 7 |
LEVEL=0
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
import os
|
| 3 |
from utils.levels import complete_level, initialize_level, render_page, get_level
|
| 4 |
+
from utils.login import initialize_login
|
| 5 |
|
| 6 |
+
initialize_login()
|
| 7 |
initialize_level()
|
| 8 |
|
| 9 |
LEVEL=0
|
utils/__pycache__/levels.cpython-310.pyc
CHANGED
|
Binary files a/utils/__pycache__/levels.cpython-310.pyc and b/utils/__pycache__/levels.cpython-310.pyc differ
|
|
|
utils/__pycache__/login.cpython-310.pyc
ADDED
|
Binary file (982 Bytes). View file
|
|
|
utils/levels.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
import streamlit as st
|
|
|
|
| 2 |
|
| 3 |
def initialize_level():
|
| 4 |
if 'level' not in st.session_state:
|
|
@@ -8,10 +9,13 @@ def get_level():
|
|
| 8 |
return st.session_state['level']
|
| 9 |
|
| 10 |
def render_page(page, level):
|
| 11 |
-
if
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
| 13 |
else:
|
| 14 |
-
|
| 15 |
|
| 16 |
def complete_level(level):
|
| 17 |
if st.session_state['level'] > level:
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
+
from utils.login import get_login
|
| 3 |
|
| 4 |
def initialize_level():
|
| 5 |
if 'level' not in st.session_state:
|
|
|
|
| 9 |
return st.session_state['level']
|
| 10 |
|
| 11 |
def render_page(page, level):
|
| 12 |
+
if get_login()["status"]:
|
| 13 |
+
if st.session_state['level'] < level:
|
| 14 |
+
st.error(f"You need to complete Level {st.session_state['level']} first!")
|
| 15 |
+
else:
|
| 16 |
+
page()
|
| 17 |
else:
|
| 18 |
+
st.error("You need to login first!")
|
| 19 |
|
| 20 |
def complete_level(level):
|
| 21 |
if st.session_state['level'] > level:
|
utils/login.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import os
|
| 3 |
+
|
| 4 |
+
def initialize_login():
|
| 5 |
+
if 'login' not in st.session_state:
|
| 6 |
+
username = st.text_input('Username')
|
| 7 |
+
password = st.text_input('Password', type='password')
|
| 8 |
+
if st.button('Login'):
|
| 9 |
+
# TODO: replace with actual authorization check
|
| 10 |
+
authorized = {
|
| 11 |
+
"status": True,
|
| 12 |
+
"Name": "John Doe",
|
| 13 |
+
"username": "johndoe"
|
| 14 |
+
}
|
| 15 |
+
if authorized["status"]:
|
| 16 |
+
st.session_state['login'] = authorized
|
| 17 |
+
os.makedirs(os.path.join('.sessions', st.session_state["login"]["username"]), exist_ok=True)
|
| 18 |
+
st.success('Login Successful!')
|
| 19 |
+
st.experimental_rerun()
|
| 20 |
+
else:
|
| 21 |
+
st.error('Invalid username or password')
|
| 22 |
+
else:
|
| 23 |
+
st.sidebar.success(f'Hello, {st.session_state["login"]["Name"]}!')
|
| 24 |
+
|
| 25 |
+
def get_login():
|
| 26 |
+
return st.session_state.get('login', {"status": False})
|