refactor(projects): remove project membership access model

This commit is contained in:
2026-04-28 19:35:24 +03:30
parent 71924ce6fb
commit 1cd948592c
20 changed files with 150 additions and 905 deletions

View File

@@ -1,18 +1,17 @@
from django.db import transaction
from django.shortcuts import get_object_or_404
from rest_framework.exceptions import ValidationError, PermissionDenied
from apps.clients.models import Client
from apps.projects.models import Project, ProjectMembership
from apps.workspaces.models import WorkspaceMembership
from django.db import transaction
from django.shortcuts import get_object_or_404
from rest_framework.exceptions import ValidationError, PermissionDenied
from apps.clients.models import Client
from apps.projects.models import Project
from apps.workspaces.models import WorkspaceMembership
@transaction.atomic
def create_project(user, workspace, name, client=None, description="", color=""):
"""
Creates a new project and automatically assigns the creator
as an active MANAGER of that project.
"""
def create_project(user, workspace, name, client=None, description="", color=""):
"""
Creates a new workspace-shared project.
"""
workspace_member = WorkspaceMembership.objects.filter(
workspace=workspace,
user=user,
@@ -36,14 +35,7 @@ def create_project(user, workspace, name, client=None, description="", color="")
updated_by=user,
)
ProjectMembership.objects.create(
project=project,
user=user,
role=ProjectMembership.Role.MANAGER,
is_active=True
)
return project
return project
def update_project(project, **kwargs):