Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions apps/space/quotas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from common.apps.billing.mixins import BaseQuota


class SpaceQuota(BaseQuota):
release_actions = {"destroy"}
rules = {
"create": "space.max_count",
"destroy": "space.max_count",
}
9 changes: 8 additions & 1 deletion apps/space/views.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import uuid

from common.apps.billing.mixins import QuotaMixin
from common.apps.organization_user.models import OrganizationUser
from common.apps.space.models import Space
from common.apps.space_role.models import SpaceRole, SpaceRoleUser
Expand All @@ -24,21 +25,27 @@
from rest_framework.views import APIView
from rest_framework_simplejwt.tokens import AccessToken, UntypedToken

from apps.space.quotas import SpaceQuota
from apps.space.serializers import InviteUserSerial, SpaceSerializer
from apps.space.services import get_spaces_queryset_for_user
from apps.space_role.services import clear_user_permission_cache

console_client = ConsoleServiceClient()


class SpaceView(SpaceListCreateAPIView, SpaceRetrieveUpdateDestroyAPIView):
class SpaceView(
QuotaMixin,
SpaceListCreateAPIView,
SpaceRetrieveUpdateDestroyAPIView,
):
Comment thread
ngovinh2k2 marked this conversation as resolved.
model = Space
serializer_class = SpaceSerializer
queryset = Space.objects.all()
pagination_class = BasePagination
filter_backends = [OrderingFilter, SearchFilter]
ordering_fields = ["created_at"]
search_fields = ["name"]
quota_classes = [SpaceQuota]

def get_object(self):
space_slug = self.request.headers.get("X-Space", None)
Expand Down
Loading