diff --git a/website/members/views.py b/website/members/views.py index 93e87313a0df6e46a903c1a2aaa854e51a449f16..1ebe0ba0bf4bb3c40af17344dd010560e41490e2 100644 --- a/website/members/views.py +++ b/website/members/views.py @@ -8,13 +8,21 @@ from django.db.models import Q from django.http import HttpResponse from django.shortcuts import get_object_or_404, render from django.utils.translation import gettext as _ +from rest_framework.authtoken.views import ObtainAuthToken -from members.services import member_achievements -from members.models import Member +from .services import member_achievements from . import models from .forms import ProfileForm +class ObtainThaliaAuthToken(ObtainAuthToken): + + def post(self, request, *args, **kwargs): + request._data = request.POST.copy() + request.POST['username'] = request.POST.get('username').lower() + return super().post(request, *args, **kwargs) + + def filter_users(tab, keywords, year_range): memberships_query = Q(until__gt=datetime.now()) | Q(until=None) members_query = ~Q(id=None) @@ -54,7 +62,7 @@ def filter_users(tab, keywords, year_range): else: memberships = models.Membership.objects.filter(memberships_query) members_query &= Q(pk__in=memberships.values('user__pk')) - return (Member.objects + return (models.Member.objects .filter(members_query) .order_by('-profile__starting_year', 'first_name')) @@ -112,7 +120,7 @@ def index(request): @login_required def profile(request, pk=None): if pk: - member = get_object_or_404(Member, pk=int(pk)) + member = get_object_or_404(models.Member, pk=int(pk)) else: member = request.member @@ -165,11 +173,11 @@ def iban_export(request): header_fields = ['name', 'username', 'iban'] rows = [] - members = Member.active_members.filter( + members = models.Member.active_members.filter( profile__direct_debit_authorized=True) for member in members: - if (member.current_membership.type != 'honorary'): + if member.current_membership.type != 'honorary': rows.append({ 'name': member.get_full_name(), 'username': member.username, @@ -193,7 +201,7 @@ def statistics(request): member_types = ("member", "supporter", "honorary") # The numbers - total = Member.active_members.count() + total = models.Member.active_members.count() context = { "total_members": total, diff --git a/website/thaliawebsite/urls.py b/website/thaliawebsite/urls.py index 2bf3cea863da2bde59288473d9d379d9c05ac9ce..3d6cc7239b1fb5d2212cc5fe20571efaedea321f 100644 --- a/website/thaliawebsite/urls.py +++ b/website/thaliawebsite/urls.py @@ -38,14 +38,13 @@ from django.contrib.auth.views import login from django.contrib.sitemaps.views import sitemap from django.views.generic import TemplateView from django.views.i18n import JavaScriptCatalog -from rest_framework.authtoken import views as rfviews import members -import registrations from activemembers.sitemaps import sitemap as activemembers_sitemap from documents.sitemaps import sitemap as documents_sitemap from events.sitemaps import sitemap as events_sitemap from members.sitemaps import sitemap as members_sitemap +from members.views import ObtainAuthToken, ObtainThaliaAuthToken from partners.sitemaps import sitemap as partners_sitemap from thabloid.sitemaps import sitemap as thabloid_sitemap from thaliawebsite.forms import AuthenticationForm @@ -99,7 +98,7 @@ urlpatterns = [ url(r'^api/', include([ url(r'wikilogin', views.wiki_login), url(r'^v1/', include([ - url(r'^token-auth', rfviews.obtain_auth_token), + url(r'^token-auth', ObtainThaliaAuthToken.as_view()), url(r'^', include('events.api.urls')), url(r'^', include('members.api.urls')), url(r'^', include('partners.api.urls')),