Skip to content

Commit a00f611

Browse files
committed
feat: OrganizationAdmin 추가
1 parent 493f199 commit a00f611

3 files changed

Lines changed: 21 additions & 1 deletion

File tree

app/admin_api/serializers/user.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
import functools
22
import typing
33

4+
from core.const.serializer import COMMON_ADMIN_FIELDS
5+
from core.serializer.base_abstract_serializer import BaseAbstractSerializer
46
from core.serializer.json_schema_serializer import JsonSchemaSerializer
57
from core.serializer.read_only_serializer import ReadOnlyModelSerializer
68
from rest_framework import serializers
79
from user.models import UserExt
10+
from user.models.organization import Organization
811

912

1013
class UserAdminSerializer(JsonSchemaSerializer, serializers.ModelSerializer):
@@ -92,3 +95,9 @@ def save(self, **kwargs: typing.Any) -> UserExt:
9295
user.set_password(self.validated_data["new_password"])
9396
user.save(update_fields=["password"])
9497
return user
98+
99+
100+
class OrganizationAdminSerializer(BaseAbstractSerializer, JsonSchemaSerializer, serializers.ModelSerializer):
101+
class Meta:
102+
model = Organization
103+
fields = COMMON_ADMIN_FIELDS + ("name_ko", "name_en")

app/admin_api/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
)
88
from admin_api.views.event.sponsor import SponsorAdminViewSet, SponsorTierAdminViewSet
99
from admin_api.views.file import PublicFileAdminViewSet
10-
from admin_api.views.user import UserAdminViewSet
10+
from admin_api.views.user import OrganizationAdminViewSet, UserAdminViewSet
1111
from django.urls import include, path
1212
from rest_framework import routers
1313

1414
admin_user_router = routers.SimpleRouter()
1515
admin_user_router.register("userext", UserAdminViewSet, basename="admin-user")
16+
admin_user_router.register("organization", OrganizationAdminViewSet, basename="admin-organization")
1617

1718
admin_cms_router = routers.SimpleRouter()
1819
admin_cms_router.register("sitemap", SitemapAdminViewSet, basename="admin-sitemap")

app/admin_api/views/user.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from admin_api.serializers.user import (
2+
OrganizationAdminSerializer,
23
UserAdminPasswordChangeSerializer,
34
UserAdminSerializer,
45
UserAdminSignInSerializer,
@@ -11,6 +12,7 @@
1112
from drf_spectacular.utils import extend_schema, extend_schema_view
1213
from rest_framework import decorators, mixins, request, response, status, viewsets
1314
from user.models import UserExt
15+
from user.models.organization import Organization
1416

1517
ADMIN_METHODS = ["list", "retrieve", "create", "partial_update", "destroy"]
1618

@@ -75,3 +77,11 @@ def change_password(self, request: request.Request, *args: tuple, **kwargs: dict
7577
serializer.is_valid(raise_exception=True)
7678
serializer.save()
7779
return response.Response(data=UserAdminSerializer(serializer.instance).data)
80+
81+
82+
@extend_schema_view(**{m: extend_schema(tags=[OpenAPITag.ADMIN_USER]) for m in ADMIN_METHODS})
83+
class OrganizationAdminViewSet(JsonSchemaViewSet, viewsets.ModelViewSet):
84+
http_method_names = ["get", "post", "patch", "delete"]
85+
serializer_class = OrganizationAdminSerializer
86+
permission_classes = [IsSuperUser]
87+
queryset = Organization.objects.filter_active()

0 commit comments

Comments
 (0)