# -*- coding: utf-8 -*- import flaskext_compat flaskext_compat.activate() import os from flask import Flask, request, redirect, url_for, flash, session from utils import templated, login_required, encrypt_password, decrypt_password, login_user, logout_user from forms import RegisterForm, LoginForm, SettingsForm app = Flask(__name__) app.config.from_object('default_settings') if 'SPLINE_ACCOUNT_WEB_SETTINGS' in os.environ: app.config.from_envvar('SPLINE_ACCOUNT_WEB_SETTINGS') @app.route('/', methods=['GET', 'POST']) @templated('index.html') def index(): form = LoginForm(request.form) if request.method == 'POST' and form.validate(): if login_user(form.username.data, form.password.data): flash(u'Erfolgreich eingeloggt (%s)' % session['username']) return redirect(url_for('index')) else: flash(u'Ungültiger Benutzername und/oder Passwort', 'error') return {'form': form} @app.route('/register', methods=['GET', 'POST']) @templated('register.html') def register(): form = RegisterForm(request.form) if request.method == 'POST' and form.validate(): username = form.username.data mail = form.mail.data password = form.password.data return '

501 Not Implemented

' return {'form': form} @app.route('/settings', methods=['GET', 'POST']) @templated('settings.html') @login_required def settings(): form = SettingsForm(request.form, mail='mail aus ldap #TODO') if request.method == 'POST' and form.validate(): flash(u'Gespeichert. Nicht.') return redirect(url_for('index')) return {'form': form} @app.route('/logout') def logout(): logout_user() return redirect(url_for('index')) @app.route('/debug') def debug(): raise Exception() if __name__ == '__main__': app.run(debug=True) # wir brauchen: # registrieren # login # passwort ändern (master-passwort, einzelne) # email ändern # später: # account löschen # openid-provider (ggf mehr Details: Realname, Zeitzone, ...)