From 864b3787c810ff892aa6a2c07ad238df859ad8d7 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 26 Sep 2017 11:30:34 +0300 Subject: [PATCH] Add sahkopiikki user create command --- members/management/__init__.py | 0 members/management/commands/__init__.py | 0 .../commands/createsahkopiikkiuser.py | 26 +++++++++++++++++++ members/views/utils.py | 5 ++-- sikweb/base.py | 1 + 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 members/management/__init__.py create mode 100644 members/management/commands/__init__.py create mode 100644 members/management/commands/createsahkopiikkiuser.py diff --git a/members/management/__init__.py b/members/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/members/management/commands/__init__.py b/members/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/members/management/commands/createsahkopiikkiuser.py b/members/management/commands/createsahkopiikkiuser.py new file mode 100644 index 0000000..2274e86 --- /dev/null +++ b/members/management/commands/createsahkopiikkiuser.py @@ -0,0 +1,26 @@ +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User +from rest_framework.authtoken.models import Token + + +class Command(BaseCommand): + user_name = "sahkopiikki" + password = User.objects.make_random_password() + + def handle(self, *args, **options): + if User.objects.filter(username=self.user_name).exists(): + self.stdout.write("Sahkopiikki user already exists. Skipping.") + user = User.objects.get(username=self.user_name) + token = Token.objects.get(user=user) + self.stdout.write("Token: {}".format(token)) + return + + u = User(username=self.user_name) + u.set_password(self.password) + u.save() + + token = Token.objects.create(user=u) + + self.stdout.write("Created sahkopiikki user '{}' with password '{}' and token '{}'.".format( + self.user_name, self.password, token + )) diff --git a/members/views/utils.py b/members/views/utils.py index 4636505..80485c4 100644 --- a/members/views/utils.py +++ b/members/views/utils.py @@ -13,9 +13,10 @@ import csv # REST framework from members.serializers import MemberSerializer +from members.throttles import BurstRateThrottle, SustainedRateThrottle + from rest_framework import generics from rest_framework import permissions -from rest_framework.throttling import UserRateThrottle, AnonRateThrottle from members.models import Member, Request, Payment from members.forms import MemberForm, PaymentForm, ApplicationForm, CSVValidationError @@ -29,7 +30,7 @@ class MemberDetail(generics.RetrieveAPIView): queryset = Member.objects.all() serializer_class = MemberSerializer permission_classes = (permissions.IsAdminUser, ) - throttle_classes = (UserRateThrottle, AnonRateThrottle, ) + throttle_classes = (BurstRateThrottle, SustainedRateThrottle, ) def error_view(request, message): diff --git a/sikweb/base.py b/sikweb/base.py index e340969..e8b5bd7 100644 --- a/sikweb/base.py +++ b/sikweb/base.py @@ -72,6 +72,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'rest_framework.authtoken', 'corsheaders', 'webapp', 'members',