Merge branch 'develop' into feature/webapp-tests
This commit is contained in:
+1
-1
@@ -17,7 +17,7 @@ from sikweb.base import *
|
|||||||
DEBUG = os.getenv('DEBUG', False) == 'True'
|
DEBUG = os.getenv('DEBUG', False) == 'True'
|
||||||
|
|
||||||
URL = os.getenv("HOST", "sika.sik.party")
|
URL = os.getenv("HOST", "sika.sik.party")
|
||||||
ALLOWED_HOSTS = [URL]
|
ALLOWED_HOSTS = ["localhost", "127.0.0.1", URL]
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
SECRET_KEY = os.getenv('SECRET_KEY', '<your secret key>')
|
SECRET_KEY = os.getenv('SECRET_KEY', '<your secret key>')
|
||||||
|
|||||||
@@ -49,9 +49,15 @@ class EventSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class SignupSerializer(serializers.ModelSerializer):
|
class SignupSerializer(serializers.ModelSerializer):
|
||||||
|
signupForm = SignupFormSerializer(read_only=True, required=False)
|
||||||
|
signupForm_id = serializers.PrimaryKeyRelatedField(
|
||||||
|
source="signupForm",
|
||||||
|
queryset=SignupForm.objects.all()
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Signup
|
model = Signup
|
||||||
fields = ('id', 'signupForm', 'answer')
|
fields = ('id', 'signupForm', 'signupForm_id', 'answer')
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'url': {
|
'url': {
|
||||||
'view_name': 'signup-detail',
|
'view_name': 'signup-detail',
|
||||||
|
|||||||
+2
-1
@@ -3,7 +3,7 @@
|
|||||||
from django.conf.urls import url, include
|
from django.conf.urls import url, include
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token
|
from rest_framework_jwt.views import obtain_jwt_token, verify_jwt_token
|
||||||
from webapp.views import about_view
|
from webapp.views import about_view, nginx_jwt_resp
|
||||||
|
|
||||||
|
|
||||||
from webapp.views import *
|
from webapp.views import *
|
||||||
@@ -29,4 +29,5 @@ urlpatterns = [
|
|||||||
url(r'^api/api-token-verify/', verify_jwt_token),
|
url(r'^api/api-token-verify/', verify_jwt_token),
|
||||||
# git revision
|
# git revision
|
||||||
url(r'^about', about_view),
|
url(r'^about', about_view),
|
||||||
|
url(r'^jwt_nginx', nginx_jwt_resp),
|
||||||
]
|
]
|
||||||
|
|||||||
+29
-12
@@ -1,29 +1,31 @@
|
|||||||
"""Webapp views."""
|
"""Webapp views."""
|
||||||
|
|
||||||
|
import jwt
|
||||||
|
# import logging
|
||||||
|
# import requests
|
||||||
|
from dealer.git import git
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth import authenticate, login, logout
|
||||||
|
from django.http import HttpResponse
|
||||||
# from django.db.models import Count
|
# from django.db.models import Count
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import redirect, render
|
||||||
from django.contrib.auth import login, logout, authenticate
|
|
||||||
from django.views.decorators.http import require_http_methods
|
from django.views.decorators.http import require_http_methods
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
# from django.views.decorators.csrf import ensure_csrf_cookie
|
# from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
# from django.http import HttpResponse, HttpResponseRedirect
|
# from django.http import HttpResponse, HttpResponseRedirect
|
||||||
# from django.contrib.auth.decorators import permission_required, login_required
|
# from django.contrib.auth.decorators import permission_required, login_required
|
||||||
# from django.conf import settings
|
# from django.conf import settings
|
||||||
# from django.utils import timezone
|
# from django.utils import timezone
|
||||||
from rest_framework import viewsets, routers
|
from rest_framework import permissions, routers, viewsets
|
||||||
|
from rest_framework.filters import OrderingFilter, SearchFilter
|
||||||
from rest_framework.permissions import IsAuthenticatedOrReadOnly
|
from rest_framework.permissions import IsAuthenticatedOrReadOnly
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.reverse import reverse
|
from rest_framework.reverse import reverse
|
||||||
from django_filters import rest_framework as filters
|
|
||||||
from rest_framework.filters import SearchFilter, OrderingFilter
|
|
||||||
from rest_framework import permissions
|
|
||||||
# import logging
|
|
||||||
# import requests
|
|
||||||
from dealer.git import git
|
|
||||||
|
|
||||||
from webapp.models import Event, SignupForm, Signup, TemplateQuestion, Feed,\
|
|
||||||
Committee, Official, Tag
|
|
||||||
from webapp.serializers import *
|
|
||||||
from members.views.utils import *
|
from members.views.utils import *
|
||||||
|
from webapp.models import (Committee, Event, Feed, Official, Signup,
|
||||||
|
SignupForm, Tag, TemplateQuestion)
|
||||||
|
from webapp.serializers import *
|
||||||
|
|
||||||
|
|
||||||
class IsPostOrIsAuthenticated(permissions.BasePermission):
|
class IsPostOrIsAuthenticated(permissions.BasePermission):
|
||||||
@@ -152,3 +154,18 @@ def about_view(request, *args, **kwargs):
|
|||||||
'tag': latest_tag
|
'tag': latest_tag
|
||||||
}
|
}
|
||||||
return render(request, "about.html", context)
|
return render(request, "about.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
@require_http_methods(["GET"])
|
||||||
|
def nginx_jwt_resp(request, *args, **kwargs):
|
||||||
|
cookie = request.COOKIES.get("jwt", None)
|
||||||
|
if not cookie:
|
||||||
|
return HttpResponse("", status=401)
|
||||||
|
try:
|
||||||
|
token = jwt.decode(cookie, settings.SECRET_KEY)
|
||||||
|
except jwt.exceptions.InvalidSignatureError:
|
||||||
|
return HttpResponse("", status=403)
|
||||||
|
user = 'admin' if token.get('username', '') == 'admin' else 'moderator'
|
||||||
|
resp = HttpResponse("", status=200)
|
||||||
|
resp['X-FBrowser-User'] = user
|
||||||
|
return resp
|
||||||
|
|||||||
Reference in New Issue
Block a user