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})
|