Spaces:
Build error
Build error
Update views.py
Browse files
views.py
CHANGED
|
@@ -7,6 +7,12 @@ import logging
|
|
| 7 |
from typing import List, Dict, Optional
|
| 8 |
import bcrypt
|
| 9 |
import re
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
from utils.security import (
|
| 11 |
validate_password,
|
| 12 |
check_rate_limit,
|
|
@@ -44,6 +50,42 @@ def dashboard_header():
|
|
| 44 |
if st.button("🚪 Logout", type="secondary", use_container_width=True):
|
| 45 |
logout_user()
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
def show_dashboard():
|
| 48 |
"""
|
| 49 |
Updated dashboard view incorporating React components
|
|
|
|
| 7 |
from typing import List, Dict, Optional
|
| 8 |
import bcrypt
|
| 9 |
import re
|
| 10 |
+
import face_recognition
|
| 11 |
+
from sklearn.ensemble import IsolationForest
|
| 12 |
+
import numpy as np
|
| 13 |
+
from datetime import datetime
|
| 14 |
+
import logging
|
| 15 |
+
|
| 16 |
from utils.security import (
|
| 17 |
validate_password,
|
| 18 |
check_rate_limit,
|
|
|
|
| 50 |
if st.button("🚪 Logout", type="secondary", use_container_width=True):
|
| 51 |
logout_user()
|
| 52 |
|
| 53 |
+
# Add to views.py - New function to handle biometric login
|
| 54 |
+
def handle_biometric_login():
|
| 55 |
+
if 'biometric_login' not in st.session_state:
|
| 56 |
+
st.session_state.biometric_login = False
|
| 57 |
+
|
| 58 |
+
if st.button("Login with Face ID"):
|
| 59 |
+
# In a real application, you'd capture the image from a camera
|
| 60 |
+
# For demo, we'll use a file upload
|
| 61 |
+
uploaded_file = st.file_uploader("Take a photo", type=['jpg', 'png'])
|
| 62 |
+
if uploaded_file:
|
| 63 |
+
services = ServiceIntegration()
|
| 64 |
+
# You'd retrieve the stored encoding from the database
|
| 65 |
+
if services.verify_face(uploaded_file, stored_encoding):
|
| 66 |
+
st.success("Biometric verification successful!")
|
| 67 |
+
return True
|
| 68 |
+
return False
|
| 69 |
+
|
| 70 |
+
# Add to views.py - New function to handle social media linking
|
| 71 |
+
def handle_social_media_linking():
|
| 72 |
+
st.subheader("Link Social Media Account")
|
| 73 |
+
|
| 74 |
+
platform = st.selectbox("Select Platform",
|
| 75 |
+
["Facebook", "Twitter", "Instagram", "LinkedIn"])
|
| 76 |
+
username = st.text_input("Username")
|
| 77 |
+
|
| 78 |
+
if st.button("Link Account"):
|
| 79 |
+
try:
|
| 80 |
+
# Verify account exists and is public
|
| 81 |
+
if verify_account(platform, username):
|
| 82 |
+
if link_social_account(platform, username):
|
| 83 |
+
st.success(f"Successfully linked {platform} account!")
|
| 84 |
+
return True
|
| 85 |
+
except Exception as e:
|
| 86 |
+
st.error(f"Failed to link account: {str(e)}")
|
| 87 |
+
return False
|
| 88 |
+
|
| 89 |
def show_dashboard():
|
| 90 |
"""
|
| 91 |
Updated dashboard view incorporating React components
|