import streamlit as st import pymongo import uuid import datetime import bson @st.cache_resource(show_spinner=False) def mongo_client(): return pymongo.MongoClient(st.secrets["mongo_login"]) def small_report(): client = mongo_client() col = client["Inception"]["ratings"] mini_report = { "career_id": st.session_state["career_id"], "type": "rating", "time": datetime.datetime.now(tz=datetime.timezone.utc), "career_ESCO": st.session_state["career_ESCO"], "ratings": { str(key): value for key, value in st.session_state["ratings"].items() }, } col.insert_one(mini_report) def report(): client = mongo_client() col = client["Inception"]["logging"] data_report = { "type": "career", "session_id": st.session_state["session_id"], "user": st.session_state["user"], "time": datetime.datetime.now(tz=datetime.timezone.utc), "career_id": st.session_state["career_id"], "career_ESCO": st.session_state["career_ESCO"], "weight": st.session_state["weight"], } if 'fake_personal_info' in st.session_state: data_report['fake_personal_info'] = st.session_state["fake_personal_info"] col.insert_one(data_report) def check_login(): if "user" in st.query_params: with st.spinner("Authenticating..."): st.session_state.user_token = st.query_params["user"] client = mongo_client() col = client["Inception"]["users"] res = col.find_one({"user_token": st.session_state.user_token}) if res: st.session_state.login = True st.session_state.user = st.query_params["user"] st.toast("Login successful", icon="✅") else: reject_login() else: reject_login() def reject_login(): st.session_state.user = None st.session_state.login = False st.error( "Please contact the Inrecruiting section of Zucchetti s.p.a. for login information." ) st.stop()