summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 04:54:37 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 05:23:38 +0100
commit7a60befe0635bb72b4403d277587fef424768c4f (patch)
tree01bac2ca356fc99cc4a273286f22163696d792fd
parentbb9a6c6a384e02364e4eb10ef560b4fd4f05e5f0 (diff)
downloadweb-7a60befe0635bb72b4403d277587fef424768c4f.tar.gz
web-7a60befe0635bb72b4403d277587fef424768c4f.tar.bz2
web-7a60befe0635bb72b4403d277587fef424768c4f.zip
Code style
-rw-r--r--accounts/default_settings.py2
-rw-r--r--accounts/forms.py63
-rw-r--r--accounts/models.py10
-rw-r--r--accounts/utils/__init__.py7
-rw-r--r--accounts/utils/console.py3
-rw-r--r--accounts/utils/sessions.py6
-rw-r--r--accounts/views/default/__init__.py10
7 files changed, 48 insertions, 53 deletions
diff --git a/accounts/default_settings.py b/accounts/default_settings.py
index dacc8b5..fde85a6 100644
--- a/accounts/default_settings.py
+++ b/accounts/default_settings.py
@@ -17,7 +17,7 @@ SENDMAIL_COMMAND = '/usr/sbin/sendmail'
PERMANENT_SESSION_LIFETIME = timedelta(seconds=600) # 10 minutes
LDAP_HOST = 'ldap://localhost:5678'
-LDAP_BASE_DN = [('dc','accounts'),('dc','spline'),('dc','inf'),('dc','fu-berlin'),('dc','de')]
+LDAP_BASE_DN = [('dc', 'accounts'), ('dc', 'spline'), ('dc', 'inf'), ('dc', 'fu-berlin'), ('dc', 'de')]
LDAP_ADMIN_USER = 'admin'
LDAP_ADMIN_PASS = 'admin'
diff --git a/accounts/forms.py b/accounts/forms.py
index c414e57..b404d73 100644
--- a/accounts/forms.py
+++ b/accounts/forms.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
import re
-from flask import g, current_app, session, Markup, url_for
+from flask import current_app, Markup, url_for
from flask.ext.wtf import Form
from flask.ext.login import current_user
from wtforms import TextField, PasswordField, ValidationError, BooleanField,\
@@ -9,45 +9,47 @@ from wtforms.form import FormMeta
from utils import NotRegexp
-_username_re = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$')
-_username_exclude_re = re.compile(r'^(admin|root)')
+USERNAME_RE = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$')
+USERNAME_EXCLUDE_RE = re.compile(r'^(admin|root)')
class RegisterForm(Form):
username = TextField('Benutzername', [
- validators.Regexp(_username_re, message=u'Benutzername darf nur aus '
- u'a-z, Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'),
- NotRegexp(_username_exclude_re, message=u'Dieser Benutzername ist nicht erlaubt.'),
+ validators.Regexp(USERNAME_RE, message=u'Benutzername darf nur aus a-z, '
+ u'Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'),
+ NotRegexp(USERNAME_EXCLUDE_RE, message=u'Dieser Benutzername ist nicht erlaubt.'),
])
mail = TextField('E-Mail-Adresse', [validators.Email(), validators.Length(min=6, max=50)])
- question = TextField('Hauptstadt von Deutschland?', [validators.AnyOf(('Berlin', 'berlin'),
- message=u'Bitte beantworte die Frage.')])
+ question = TextField('Hauptstadt von Deutschland?', [validators.AnyOf(
+ ('Berlin', 'berlin'), message=u'Bitte beantworte die Frage.')])
- def validate_username(form, field):
+ def validate_username(self, field):
try:
current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
- if current_app.username_blacklist:
+ if current_app.username_blacklist
if field.data.lower() in current_app.username_blacklist:
-
- raise ValidationError(Markup(u'Dieser Benutzername ist momentan nicht erlaubt. '
- u'<a href="%s">Weitere Informationen</a>' % url_for('default.about')))
+ raise ValidationError(Markup(
+ u'Dieser Benutzername ist momentan nicht erlaubt. '
+ u'<a href="%s">Weitere Informationen</a>'
+ % url_for('default.about')))
else:
raise ValidationError(u'Dieser Benutzername ist schon vergeben.')
- def validate_mail(form, field):
+ def validate_mail(self, field):
try:
current_app.user_backend.get_by_mail(field.data)
except current_app.user_backend.NoSuchUserError:
pass
else:
- raise ValidationError(Markup(u'Ein Benutzername mit dieser Adresse existiert bereits. '
- u'Falls du deinen Benutzernamen vergessen hast, kannst du die '
- u'<a href="%s">Passwort-vergessen-Funktion</a> benutzen.'
- % url_for('default.lost_password')))
+ raise ValidationError(Markup(
+ u'Ein Benutzername mit dieser Adresse existiert bereits. '
+ u'Falls du deinen Benutzernamen vergessen hast, kannst du '
+ u'die <a href="%s">Passwort-vergessen-Funktion</a> benutzen.'
+ % url_for('default.lost_password')))
class AdminCreateAccountForm(RegisterForm):
- def validate_username(form, field):
+ def validate_username(self, field):
try:
current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
@@ -67,17 +69,18 @@ class RegisterCompleteForm(Form):
class LostPasswordForm(Form):
username_or_mail = TextField(u'Benutzername oder E-Mail')
+ user = None
- def validate_username_or_mail(form, field):
+ def validate_username_or_mail(self, field):
if '@' not in field.data:
try:
- form.user = current_app.user_backend.get_by_uid(field.data)
- except NoSuchUserError:
+ self.user = current_app.user_backend.get_by_uid(field.data)
+ except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Es gibt keinen Benutzer mit diesem Namen.')
else:
try:
- form.user = current_app.user_backend.get_by_mail(field.data)
- except NoSuchUserError:
+ self.user = current_app.user_backend.get_by_mail(field.data)
+ except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Es gibt keinen Benutzer mit dieser Adresse.')
@@ -98,6 +101,7 @@ class SettingsMeta(FormMeta):
return super(SettingsMeta, cls).__call__(*args, **kwargs)
+
class SettingsForm(Form):
__metaclass__ = SettingsMeta
@@ -107,14 +111,14 @@ class SettingsForm(Form):
password_confirm = PasswordField(u'Passwort bestätigen')
mail = TextField('E-Mail-Adresse', [validators.Optional(), validators.Email(), validators.Length(min=6, max=50)])
- def validate_old_password(form, field):
- if form.password.data:
+ def validate_old_password(self, field):
+ if self.password.data:
if not field.data:
raise ValidationError(u'Gib bitte dein altes Passwort ein, um ein neues zu setzen.')
if field.data != current_user.password:
raise ValidationError(u'Altes Passwort ist falsch.')
- def validate_mail(form, field):
+ def validate_mail(self, field):
results = current_app.user_backend.find_by_mail(field.data)
for user in results:
if user.uid != current_user.uid:
@@ -132,9 +136,10 @@ class SettingsForm(Form):
class AdminDisableAccountForm(Form):
username = TextField(u'Benutzername')
+ user = None
- def validate_username(form, field):
+ def validate_username(self, field):
try:
- form.user = current_app.user_backend.get_by_uid(field.data)
+ self.user = current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
raise ValidationError(u'Dieser Benutzername existiert nicht')
diff --git a/accounts/models.py b/accounts/models.py
index 0c7ffdb..0fdc1f7 100644
--- a/accounts/models.py
+++ b/accounts/models.py
@@ -12,9 +12,9 @@ class Account(UserMixin):
"""
_ready = False
- def __init__(self, uid, mail, services=[], dn=None, password=None):
+ def __init__(self, uid, mail, services=None, dn=None, password=None):
self.uid = uid.encode('utf8') if isinstance(uid, unicode) else uid
- self.services = services
+ self.services = list() if services is None else services
self.dn = dn
self.password = password.encode('utf8') if isinstance(password, unicode) else password
self.new_password_root = None
@@ -28,7 +28,7 @@ class Account(UserMixin):
return "<Account uid=%s>" % self.uid
def reset_password(self, service):
- self.new_password_services[service] = (None, None)
+ self.new_password_services[service] = (None, None)
def change_password(self, new_password, old_password='', service=None):
"""
@@ -83,8 +83,8 @@ class Account(UserMixin):
class Service(object):
- def __init__(self, id, name, url):
- self.id = id
+ def __init__(self, service_id, name, url):
+ self.id = service_id
self.name = name
self.url = url
self.changed = None # used by settings view
diff --git a/accounts/utils/__init__.py b/accounts/utils/__init__.py
index 0759fd1..7e658d0 100644
--- a/accounts/utils/__init__.py
+++ b/accounts/utils/__init__.py
@@ -1,14 +1,9 @@
# -*- coding: utf-8 -*-
import importlib
from functools import wraps
-from flask import current_app, flash, g, redirect, render_template, \
- request, session, url_for
-from flask.ext.login import current_user
-from werkzeug.exceptions import Forbidden
+from flask import render_template, request
from wtforms.validators import Regexp, ValidationError
-from .confirmation import Confirmation
-
# using http://flask.pocoo.org/docs/patterns/viewdecorators/
def templated(template=None):
diff --git a/accounts/utils/console.py b/accounts/utils/console.py
index fb55030..170286c 100644
--- a/accounts/utils/console.py
+++ b/accounts/utils/console.py
@@ -50,9 +50,6 @@ class TablePrinter(object):
def _update_format_string(self):
- def _column_format(width):
- return '%%-%ds' % width
-
sep = ' %s ' % self.separator
self.format_string = '%s %s %s' % (
self.separator,
diff --git a/accounts/utils/sessions.py b/accounts/utils/sessions.py
index dd4e4bb..8dc8cf3 100644
--- a/accounts/utils/sessions.py
+++ b/accounts/utils/sessions.py
@@ -61,9 +61,7 @@ class EncryptedSessionInterface(SecureCookieSessionInterface):
session = self.session_class()
if session is not None:
- if app.config.get('PERMANENT_SESSION_LIFETIME') is not None:
- session.permanent = True
- else:
- session.permanent = False
+ session.permanent = \
+ app.config.get('PERMANENT_SESSION_LIFETIME') is not None
return session
diff --git a/accounts/views/default/__init__.py b/accounts/views/default/__init__.py
index a3e6c0e..68938c1 100644
--- a/accounts/views/default/__init__.py
+++ b/accounts/views/default/__init__.py
@@ -3,12 +3,14 @@ from __future__ import absolute_import
from copy import deepcopy
from flask import Blueprint
-from flask import current_app, redirect, request, g, flash, url_for
+from flask import current_app, redirect, render_template, request, g, \
+ flash, url_for
from flask.ext.login import login_required, login_user, logout_user, current_user
+from werkzeug.exceptions import Forbidden
from accounts.forms import RegisterForm, RegisterCompleteForm, \
LostPasswordForm, SettingsForm
-from accounts.utils import *
+from accounts.utils import templated
from accounts.utils.confirmation import Confirmation
from accounts.utils.login import logout_required
from accounts.models import Account
@@ -53,8 +55,6 @@ def register_complete(token):
form = RegisterCompleteForm()
if form.validate_on_submit():
- password = form.password.data
-
user = Account(username, mail, password=form.password.data)
current_app.user_backend.register(user)
login_user(user)
@@ -128,7 +128,7 @@ def index():
if request.form.get('submit_services'):
for service in current_app.all_services:
field = form.get_servicedelete(service.id)
- if(field.data):
+ if field.data:
current_user.reset_password(service.id)
changed = True