all: implement black as code formatter

This commit is contained in:
Jens Langhammer
2019-12-31 12:51:16 +01:00
parent 8eb3f0f708
commit 3bd1eadd51
298 changed files with 4825 additions and 3145 deletions

View File

@ -2,4 +2,4 @@
from passbook.lib.admin import admin_autoregister
admin_autoregister('passbook_policies_reputation')
admin_autoregister("passbook_policies_reputation")

View File

@ -11,7 +11,7 @@ class ReputationPolicySerializer(ModelSerializer):
class Meta:
model = ReputationPolicy
fields = GENERAL_SERIALIZER_FIELDS + ['check_ip', 'check_username', 'threshold']
fields = GENERAL_SERIALIZER_FIELDS + ["check_ip", "check_username", "threshold"]
class ReputationPolicyViewSet(ModelViewSet):

View File

@ -7,9 +7,9 @@ from django.apps import AppConfig
class PassbookPolicyReputationConfig(AppConfig):
"""Passbook reputation app config"""
name = 'passbook.policies.reputation'
label = 'passbook_policies_reputation'
verbose_name = 'passbook Policies.Reputation'
name = "passbook.policies.reputation"
label = "passbook_policies_reputation"
verbose_name = "passbook Policies.Reputation"
def ready(self):
import_module('passbook.policies.reputation.signals')
import_module("passbook.policies.reputation.signals")

View File

@ -12,11 +12,11 @@ class ReputationPolicyForm(forms.ModelForm):
class Meta:
model = ReputationPolicy
fields = GENERAL_FIELDS + ['check_ip', 'check_username', 'threshold']
fields = GENERAL_FIELDS + ["check_ip", "check_username", "threshold"]
widgets = {
'name': forms.TextInput(),
'value': forms.TextInput(),
"name": forms.TextInput(),
"value": forms.TextInput(),
}
labels = {
'check_ip': _('Check IP'),
"check_ip": _("Check IP"),
}

View File

@ -10,41 +10,73 @@ class Migration(migrations.Migration):
initial = True
dependencies = [
('passbook_core', '0001_initial'),
("passbook_core", "0001_initial"),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='IPReputation',
name="IPReputation",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('ip', models.GenericIPAddressField(unique=True)),
('score', models.IntegerField(default=0)),
('updated', models.DateTimeField(auto_now=True)),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("ip", models.GenericIPAddressField(unique=True)),
("score", models.IntegerField(default=0)),
("updated", models.DateTimeField(auto_now=True)),
],
),
migrations.CreateModel(
name='ReputationPolicy',
name="ReputationPolicy",
fields=[
('policy_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='passbook_core.Policy')),
('check_ip', models.BooleanField(default=True)),
('check_username', models.BooleanField(default=True)),
('threshold', models.IntegerField(default=-5)),
(
"policy_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="passbook_core.Policy",
),
),
("check_ip", models.BooleanField(default=True)),
("check_username", models.BooleanField(default=True)),
("threshold", models.IntegerField(default=-5)),
],
options={
'verbose_name': 'Reputation Policy',
'verbose_name_plural': 'Reputation Policies',
"verbose_name": "Reputation Policy",
"verbose_name_plural": "Reputation Policies",
},
bases=('passbook_core.policy',),
bases=("passbook_core.policy",),
),
migrations.CreateModel(
name='UserReputation',
name="UserReputation",
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('score', models.IntegerField(default=0)),
('updated', models.DateTimeField(auto_now=True)),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("score", models.IntegerField(default=0)),
("updated", models.DateTimeField(auto_now=True)),
(
"user",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to=settings.AUTH_USER_MODEL,
),
),
],
),
]

View File

@ -14,24 +14,27 @@ class ReputationPolicy(Policy):
check_username = models.BooleanField(default=True)
threshold = models.IntegerField(default=-5)
form = 'passbook.policies.reputation.forms.ReputationPolicyForm'
form = "passbook.policies.reputation.forms.ReputationPolicyForm"
def passes(self, request: PolicyRequest) -> PolicyResult:
remote_ip = get_client_ip(request.http_request)
passing = True
if self.check_ip:
ip_scores = IPReputation.objects.filter(ip=remote_ip, score__lte=self.threshold)
ip_scores = IPReputation.objects.filter(
ip=remote_ip, score__lte=self.threshold
)
passing = passing and ip_scores.exists()
if self.check_username:
user_scores = UserReputation.objects.filter(user=request.user,
score__lte=self.threshold)
user_scores = UserReputation.objects.filter(
user=request.user, score__lte=self.threshold
)
passing = passing and user_scores.exists()
return PolicyResult(passing)
class Meta:
verbose_name = _('Reputation Policy')
verbose_name_plural = _('Reputation Policies')
verbose_name = _("Reputation Policy")
verbose_name_plural = _("Reputation Policies")
class IPReputation(models.Model):

View File

@ -12,7 +12,7 @@ LOGGER = get_logger()
def update_score(request, username, amount):
"""Update score for IP and User"""
remote_ip = get_client_ip(request) or '255.255.255.255.'
remote_ip = get_client_ip(request) or "255.255.255.255."
ip_score, _ = IPReputation.objects.update_or_create(ip=remote_ip)
ip_score.score += amount
ip_score.save()
@ -30,7 +30,7 @@ def update_score(request, username, amount):
# pylint: disable=unused-argument
def handle_failed_login(sender, request, credentials, **_):
"""Lower Score for failed loging attempts"""
update_score(request, credentials.get('username'), -1)
update_score(request, credentials.get("username"), -1)
@receiver(user_logged_in)