diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2016-01-23 13:04:35 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2016-01-25 01:56:13 +0100 |
commit | 899947bd00df10cca15aca1b3c14125b38b35ecf (patch) | |
tree | cbe0cd8023efa657b478476a70f83d2f5cb5509b /accounts/templates | |
parent | bd20d0ff1c7a582f3c53d30bfc387139c419ef35 (diff) | |
download | web-899947bd00df10cca15aca1b3c14125b38b35ecf.tar.gz web-899947bd00df10cca15aca1b3c14125b38b35ecf.tar.bz2 web-899947bd00df10cca15aca1b3c14125b38b35ecf.zip |
Moved everything into a package
Diffstat (limited to 'accounts/templates')
-rw-r--r-- | accounts/templates/_macros.html | 46 | ||||
-rw-r--r-- | accounts/templates/about.html | 44 | ||||
-rw-r--r-- | accounts/templates/admin/create_account.html | 21 | ||||
-rw-r--r-- | accounts/templates/admin/disable_account.html | 20 | ||||
-rw-r--r-- | accounts/templates/admin/index.html | 9 | ||||
-rw-r--r-- | accounts/templates/admin/view_blacklist.html | 19 | ||||
-rw-r--r-- | accounts/templates/base.html | 72 | ||||
-rw-r--r-- | accounts/templates/error.html | 8 | ||||
-rw-r--r-- | accounts/templates/index.html | 20 | ||||
-rw-r--r-- | accounts/templates/lost_password.html | 16 | ||||
-rw-r--r-- | accounts/templates/lost_password_complete.html | 18 | ||||
-rw-r--r-- | accounts/templates/mail/change_mail.txt | 16 | ||||
-rw-r--r-- | accounts/templates/mail/lost_password.txt | 11 | ||||
-rw-r--r-- | accounts/templates/mail/register.txt | 19 | ||||
-rw-r--r-- | accounts/templates/register.html | 22 | ||||
-rw-r--r-- | accounts/templates/register_complete.html | 23 | ||||
-rw-r--r-- | accounts/templates/settings.html | 62 |
17 files changed, 446 insertions, 0 deletions
diff --git a/accounts/templates/_macros.html b/accounts/templates/_macros.html new file mode 100644 index 0000000..58739ae --- /dev/null +++ b/accounts/templates/_macros.html @@ -0,0 +1,46 @@ +{% macro render_submit() %} +<div class="control-group"> + <div class="controls"> + <input type="submit" + {%- for key, value in kwargs.items() %} + {{key}}="{{value}}" + {% endfor %} + /> + </div> +</div> +{%- endmacro %} + +{% macro render_field(field) %} +<div class="control-group"> + {{ field.label }} + <div class="controls"> + {{ field(**kwargs)|safe }} + {{ render_errors(field.errors) }} + </div> +</div> +{%- endmacro %} + +{% macro render_csrf(form) %} +{{ form.csrf_token }} +{%- if 'csrf_token' in form.errors %} +<div class="control-group"> + <div class="controls"> + {{ render_errors(form.errors.csrf_token) }} + </div> +</div> +{%- endif %} +{%- endmacro %} + +{% macro render_errors(errors) %} + {%- if errors|length == 1 %} + <div class="errors"> + {{ errors.0 }} + </div> + {% elif errors %} + <ul class="errors"> + {% for error in errors %} + <li>{{ error }}</li> + {% endfor %} + </ul> + {% endif %} +{%- endmacro %} diff --git a/accounts/templates/about.html b/accounts/templates/about.html new file mode 100644 index 0000000..2ae1936 --- /dev/null +++ b/accounts/templates/about.html @@ -0,0 +1,44 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field %} +{%- set title = 'Über spline accounts' %} +{%- block content %} +<h2>Was ist ein Spline-Account?</h2> +<p> + Mit einem Spline-Account soll man sich in Zukunft bei allen + <a href="http://spline.de/">Spline-Diensten</a> einloggen können, statt + sich – wie bisher – bei jedem Dienst neu zu registrieren. (Es sind aber + noch nicht alle Dienste integriert.) +</p> +<p> + Das heißt: Du registrierst dich ein Mal hier auf der Seite, und kannst + dich dann mit diesem Benutzernamen und Passwort bei allen Diensten + einloggen. In Zukunft wird es sogar möglich sein, für jeden Dienst ein + abweichendes Passwort zu definieren. +</p> +<h2>Was bedeutet „Dieser Benutzername ist momentan nicht erlaubt“?</h2> +<p> + Wir sind gerade noch in der Migrationsphase. Da wir noch kein + automatisiertes System haben, um alte Accounts aus den Diensten zu einem + Spline-Account zu übertragen, sperren wir vorerst alle Benutzernamen, die + es schon in einem der Dienste gibt. So haben die Besitzer dieser Accounts + die Möglichkeit, ihren Benutzernamen zu behalten. +</p> +<p> + Wenn du schon einen Benutzernamen in einem der alten Dienste hast, kannst + du uns <a href="mailto:accounts@spline.de">Bescheid sagen</a>, dann + erstellen wir dir von Hand einen Account. +</p> +<h2>Wie kann ich einen Spline-Account löschen?</h2> +<p> + Zur Zeit können wir Accounts nur deaktivieren, da gewisse Dienste sonst mit + den inkonsistenten Daten nicht umgehen können. Wenn du deinen Account + deaktivieren willst, dann teile uns das am besten per + <a href="mailto:accounts@spline.de">Mail</a> mit! +</p> +<h2>Welche Dienste sind bisher dabei?</h2> +<ul> +{%- for service in app.all_services %} + <li><a href="{{ service.url}}">{{ service.name }}</a></li> +{%- endfor %} +</ul> +{%- endblock %} diff --git a/accounts/templates/admin/create_account.html b/accounts/templates/admin/create_account.html new file mode 100644 index 0000000..2a53fd9 --- /dev/null +++ b/accounts/templates/admin/create_account.html @@ -0,0 +1,21 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit, render_csrf %} +{%- set title = 'Account erstellen' %} +{%- block content %} +<p> + Hier kannst du einen Account erstellen, auch wenn der gewünschte + Benutzername in der Blacklist steht. Bitte stelle dabei sicher, + dass Accounts dieses Namens auf <b>allen</b> Diensten dem User + gehören. +</p> +<p> + Der Benutzer bekommt eine Mail, mit der er sich dann ganz normal + ein Passwort setzen kann. +</p> +<form action="" method="post" class="form-horizontal"> + {{ render_field(form.username, autofocus="autofocus") }} + {{ render_field(form.mail) }} + {{ render_submit(value='Link verschicken')}} + {{ render_csrf(form) }} +</form> +{%- endblock %} diff --git a/accounts/templates/admin/disable_account.html b/accounts/templates/admin/disable_account.html new file mode 100644 index 0000000..b6eccda --- /dev/null +++ b/accounts/templates/admin/disable_account.html @@ -0,0 +1,20 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit, render_csrf %} +{%- set title = 'Account deaktivieren' %} +{%- block content %} +<p> + Hier kannst du einen Account deaktivieren. Da es quasi unmöglich ist, + Accounts zu löschen, ohne dass es Konsistenzprobleme zwischen dem LDAP und + den Datenbanken der Anwendungen gibt, wird dazu einfach das Passwort auf was + zufälliges und die Mail auf was ungültiges gesetzt. +</p> +<p> + Der Benutzer wird davon nicht benachrichtigt, mach das also nur mit + Accounts, die sicher Spammer sind! +</p> +<form action="" method="post" class="form-horizontal"> + {{ render_field(form.username, autofocus="autofocus") }} + {{ render_submit(value='Account deaktivieren')}} + {{ render_csrf(form) }} +</form> +{%- endblock %} diff --git a/accounts/templates/admin/index.html b/accounts/templates/admin/index.html new file mode 100644 index 0000000..722a9ac --- /dev/null +++ b/accounts/templates/admin/index.html @@ -0,0 +1,9 @@ +{%- extends 'base.html' %} +{%- set title = 'Admin-Interface' %} +{%- block content %} +<ul> + <li><a href="{{ url_for('admin.create_account') }}">Account erstellen</a></li> + <li><a href="{{ url_for('admin.view_blacklist') }}">Blacklist anzeigen</a></li> + <li><a href="{{ url_for('admin.disable_account') }}">Account deaktivieren</a></li> +</ul> +{%- endblock %} diff --git a/accounts/templates/admin/view_blacklist.html b/accounts/templates/admin/view_blacklist.html new file mode 100644 index 0000000..bde3f7c --- /dev/null +++ b/accounts/templates/admin/view_blacklist.html @@ -0,0 +1,19 @@ +{%- extends 'base.html' %} +{%- set title = 'Blacklist anzeigen' %} +{%- block content %} +<nav> + <ul> + {%- if start %} + <li><a href="{{ url_for('admin.view_blacklist') }}">Alle</a></li> + {%- endif %} + {%- for l in next_letters %} + <li><a href="{{ url_for('admin.view_blacklist', start=start+l) }}">{{ l }}</a></li> + {%- endfor %} + </ul> +</nav> +<ul> + {%- for e in entries %} + <li>{{ e }}</li> + {%- endfor %} +</ul> +{%- endblock %} diff --git a/accounts/templates/base.html b/accounts/templates/base.html new file mode 100644 index 0000000..d6a1726 --- /dev/null +++ b/accounts/templates/base.html @@ -0,0 +1,72 @@ +{%- set styles = ['layout.css', 'bootstrap-form.css'] + styles|default([]) %} +{%- set scripts = ['script.js', 'jquery-1.8.2.min.js'] + scripts|default([]) %} +<!doctype html> <html> + <head> + <meta charset="utf-8" /> + <title>{% if title %}{{ title }} – {% endif %}spline accounts</title> + {%- for script in scripts %} + <script type="text/javascript" src="{{ url_for('static', filename=script) }}"></script> + {%- endfor %} + {%- for style in styles %} + <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename=style, version='0.2') }}"> + {%- endfor %} + </head> + <body> + + <div id="header-background"> </div> + <header> + <h1><a href="{{ url_for('settings') if g.user else url_for('index') }}"> + <img src="{{ url_for('static', filename='logo.png') }}" alt="spline accounts" /> + </a></h1> + <span id="roundcornerb"> </span> + <span id="roundcornerw"> </span> + + <nav id="mainnav"> + <ul> + <li><a href="http://spline.de">spline.de</a></li> + <li><a href="{{ url_for('about') }}">FAQ</a></li> + </ul> + </nav> + + {%- if not no_login_message %} + <nav id="usermenu"> + <ul> + {%- if g.user %} + <li>Angemeldet als <strong>{{ g.user.uid }}</strong></li> + {%- if g.user.uid in config.get('ADMIN_USERS', []) %} + <li><a href="{{ url_for('admin.index') }}">Admin</a></li> + {%- endif %} + <li><a href="{{ url_for('logout') }}">Abmelden</a></li> + {%- else %} + <li>Nicht angemeldet</li> + <li><a href="{{ url_for('index') }}">Login</a></li> + {%- endif %} + </ul> + </nav> + {%- endif %} + </header> + + <section id="content"> + {% with messages = get_flashed_messages(with_categories=true) %} + {% if messages %} + <ul class="flashes"> + {% for category, message in messages %} + <li class="{{ category }}">{{ message }}</li> + {% endfor %} + </ul> + {% endif %} + {% endwith %} + + {% if title %} + <h1>{{ title }}</h1> + {% endif %} + {% block content %}{% endblock %} + </section> + + {%- if self.javascript() %} + <script type="text/javascript"> + {%- block javascript %}{% endblock -%} + </script> + {%- endif %} + </body> +</html> diff --git a/accounts/templates/error.html b/accounts/templates/error.html new file mode 100644 index 0000000..0f403b5 --- /dev/null +++ b/accounts/templates/error.html @@ -0,0 +1,8 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field %} +{%- block content %} + +<h1>Fehler: {{ error.message }}</h1> +{{ error.description|safe }} + +{%- endblock %} diff --git a/accounts/templates/index.html b/accounts/templates/index.html new file mode 100644 index 0000000..4e98750 --- /dev/null +++ b/accounts/templates/index.html @@ -0,0 +1,20 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field %} +{%- block content %} + +<form action="{{ url_for('index') }}" method="post" class="form-horizontal"> + <h2>Login</h2> + <p> + Willkommen bei <strong>spline accounts</strong>. + Melde dich an, + <a href="{{ url_for('about') }}">informier dich</a>, oder + <a href="{{ url_for('register') }}">leg einen Account an</a>. + </p> + {{ render_field(form.username, autofocus="autofocus") }} + {{ render_field(form.password) }} + <div class="form-actions"><input type="submit" value="Login" /></div> + <p class="form-actions"><a href="/register">Account erstellen</a></div> + <p class="form-actions"><a href="/lost_password">Passwort oder Benutzername vergessen</a></div> +</form> + +{%- endblock %} diff --git a/accounts/templates/lost_password.html b/accounts/templates/lost_password.html new file mode 100644 index 0000000..fc1e6b8 --- /dev/null +++ b/accounts/templates/lost_password.html @@ -0,0 +1,16 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit %} +{%- set title = 'Passwort vergessen' %} +{%- set no_login_message = true %} +{%- block content %} +<form action="{{ url_for('lost_password') }}" method="post" class="form-horizontal"> + <p> + Du hast dein Passwort und/oder deinen Benutzernamen vergessen? Kein Problem. + Gib einfach unten deinen Benutzernamen bzw. E-Mail-Adresse ein, und wir + schicken dir einen Link, mit dem du dir ein neues setzen kannst. + In dieser Mail steht dann auch dein Benutzername. + </p> + {{ render_field(form.username_or_mail, autofocus="autofocus") }} + {{ render_submit(value='Weiter')}} +</form> +{%- endblock %} diff --git a/accounts/templates/lost_password_complete.html b/accounts/templates/lost_password_complete.html new file mode 100644 index 0000000..6ab4a1c --- /dev/null +++ b/accounts/templates/lost_password_complete.html @@ -0,0 +1,18 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit %} +{%- set title = 'Passwort vergessen' %} +{%- set no_login_message = true %} +{%- block content %} +<form action="{{ url_for('lost_password_complete', token=token) }}" method="post" class="form-horizontal"> + <p> + Hier kannst du jetzt ein neues Passwort setzen. + </p> + <div class="control-group"> + <div class="control-label">Benutzername</div> + <div class="controls"><input readonly="readonly" value="{{ username }}" /></div> + </div> + {{ render_field(form.password, autofocus="autofocus") }} + {{ render_field(form.password_confirm) }} + {{ render_submit(value='Speichern')}} +</form> +{%- endblock %} diff --git a/accounts/templates/mail/change_mail.txt b/accounts/templates/mail/change_mail.txt new file mode 100644 index 0000000..2319672 --- /dev/null +++ b/accounts/templates/mail/change_mail.txt @@ -0,0 +1,16 @@ +Hallo, + +Jemand, vermutlich du, möchte auf spline accounts [1] die +E-Mail-Adresse des Accounts {{ username }} auf diese Adresse + {{ mail }} +ändern. + +Um diese Änderung zu bestätigen, benutze bitte folgenden Link: + <{{ link }}> + + +Wenn du dies nicht möchtest, brauchst du nichts weiter zu tun. +Ohne deine Bestätigung wird die Adresse nicht geändert. + + +[1] {{ url_for('index', _external=True) }} diff --git a/accounts/templates/mail/lost_password.txt b/accounts/templates/mail/lost_password.txt new file mode 100644 index 0000000..5eaa654 --- /dev/null +++ b/accounts/templates/mail/lost_password.txt @@ -0,0 +1,11 @@ +Hallo {{ username }}, + +Jemand, vermutlich du, hat auf spline accounts einen Link zum Ändern +deines Passworts angefordert. + +Hier kannst du dein Passwort ändern: + <{{ link }}> + + +Wenn du diese Mail nicht angefordert hast, brauchst du nichts +weiter zu tun. Dein altes Passwort bleibt dann weiter gültig. diff --git a/accounts/templates/mail/register.txt b/accounts/templates/mail/register.txt new file mode 100644 index 0000000..1f837d6 --- /dev/null +++ b/accounts/templates/mail/register.txt @@ -0,0 +1,19 @@ +Hallo, + +Jemand, vermutlich du, möchte auf spline accounts [1] einen Account +mit folgenden Daten anlegen: + + Benutzername: {{ username }} + E-Mail-Adresse: {{ mail }} + + +Wenn du diesen Account anlegen möchtest, bestätige mit folgendem Link +deine E-Mail-Adresse: + <{{ link }}> + + +Wenn du diesen Account nicht anlegen möchtest, brauchst du nichts +weiter zu tun. Ohne deine Bestätigung wird der Account nicht erstellt. + + +[1] {{ url_for('index', _external=True) }} diff --git a/accounts/templates/register.html b/accounts/templates/register.html new file mode 100644 index 0000000..7f56280 --- /dev/null +++ b/accounts/templates/register.html @@ -0,0 +1,22 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit %} +{%- set title = 'Account erstellen' %} +{%- set no_login_message = true %} +{%- block content %} +<p>Hier kannst du dir einen Spline-Account erstellen.</p> +<p> + Da der Benutzername von möglichst vielen Diensten verarbeitet werden + können soll, sind nur normale Buchstaben (keine Umlaute), Zahlen und + Bindestriche erlaubt (beim ersten Zeichen nur Buchstaben). +</p> +<p> + Bitte such dir deinen Benutzernamen gut aus. Er kann später nicht mehr + geändert werden. +</p> +<form action="{{ url_for('register') }}" method="post" class="form-horizontal"> + {{ render_field(form.username, autofocus="autofocus") }} + {{ render_field(form.mail) }} + {{ render_field(form.question) }} + {{ render_submit(value='E-Mail-Adresse bestätigen')}} +</form> +{%- endblock %} diff --git a/accounts/templates/register_complete.html b/accounts/templates/register_complete.html new file mode 100644 index 0000000..633f446 --- /dev/null +++ b/accounts/templates/register_complete.html @@ -0,0 +1,23 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_submit %} +{%- set title = 'Account erstellen' %} +{%- set no_login_message = true %} +{%- block content %} +<form action="{{ url_for('register_complete', token=token) }}" method="post" class="form-horizontal"> + <p> + Deine E-Mail-Adresse wurde erfolgreich bestätigt. + Bitte setze nun ein Passwort, um die Registrierung abzuschließen. + </p> + <div class="control-group"> + <div class="control-label">Benutzername</div> + <div class="controls"><input readonly="readonly" value="{{ username }}" /></div> + </div> + <div class="control-group"> + <div class="control-label">E-Mail-Adresse</div> + <div class="controls"><input readonly="readonly" value="{{ mail }}" /></div> + </div> + {{ render_field(form.password, autofocus="autofocus") }} + {{ render_field(form.password_confirm) }} + {{ render_submit(value='Registrieren')}} +</form> +{%- endblock %} diff --git a/accounts/templates/settings.html b/accounts/templates/settings.html new file mode 100644 index 0000000..dcae7ff --- /dev/null +++ b/accounts/templates/settings.html @@ -0,0 +1,62 @@ +{%- extends 'base.html' %} +{%- from '_macros.html' import render_field, render_csrf, render_submit %} +{%- set title = 'Einstellungen' %} +{%- block content %} +<form action="{{ url_for('settings') }}" method="post" class="form-horizontal"> + <h2>Globale Einstellungen ändern</h2> + {{ render_field(form.mail) }} + <p></p> + {{ render_field(form.old_password) }} + {{ render_field(form.password) }} + {{ render_field(form.password_confirm) }} + {{ render_csrf(form) }} + {{ render_submit(value='Speichern',name='submit_main') }} + + <h2>Dienste verwalten</h2> + <p> + Standardmäßig kannst du dich auf allen teilnehmenden Diensten mit dem + oben konfigurierten allgemeinen Passwort einloggen. + </p> + <p> + Du kannst für jeden Dienst ein eigenes Passwort setzen. Das empfiehlt + sich zum Beispiel, wenn du einen der Dienste oft unterwegs an fremden + Rechnern nutzt. + </p> + + {%- for service in services %} + <div class="service"> + <h3> + {% if service.changed %} + {{ form.get_servicedelete(service.id) }} + {% else %} + {{ form.get_servicedelete(service.id)(disabled=True) }} + {% endif %} + {{ service.name }} + </h3> + + <ul> + {%- if service.changed %} + <li class="active">eigenes Passwort</li> + </li> + {%- else %} + <li class="inactive">allgemeines Passwort</li> + {%- endif %} + </ul> + + <div class="form-service"> + <p>Neues Passwort setzen:</p> + {{ render_field(form.get_servicepassword(service.id)) }} + {{ render_field(form.get_servicepasswordconfirm(service.id)) }} + {{ render_submit(value='Speichern',name='submit_main') }} + </div> + </div> + {%- endfor %} + <div class="form-submit-services"> + <input type="submit" value="selektierte Passwörter zurücksetzen" name="submit_services" /> + </div> +</form> +{%- endblock %} + +{% block javascript %} + $(document).ready(settings_service_toggle); +{% endblock %} |