summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Post <cent@spline.de>2020-08-07 16:57:39 +0200
committerJonah Brüchert <jbb@kaidan.im>2023-05-22 00:28:11 +0200
commitc70cd40a012760e584677940d90d4d6613176238 (patch)
treea38308fd83e59449c0e64b5344be1e89c766dd4d
parentb8621b58e879732ecf81593dc34638533df2a212 (diff)
downloadweb-c70cd40a012760e584677940d90d4d6613176238.tar.gz
web-c70cd40a012760e584677940d90d4d6613176238.tar.bz2
web-c70cd40a012760e584677940d90d4d6613176238.zip
2to3 -w accounts contrib
-rw-r--r--accounts/__init__.py12
-rw-r--r--accounts/backend/mail/dummy.py6
-rw-r--r--accounts/backend/mail/sendmail.py2
-rw-r--r--accounts/backend/user/dummy.py2
-rw-r--r--accounts/backend/user/ldap.py10
-rw-r--r--accounts/forms.py60
-rw-r--r--accounts/models.py12
-rw-r--r--accounts/utils/__init__.py6
-rw-r--r--accounts/utils/confirmation.py4
-rw-r--r--accounts/utils/console.py18
-rw-r--r--accounts/utils/login.py2
-rw-r--r--accounts/utils/sessions.py2
-rw-r--r--accounts/views/admin/__init__.py10
-rw-r--r--accounts/views/default/__init__.py34
-rw-r--r--accounts/views/login/__init__.py10
-rw-r--r--accounts/views/login/forms.py2
-rwxr-xr-xcontrib/create_service.py6
-rwxr-xr-xcontrib/munin/accounts.py2
18 files changed, 99 insertions, 101 deletions
diff --git a/accounts/__init__.py b/accounts/__init__.py
index e069527..48cd252 100644
--- a/accounts/__init__.py
+++ b/accounts/__init__.py
@@ -2,12 +2,12 @@
import os
from flask import Flask, g, session
-from models import Service
-from utils import get_backend
-from utils.confirmation import Confirmation
-from utils.sessions import EncryptedSessionInterface
-from utils.login import create_login_manager
-from views import default, login, admin
+from .models import Service
+from .utils import get_backend
+from .utils.confirmation import Confirmation
+from .utils.sessions import EncryptedSessionInterface
+from .utils.login import create_login_manager
+from .views import default, login, admin
def absolute_paths(app, config):
diff --git a/accounts/backend/mail/dummy.py b/accounts/backend/mail/dummy.py
index ad38d42..61e7b75 100644
--- a/accounts/backend/mail/dummy.py
+++ b/accounts/backend/mail/dummy.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from . import Backend
from accounts.utils import ensure_utf8
@@ -41,8 +41,8 @@ class DummyBackend(Backend):
if not self.plain:
body = "\n| ".join(body.split("\n"))
- print(self.format.format(
+ print((self.format.format(
subject=ensure_utf8(content.subject()),
sender=ensure_utf8(content.sender()),
to=ensure_utf8(recipient),
- body=ensure_utf8(body)))
+ body=ensure_utf8(body))))
diff --git a/accounts/backend/mail/sendmail.py b/accounts/backend/mail/sendmail.py
index 9a39b03..84900db 100644
--- a/accounts/backend/mail/sendmail.py
+++ b/accounts/backend/mail/sendmail.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
import subprocess
from email.mime.text import MIMEText
diff --git a/accounts/backend/user/dummy.py b/accounts/backend/user/dummy.py
index c7afdb7..573ac85 100644
--- a/accounts/backend/user/dummy.py
+++ b/accounts/backend/user/dummy.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from copy import deepcopy
from fnmatch import fnmatch
diff --git a/accounts/backend/user/ldap.py b/accounts/backend/user/ldap.py
index 0cb18f1..57dd8ac 100644
--- a/accounts/backend/user/ldap.py
+++ b/accounts/backend/user/ldap.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
import ldap3
from ldap3.utils.conv import escape_filter_chars
@@ -10,7 +10,7 @@ from accounts.models import Account
def _escape(value, wildcard=False):
- if not isinstance(value, basestring):
+ if not isinstance(value, str):
value = str(value)
if not wildcard:
value = escape_filter_chars(value)
@@ -80,7 +80,7 @@ class LdapBackend(Backend):
filters['objectClass'] = 'splineAccount'
filter_as_list = ['(%s=%s)' % (attr, _escape(value, wildcard))
- for attr, value in filters.items()]
+ for attr, value in list(filters.items())]
filterstr = '(&%s)' % ''.join(filter_as_list)
conn = self._connect()
@@ -127,7 +127,7 @@ class LdapBackend(Backend):
conn = self._connect(user_dn, account.password)
attrs = {key: [(ldap3.MODIFY_REPLACE, [value])]
- for key, value in account.attributes.items()}
+ for key, value in list(account.attributes.items())}
conn.modify(user_dn, attrs)
self._alter_passwords(conn, account, as_admin=as_admin)
@@ -179,7 +179,7 @@ class LdapBackend(Backend):
_, account.password = account.new_password_root
account.new_password_root = None
- for service, passwords in account.new_password_services.items():
+ for service, passwords in list(account.new_password_services.items()):
service_id = service.lower()
service_dn = self._format_dn([('cn', service_id), ('uid', account.uid),
('ou', 'users')])
diff --git a/accounts/forms.py b/accounts/forms.py
index b8856bf..b3cc425 100644
--- a/accounts/forms.py
+++ b/accounts/forms.py
@@ -6,7 +6,7 @@ from flask.ext.login import current_user
from wtforms import TextField, PasswordField, ValidationError, BooleanField,\
validators
from wtforms.form import FormMeta
-from utils import NotRegexp
+from .utils import NotRegexp
USERNAME_RE = re.compile(r'^[a-zA-Z][a-zA-Z0-9-]{1,15}$')
@@ -15,13 +15,13 @@ USERNAME_EXCLUDE_RE = re.compile(r'^(admin|root)')
class RegisterForm(Form):
username = TextField('Benutzername', [
- 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.'),
+ validators.Regexp(USERNAME_RE, message='Benutzername darf nur aus a-z, '
+ 'Zahlen und - bestehen (2-16 Zeichen, am Anfang nur a-z).'),
+ NotRegexp(USERNAME_EXCLUDE_RE, message='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.')])
+ ('Berlin', 'berlin'), message='Bitte beantworte die Frage.')])
def validate_username(self, field):
try:
@@ -30,11 +30,11 @@ class RegisterForm(Form):
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>'
+ 'Dieser Benutzername ist momentan nicht erlaubt. '
+ '<a href="%s">Weitere Informationen</a>'
% url_for('default.about')))
else:
- raise ValidationError(u'Dieser Benutzername ist schon vergeben.')
+ raise ValidationError('Dieser Benutzername ist schon vergeben.')
def validate_mail(self, field):
try:
@@ -43,9 +43,9 @@ class RegisterForm(Form):
pass
else:
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.'
+ 'Ein Benutzername mit dieser Adresse existiert bereits. '
+ 'Falls du deinen Benutzernamen vergessen hast, kannst du '
+ 'die <a href="%s">Passwort-vergessen-Funktion</a> benutzen.'
% url_for('default.lost_password')))
class AdminCreateAccountForm(RegisterForm):
@@ -55,20 +55,20 @@ class AdminCreateAccountForm(RegisterForm):
except current_app.user_backend.NoSuchUserError:
return
else:
- raise ValidationError(u'Dieser Benutzername ist schon vergeben')
+ raise ValidationError('Dieser Benutzername ist schon vergeben')
question = None
class RegisterCompleteForm(Form):
password = PasswordField('Passwort', [validators.Required(),
- validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')])
- password_confirm = PasswordField(u'Passwort bestätigen')
+ validators.EqualTo('password_confirm', message='Passwörter stimmen nicht überein')])
+ password_confirm = PasswordField('Passwort bestätigen')
# n.b. this form is also used in lost_password_complete
class LostPasswordForm(Form):
- username_or_mail = TextField(u'Benutzername oder E-Mail')
+ username_or_mail = TextField('Benutzername oder E-Mail')
user = None
def validate_username_or_mail(self, field):
@@ -76,53 +76,51 @@ class LostPasswordForm(Form):
try:
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.')
+ raise ValidationError('Es gibt keinen Benutzer mit diesem Namen.')
else:
try:
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.')
+ raise ValidationError('Es gibt keinen Benutzer mit dieser Adresse.')
class SettingsMeta(FormMeta):
def __call__(cls, *args, **kwargs):
for service in current_app.all_services:
setattr(cls, 'password_%s' % service.id, PasswordField(
- u'Passwort für %s' % service.name, [
+ 'Passwort für %s' % service.name, [
validators.Optional(),
validators.EqualTo(
'password_confirm_%s' % service.id,
- message=u'Passwörter stimmen nicht überein'),
+ message='Passwörter stimmen nicht überein'),
]))
setattr(cls, 'password_confirm_%s' % service.id, PasswordField(
- u'Passwort für %s (Bestätigung)' % service.name))
+ 'Passwort für %s (Bestätigung)' % service.name))
setattr(cls, 'delete_%s' % service.id, BooleanField(
- u'Passwort für %s löschen' % service.name))
+ 'Passwort für %s löschen' % service.name))
return super(SettingsMeta, cls).__call__(*args, **kwargs)
-class SettingsForm(Form):
- __metaclass__ = SettingsMeta
-
+class SettingsForm(Form, metaclass=SettingsMeta):
old_password = PasswordField('Altes Passwort')
password = PasswordField('Neues Passwort', [validators.Optional(),
- validators.EqualTo('password_confirm', message=u'Passwörter stimmen nicht überein')])
- password_confirm = PasswordField(u'Passwort bestätigen')
+ validators.EqualTo('password_confirm', message='Passwörter stimmen nicht überein')])
+ password_confirm = PasswordField('Passwort bestätigen')
mail = TextField('E-Mail-Adresse', [validators.Optional(), validators.Email(), validators.Length(min=6, max=50)])
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.')
+ raise ValidationError('Gib bitte dein altes Passwort ein, um ein neues zu setzen.')
if field.data != current_user.password:
- raise ValidationError(u'Altes Passwort ist falsch.')
+ raise ValidationError('Altes Passwort ist falsch.')
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:
- raise ValidationError(u'Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!')
+ raise ValidationError('Diese E-Mail-Adresse wird schon von einem anderen Account benutzt!')
def get_servicepassword(self, service_id):
return getattr(self, 'password_%s' % service_id)
@@ -135,11 +133,11 @@ class SettingsForm(Form):
class AdminDisableAccountForm(Form):
- username = TextField(u'Benutzername')
+ username = TextField('Benutzername')
user = None
def validate_username(self, field):
try:
self.user = current_app.user_backend.get_by_uid(field.data)
except current_app.user_backend.NoSuchUserError:
- raise ValidationError(u'Dieser Benutzername existiert nicht')
+ raise ValidationError('Dieser Benutzername existiert nicht')
diff --git a/accounts/models.py b/accounts/models.py
index 82dab45..40db977 100644
--- a/accounts/models.py
+++ b/accounts/models.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from flask.ext.login import UserMixin
from accounts.utils.login import create_userid
@@ -13,9 +13,9 @@ class Account(UserMixin):
_ready = False
def __init__(self, uid, mail, services=None, password=None, uidNumber=None):
- self.uid = uid.encode('utf8') if isinstance(uid, unicode) else uid
+ self.uid = uid.encode('utf8') if isinstance(uid, str) else uid
self.services = list() if services is None else services
- self.password = password.encode('utf8') if isinstance(password, unicode) else password
+ self.password = password.encode('utf8') if isinstance(password, str) else password
self.new_password_root = None
self.new_password_services = {}
self.attributes = {}
@@ -37,10 +37,10 @@ class Account(UserMixin):
the root password will be changed.
"""
- if isinstance(new_password, unicode):
+ if isinstance(new_password, str):
new_password = new_password.encode('utf8')
- if isinstance(old_password, unicode):
+ if isinstance(old_password, str):
old_password = old_password.encode('utf8')
if not service:
@@ -49,7 +49,7 @@ class Account(UserMixin):
self.new_password_services[service] = (old_password, new_password)
def _set_attribute(self, key, value):
- if isinstance(value, unicode):
+ if isinstance(value, str):
value = value.encode('utf8')
self.attributes[key] = value
diff --git a/accounts/utils/__init__.py b/accounts/utils/__init__.py
index 7e658d0..8d49363 100644
--- a/accounts/utils/__init__.py
+++ b/accounts/utils/__init__.py
@@ -25,7 +25,7 @@ def templated(template=None):
def ensure_utf8(s):
- if isinstance(s, unicode):
+ if isinstance(s, str):
s = s.encode('utf8')
return s
@@ -35,9 +35,9 @@ class NotRegexp(Regexp):
Like wtforms.validators.Regexp, but rejects data that DOES match the regex.
"""
def __call__(self, form, field):
- if self.regex.match(field.data or u''):
+ if self.regex.match(field.data or ''):
if self.message is None:
- self.message = field.gettext(u'Invalid input.')
+ self.message = field.gettext('Invalid input.')
raise ValidationError(self.message)
diff --git a/accounts/utils/confirmation.py b/accounts/utils/confirmation.py
index 3ae66fe..79ac7dc 100644
--- a/accounts/utils/confirmation.py
+++ b/accounts/utils/confirmation.py
@@ -20,6 +20,6 @@ class Confirmation(URLSafeTimedSerializer):
try:
return self.loads(s, max_age, return_timestamp, salt)
except BadSignature:
- raise Forbidden(u'Ungültiger Bestätigungslink.')
+ raise Forbidden('Ungültiger Bestätigungslink.')
except SignatureExpired:
- raise Forbidden(u'Bestätigungslink ist zu alt.')
+ raise Forbidden('Bestätigungslink ist zu alt.')
diff --git a/accounts/utils/console.py b/accounts/utils/console.py
index 8ee717f..841a78a 100644
--- a/accounts/utils/console.py
+++ b/accounts/utils/console.py
@@ -45,7 +45,7 @@ class TablePrinter(object):
self.widths = [_column_width(column, width)
for column, width
- in zip(zip(*rows), self.widths)]
+ in zip(list(zip(*rows)), self.widths)]
self._update_format_string()
@@ -68,13 +68,13 @@ class TablePrinter(object):
self._print_row(row)
def _print_headline(self):
- print('%s%s%s' % (
+ print(('%s%s%s' % (
self.separator,
self.separator.join(['-' * (width + 2) for width in self.widths]),
- self.separator))
+ self.separator)))
def _print_row(self, row):
- print(self.format_string % tuple(row))
+ print((self.format_string % tuple(row)))
class ConsoleForm(object):
@@ -86,19 +86,19 @@ class ConsoleForm(object):
self._ready = True
def _fill(self, data):
- for key, value in data.items():
+ for key, value in list(data.items()):
field = getattr(self.form, key, None)
if field is not None:
field.data = value
def print_errors(self):
- for field, errors in self.form.errors.items():
+ for field, errors in list(self.form.errors.items()):
if len(errors) > 1:
- print('%s:' % field)
+ print(('%s:' % field))
for error in errors:
- print(' %s' % error)
+ print((' %s' % error))
else:
- print('%s: %s' % (field, errors[0]))
+ print(('%s: %s' % (field, errors[0])))
def __getattr__(self, name):
return getattr(self.form, name)
diff --git a/accounts/utils/login.py b/accounts/utils/login.py
index 12e7881..71b4f59 100644
--- a/accounts/utils/login.py
+++ b/accounts/utils/login.py
@@ -36,7 +36,7 @@ def logout_required(f):
@wraps(f)
def logout_required_(*args, **kwargs):
if current_user.is_authenticated():
- raise Forbidden(u'Diese Seite ist nur für nicht eingeloggte Benutzer gedacht!')
+ raise Forbidden('Diese Seite ist nur für nicht eingeloggte Benutzer gedacht!')
return f(*args, **kwargs)
return logout_required_
diff --git a/accounts/utils/sessions.py b/accounts/utils/sessions.py
index 8dc8cf3..7b24f8a 100644
--- a/accounts/utils/sessions.py
+++ b/accounts/utils/sessions.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from Crypto import Random
from Crypto.Cipher import AES
diff --git a/accounts/views/admin/__init__.py b/accounts/views/admin/__init__.py
index df5777d..0d273d2 100644
--- a/accounts/views/admin/__init__.py
+++ b/accounts/views/admin/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from flask import Blueprint
from flask import current_app, redirect, request, g, flash, url_for
@@ -19,7 +19,7 @@ def restrict_bp_to_admins():
if not current_user.is_authenticated():
return current_app.login_manager.unauthorized()
if current_user.uid not in current_app.config.get('ADMIN_USERS', []):
- raise Forbidden(u'Du bist kein Admin.')
+ raise Forbidden('Du bist kein Admin.')
@bp.route('/')
@@ -36,7 +36,7 @@ def create_account():
current_app.mail_backend.send(form.mail.data, 'mail/register.txt',
username=form.username.data)
- flash(u'Mail versandt.', 'success')
+ flash('Mail versandt.', 'success')
return redirect(url_for('admin.index'))
return {'form': form}
@@ -77,8 +77,8 @@ def disable_account():
current_app.user_backend.update(form.user, as_admin=True)
- flash(u'Passwort auf ein zufälliges und Mailadresse auf %s '
- u'gesetzt.' % mail, 'success')
+ flash('Passwort auf ein zufälliges und Mailadresse auf %s '
+ 'gesetzt.' % mail, 'success')
current_app.mail_backend.send(
current_app.config['MAIL_REGISTER_NOTIFY'],
diff --git a/accounts/views/default/__init__.py b/accounts/views/default/__init__.py
index e4083f0..a14e113 100644
--- a/accounts/views/default/__init__.py
+++ b/accounts/views/default/__init__.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from copy import deepcopy
from flask import Blueprint
@@ -28,9 +28,9 @@ def register():
current_app.mail_backend.send(form.mail.data, 'mail/register.txt',
username=form.username.data)
- flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, '
- u'um diese zu überprüfen. Bitte folge den Anweisungen in der '
- u'E-Mail.', 'success')
+ flash('Es wurde eine E-Mail an die angegebene Adresse geschickt, '
+ 'um diese zu überprüfen. Bitte folge den Anweisungen in der '
+ 'E-Mail.', 'success')
return redirect(url_for('.index'))
@@ -50,7 +50,7 @@ def register_complete(token):
except current_app.user_backend.NoSuchUserError:
pass
else:
- flash(u'Du hast den Benutzer bereits angelegt! Du kannst dich jetzt einfach einloggen:')
+ flash('Du hast den Benutzer bereits angelegt! Du kannst dich jetzt einfach einloggen:')
return redirect(url_for('.index'))
form = RegisterCompleteForm()
@@ -64,7 +64,7 @@ def register_complete(token):
'mail/register_notify.txt',
username=username, mail=mail)
- flash(u'Benutzer erfolgreich angelegt.', 'success')
+ flash('Benutzer erfolgreich angelegt.', 'success')
return redirect(url_for('.index'))
return {
@@ -86,8 +86,8 @@ def lost_password():
current_app.mail_backend.send(
form.user.mail, 'mail/lost_password.txt', username=form.user.uid)
- flash(u'Wir haben dir eine E-Mail mit einem Link zum Passwort ändern '
- u'geschickt. Bitte folge den Anweisungen in der E-Mail.', 'success')
+ flash('Wir haben dir eine E-Mail mit einem Link zum Passwort ändern '
+ 'geschickt. Bitte folge den Anweisungen in der E-Mail.', 'success')
return redirect(url_for('.index'))
@@ -107,7 +107,7 @@ def lost_password_complete(token):
current_app.user_backend.update(user, as_admin=True)
login_user(user)
- flash(u'Passwort geändert.', 'success')
+ flash('Passwort geändert.', 'success')
return redirect(url_for('.index'))
return {
@@ -138,14 +138,14 @@ def index():
form.mail.data, 'mail/change_mail.txt',
username=current_user.uid)
- flash(u'Es wurde eine E-Mail an die angegebene Adresse geschickt, '
- u'um diese zu überprüfen. Bitte folge den Anweisungen in der '
- u'E-Mail.', 'success')
+ flash('Es wurde eine E-Mail an die angegebene Adresse geschickt, '
+ 'um diese zu überprüfen. Bitte folge den Anweisungen in der '
+ 'E-Mail.', 'success')
changed = True
if form.password.data:
current_user.change_password(form.password.data, form.old_password.data)
- flash(u'Passwort geändert', 'success')
+ flash('Passwort geändert', 'success')
changed = True
for service in current_app.all_services:
@@ -159,7 +159,7 @@ def index():
login_user(current_user)
return redirect(url_for('.index'))
else:
- flash(u'Nichts geändert.')
+ flash('Nichts geändert.')
services = deepcopy(current_app.all_services)
@@ -178,17 +178,17 @@ def change_mail(token):
username, mail = Confirmation('change_mail').loads_http(token, max_age=3*24*60*60)
if current_user.uid != username:
- raise Forbidden(u'Bitte logge dich als der Benutzer ein, dessen E-Mail-Adresse du ändern willst.')
+ raise Forbidden('Bitte logge dich als der Benutzer ein, dessen E-Mail-Adresse du ändern willst.')
results = current_app.user_backend.find_by_mail(mail)
for user in results:
if user.uid != current_user.uid:
- raise Forbidden(u'Diese E-Mail-Adresse wird schon von einem anderen account benutzt!')
+ raise Forbidden('Diese E-Mail-Adresse wird schon von einem anderen account benutzt!')
current_user.change_email(mail)
current_app.user_backend.update(current_user)
- flash(u'E-Mail-Adresse geändert.', 'success')
+ flash('E-Mail-Adresse geändert.', 'success')
return redirect(url_for('.index'))
diff --git a/accounts/views/login/__init__.py b/accounts/views/login/__init__.py
index 3950cf9..7371f84 100644
--- a/accounts/views/login/__init__.py
+++ b/accounts/views/login/__init__.py
@@ -1,10 +1,10 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
+
from flask import Blueprint
from flask import current_app, redirect, request, g, flash, render_template, url_for
from flask.ext.login import login_user, logout_user, current_user
-from urlparse import urljoin, urlparse
+from urllib.parse import urljoin, urlparse
from .forms import LoginForm
@@ -33,7 +33,7 @@ def login():
user = current_app.user_backend.auth(form.username.data,
form.password.data)
login_user(user)
- flash(u'Erfolgreich eingeloggt', 'success')
+ flash('Erfolgreich eingeloggt', 'success')
next = request.form['next']
if not is_safe_url(next):
@@ -41,7 +41,7 @@ def login():
return redirect(next or url_for('default.index'))
except (current_app.user_backend.NoSuchUserError,
current_app.user_backend.InvalidPasswordError):
- flash(u'Ungültiger Benutzername und/oder Passwort', 'error')
+ flash('Ungültiger Benutzername und/oder Passwort', 'error')
return render_template("login/login.html", form=form,
next=request.values.get('next'))
@@ -50,5 +50,5 @@ def login():
@bp.route('/logout')
def logout():
logout_user()
- flash(u'Erfolgreich ausgeloggt.', 'success')
+ flash('Erfolgreich ausgeloggt.', 'success')
return redirect(url_for('.login'))
diff --git a/accounts/views/login/forms.py b/accounts/views/login/forms.py
index a82fa39..2db25b9 100644
--- a/accounts/views/login/forms.py
+++ b/accounts/views/login/forms.py
@@ -4,5 +4,5 @@ from wtforms import TextField, PasswordField, validators
class LoginForm(Form):
- username = TextField(u'Benutzername')
+ username = TextField('Benutzername')
password = PasswordField('Passwort', [validators.Required()])
diff --git a/contrib/create_service.py b/contrib/create_service.py
index 1da956a..54714df 100755
--- a/contrib/create_service.py
+++ b/contrib/create_service.py
@@ -21,7 +21,7 @@ from app import app
if __name__ == "__main__":
if len(sys.argv) < 2:
- print("Usage: %s name" % sys.argv[0])
+ print(("Usage: %s name" % sys.argv[0]))
exit(-1)
name = sys.argv[1]
@@ -36,7 +36,7 @@ if __name__ == "__main__":
try:
data = service.connection.search_s(dn, ldap.SCOPE_SUBTREE)
- print("'%s' already exists as service." % name)
+ print(("'%s' already exists as service." % name))
except ldap.NO_SUCH_OBJECT:
attr = [
@@ -45,6 +45,6 @@ if __name__ == "__main__":
]
service.connection.add_s(dn, attr)
- print("Successfully created '%s' as a new service." % name)
+ print(("Successfully created '%s' as a new service." % name))
service._unbind()
diff --git a/contrib/munin/accounts.py b/contrib/munin/accounts.py
index 684f278..8ad929f 100755
--- a/contrib/munin/accounts.py
+++ b/contrib/munin/accounts.py
@@ -20,4 +20,4 @@ if __name__ == "__main__":
accounts = service.find()
- print('accounts.value %d' % len(accounts))
+ print(('accounts.value %d' % len(accounts)))