Spaces:
Runtime error
Runtime error
| import os | |
| from flask import Flask, render_template, request, redirect, url_for, session | |
| from werkzeug.security import generate_password_hash, check_password_hash | |
| from simple_salesforce import Salesforce | |
| from dotenv import load_dotenv | |
| # Load environment variables from .env | |
| load_dotenv() | |
| # Flask App Configuration | |
| app = Flask(__name__) | |
| app.secret_key = os.getenv("FLASK_SECRET_KEY", "default_secret_key") | |
| # Salesforce Connection | |
| sf = Salesforce( | |
| username=os.getenv("SF_USERNAME"), | |
| password=os.getenv("SF_PASSWORD"), | |
| security_token=os.getenv("SF_SECURITY_TOKEN"), | |
| ) | |
| def signup(): | |
| if request.method == "POST": | |
| name = request.form["name"] | |
| email = request.form["email"] | |
| phone_number = request.form["phone"] | |
| password = generate_password_hash(request.form["password"]) | |
| # Save user details in Salesforce | |
| try: | |
| sf.Customer_Login__c.create( | |
| { | |
| "Name": name, | |
| "Email__c": email, | |
| "Phone_Number__c": phone_number, | |
| "Password__c": password, | |
| } | |
| ) | |
| return redirect(url_for("login")) | |
| except Exception as e: | |
| return f"An error occurred while saving to Salesforce: {str(e)}" | |
| return render_template("signup.html") | |
| def login(): | |
| if request.method == "POST": | |
| email = request.form["email"] | |
| password = request.form["password"] | |
| # Query Salesforce for user | |
| try: | |
| query = f"SELECT Id, Name, Email__c, Password__c FROM Customer_Login__c WHERE Email__c = '{email}'" | |
| user = sf.query(query) | |
| if user["totalSize"] == 1: | |
| stored_password = user["records"][0]["Password__c"] | |
| if check_password_hash(stored_password, password): | |
| session["user"] = user["records"][0]["Name"] | |
| return redirect(url_for("dashboard")) | |
| else: | |
| return "Invalid credentials, try again!" | |
| else: | |
| return "User not found!" | |
| except Exception as e: | |
| return f"An error occurred while querying Salesforce: {str(e)}" | |
| return render_template("login.html") | |
| def dashboard(): | |
| if "user" in session: | |
| return f"Welcome {session['user']} to your dashboard!" | |
| return redirect(url_for("login")) | |
| if __name__ == "__main__": | |
| app.run(debug=True) | |