import os import subprocess from flask import Flask, request, session, redirect, url_for, send_from_directory, render_template_string app = Flask(__name__) app.secret_key = os.urandom(24) DASHBOARD_PATH = os.path.join(os.path.dirname(__file__), 'SamCloud_Notes.html') LOGIN_FORM = ''' Login - SamCloud Dashboard

Login to SamCloud Dashboard

{% if error %}
{{ error }}
{% endif %}
''' def check_system_login(username, password): # Use macOS 'dscl' to check credentials (no password is stored) try: result = subprocess.run([ 'dscl', '/Local/Default', '-authonly', username ], input=password.encode(), capture_output=True) return result.returncode == 0 except Exception: return False @app.route('/', methods=['GET', 'POST']) def login(): if 'user' in session: return redirect(url_for('dashboard')) error = None if request.method == 'POST': username = request.form['username'] password = request.form['password'] if check_system_login(username, password): session['user'] = username return redirect(url_for('dashboard')) else: error = 'Invalid system credentials.' return render_template_string(LOGIN_FORM, error=error) @app.route('/dashboard') def dashboard(): if 'user' not in session: return redirect(url_for('login')) return send_from_directory(os.path.dirname(DASHBOARD_PATH), os.path.basename(DASHBOARD_PATH)) @app.route('/logout') def logout(): session.pop('user', None) return redirect(url_for('login')) if __name__ == '__main__': app.run(host='0.0.0.0', port=8383, debug=True)