Skip to content

Commit

Permalink
Merge pull request #26 from sunflower-ing/stage
Browse files Browse the repository at this point in the history
Stage
  • Loading branch information
miron0xff authored Jul 15, 2024
2 parents 5897f51 + a4e0ac3 commit 832baad
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 22 deletions.
4 changes: 3 additions & 1 deletion core/serializers.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from django.contrib.auth.models import User, Permission, Group
from django.contrib.auth.models import Group, Permission, User
from rest_framework import serializers

from .models import LogEntry
Expand Down Expand Up @@ -31,6 +31,8 @@ class Meta:


class SystemGroupSerializer(serializers.ModelSerializer):
permissions = SystemPermissionSerializer(many=True)

class Meta:
model = Group
fields = ("id", "name", "permissions")
Expand Down
21 changes: 15 additions & 6 deletions core/views.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.conf import settings
from django.contrib.auth.models import Group, Permission, User
from django.http import JsonResponse
from rest_framework import generics, permissions, status, viewsets
from rest_framework import filters, generics, permissions, status, viewsets
from rest_framework.response import Response

from .models import Actions, LogEntry, Modules, log
Expand All @@ -13,21 +14,23 @@


def index(request):
return JsonResponse({"i'm": "ok"})
return JsonResponse({"status": "ok", "version": settings.VERSION})


class UserView(generics.GenericAPIView):
permission_classes = [permissions.IsAuthenticated]
serializer_class = SystemUserSerializer
permission_classes = [permissions.IsAuthenticated]

def get(self, request):
return Response(SystemUserSerializer(instance=request.user).data)


class SystemUserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by("-id")
queryset = User.objects.all()
serializer_class = SystemUserSerializer
permission_classes = [permissions.IsAdminUser]
filter_backends = [filters.OrderingFilter]
ordering_fields = ["id", "username"]

def create(self, request, *args, **kwargs):
instance = None
Expand Down Expand Up @@ -105,9 +108,11 @@ def list(self, request, *args, **kwargs):


class SystemGroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all().order_by("-id")
queryset = Group.objects.all()
serializer_class = SystemGroupSerializer
permission_classes = [permissions.IsAdminUser]
filter_backends = [filters.OrderingFilter]
ordering_fields = ["id", "name"]

def create(self, request, *args, **kwargs):
instance = None
Expand Down Expand Up @@ -168,9 +173,11 @@ def list(self, request, *args, **kwargs):


class SystemPermissionViewSet(viewsets.ModelViewSet):
queryset = Permission.objects.all().order_by("-id")
queryset = Permission.objects.all()
serializer_class = SystemPermissionSerializer
permission_classes = [permissions.IsAdminUser]
filter_backends = [filters.OrderingFilter]
ordering_fields = ["id", "name"]

http_method_names = ["get"]

Expand All @@ -188,6 +195,8 @@ class SystemLogEntryViewSet(viewsets.ModelViewSet):
queryset = LogEntry.objects.all()
serializer_class = SystemLogEntrySerializer
permission_classes = [permissions.IsAdminUser]
filter_backends = [filters.OrderingFilter]
ordering_fields = ["date", "user", "module", "action"]

http_method_names = ["get"]

Expand Down
14 changes: 11 additions & 3 deletions ocsp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django_filters import rest_framework
from rest_framework import permissions, viewsets
from rest_framework import filters, permissions, viewsets
from rest_framework.response import Response

from core.models import Actions, Modules, log
Expand Down Expand Up @@ -124,8 +124,12 @@ class SourceViewSet(viewsets.ModelViewSet):
queryset = Source.objects.all()
serializer_class = SourceSerializer
permission_classes = [permissions.IsAuthenticated]
filter_backends = [rest_framework.DjangoFilterBackend]
filter_backends = [
rest_framework.DjangoFilterBackend,
filters.OrderingFilter,
]
filterset_fields = ["name", "host", "addr"]
ordering_fields = ["id", "name", "host", "addr"]

def create(self, request, *args, **kwargs):
instance = None
Expand Down Expand Up @@ -206,8 +210,12 @@ class RequestLogViewSet(viewsets.ModelViewSet):
queryset = RequestLog.objects.all()
serializer_class = RequestLogSerializer
permission_classes = [permissions.IsAuthenticated]
filter_backends = [rest_framework.DjangoFilterBackend]
filter_backends = [
rest_framework.DjangoFilterBackend,
filters.OrderingFilter,
]
filterset_class = RequestLogFilterSet
ordering_fields = ["date", "host", "addr"]

http_method_names = ["get"]

Expand Down
2 changes: 2 additions & 0 deletions sunflower/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
DEBUG = os.environ.get("DEBUG", "False") == "True"
TEMPLATE_DEBUG = DEBUG

VERSION = "0.1.5"

FORCE_SCRIPT_NAME = os.environ.get("FORCE_SCRIPT_NAME", "/")

ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS", ["*"])
Expand Down
30 changes: 18 additions & 12 deletions x509/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@ class KeyViewSet(viewsets.ModelViewSet):
filter_backends = [
rest_framework.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
]
filterset_class = KeyFilterSet
search_fields = ["name", "fingerprint"]
ordering_fields = ["created_at", "algo", "used"]

def create(self, request, *args, **kwargs):
instance = None
Expand Down Expand Up @@ -181,9 +183,11 @@ class CSRViewSet(viewsets.ModelViewSet):
filter_backends = [
rest_framework.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
]
filterset_class = CSRFilterSet
search_fields = ["name"]
ordering_fields = ["created_at", "name", "signed", "ca"]

def create(self, request, *args, **kwargs):
instance = None
Expand Down Expand Up @@ -316,9 +320,11 @@ class CertificateViewSet(viewsets.ModelViewSet):
filter_backends = [
rest_framework.DjangoFilterBackend,
filters.SearchFilter,
filters.OrderingFilter,
]
filterset_class = CertificateFilterSet
search_fields = ["csr__name", "fingerprint"]
ordering_fields = ["created_at", "revoked_at", "imported", "revoked"]

http_method_names = ["get", "post", "put"]

Expand Down Expand Up @@ -594,9 +600,9 @@ def get(self, request, key_id, *args, **kwargs):
data = key_to_der(key.private_as_object(), private=True)

response = HttpResponse(data, content_type=CTYPE[key_format])
response[
"Content-Disposition"
] = f"attachment; filename='{key.name}'"
response["Content-Disposition"] = (
f"attachment; filename='{key.name}'"
)

return response
else:
Expand All @@ -606,9 +612,9 @@ def get(self, request, key_id, *args, **kwargs):
data = key_to_der(key.public_as_object())

response = HttpResponse(data, content_type=CTYPE[key_format])
response[
"Content-Disposition"
] = f"attachment; filename='{key.name}'"
response["Content-Disposition"] = (
f"attachment; filename='{key.name}'"
)

return response

Expand Down Expand Up @@ -646,15 +652,15 @@ def get(self, request, cert_id, *args, **kwargs):
else:
response = HttpResponse(
cert_to_der(cert.as_object()),
content_type=CTYPE["der_ca"]
if cert.is_ca
else CTYPE["der_enduser"],
content_type=(
CTYPE["der_ca"] if cert.is_ca else CTYPE["der_enduser"]
),
)
# TODO: Add PKCS12

response[
"Content-Disposition"
] = f"attachment; filename='{cert.cn}'"
response["Content-Disposition"] = (
f"attachment; filename='{cert.cn}'"
)

return response

Expand Down

0 comments on commit 832baad

Please sign in to comment.