chandralegend commited on
Commit
3b82899
·
1 Parent(s): 45f1e0e

added login

Browse files
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 st.session_state['level'] < level:
12
- st.error(f"You need to complete Level {st.session_state['level']} first!")
 
 
 
13
  else:
14
- page()
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})