Refactoring code parts where owner really means admin

remotes/origin/issue/4795/notification_even_they_are_disabled
Alejandro Alonso 2016-02-24 07:57:09 +01:00
parent a94c1ce58b
commit 22d545ebd4
16 changed files with 131 additions and 131 deletions

View File

@ -20,7 +20,7 @@ import abc
from functools import reduce
from taiga.base.utils import sequence as sq
from taiga.permissions.service import user_has_perm, is_project_owner
from taiga.permissions.service import user_has_perm, is_project_admin
from django.apps import apps
from django.utils.translation import ugettext as _
@ -206,9 +206,9 @@ class HasMandatoryParam(PermissionComponent):
return False
class IsProjectOwner(PermissionComponent):
class IsProjectAdmin(PermissionComponent):
def check_permissions(self, request, view, obj=None):
return is_project_owner(request.user, obj)
return is_project_admin(request.user, obj)
class IsObjectOwner(PermissionComponent):

View File

@ -17,11 +17,11 @@
from taiga.base.api.permissions import (TaigaResourcePermission,
IsProjectOwner, IsAuthenticated)
IsProjectAdmin, IsAuthenticated)
class ImportExportPermission(TaigaResourcePermission):
import_project_perms = IsAuthenticated()
import_item_perms = IsProjectOwner()
export_project_perms = IsProjectOwner()
import_item_perms = IsProjectAdmin()
export_project_perms = IsProjectAdmin()
load_dump_perms = IsAuthenticated()

View File

@ -37,7 +37,7 @@ def _get_object_project(obj):
return project
def is_project_owner(user, obj):
def is_project_admin(user, obj):
if user.is_superuser:
return True

View File

@ -144,7 +144,7 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
else:
project = self.get_object()
if permissions_service.is_project_owner(self.request.user, project):
if permissions_service.is_project_admin(self.request.user, project):
serializer_class = self.admin_serializer_class
return serializer_class
@ -593,12 +593,12 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet):
use_admin_serializer = True
if self.action == "retrieve":
use_admin_serializer = permissions_service.is_project_owner(self.request.user, self.object.project)
use_admin_serializer = permissions_service.is_project_admin(self.request.user, self.object.project)
project_id = self.request.QUERY_PARAMS.get("project", None)
if self.action == "list" and project_id is not None:
project = get_object_or_404(models.Project, pk=project_id)
use_admin_serializer = permissions_service.is_project_owner(self.request.user, project)
use_admin_serializer = permissions_service.is_project_admin(self.request.user, project)
if use_admin_serializer:
return self.admin_serializer_class

View File

@ -17,7 +17,7 @@
from taiga.base.api.permissions import TaigaResourcePermission
from taiga.base.api.permissions import HasProjectPerm
from taiga.base.api.permissions import IsProjectOwner
from taiga.base.api.permissions import IsProjectAdmin
from taiga.base.api.permissions import AllowAny
from taiga.base.api.permissions import IsSuperUser
@ -27,39 +27,39 @@ from taiga.base.api.permissions import IsSuperUser
#######################################################
class UserStoryCustomAttributePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class TaskCustomAttributePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class IssueCustomAttributePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
######################################################
@ -67,7 +67,7 @@ class IssueCustomAttributePermission(TaigaResourcePermission):
#######################################################
class UserStoryCustomAttributesValuesPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_us')
update_perms = HasProjectPerm('modify_us')
@ -75,7 +75,7 @@ class UserStoryCustomAttributesValuesPermission(TaigaResourcePermission):
class TaskCustomAttributesValuesPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_tasks')
update_perms = HasProjectPerm('modify_task')
@ -83,7 +83,7 @@ class TaskCustomAttributesValuesPermission(TaigaResourcePermission):
class IssueCustomAttributesValuesPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_issues')
update_perms = HasProjectPerm('modify_issue')

View File

@ -16,10 +16,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsProjectOwner, AllowAny,
IsProjectAdmin, AllowAny,
IsObjectOwner, PermissionComponent)
from taiga.permissions.service import is_project_owner
from taiga.permissions.service import is_project_admin
from taiga.projects.history.services import get_model_from_key, get_pk_from_key
@ -38,7 +38,7 @@ class IsCommentProjectOwner(PermissionComponent):
model = get_model_from_key(obj.key)
pk = get_pk_from_key(obj.key)
project = model.objects.get(pk=pk)
return is_project_owner(request.user, project)
return is_project_admin(request.user, project)
class UserStoryHistoryPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')

View File

@ -17,12 +17,12 @@
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsProjectOwner, PermissionComponent,
IsProjectAdmin, PermissionComponent,
AllowAny, IsAuthenticated, IsSuperUser)
class IssuePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_issues')
create_perms = HasProjectPerm('add_issue')
@ -49,14 +49,14 @@ class HasIssueIdUrlParam(PermissionComponent):
class IssueVotersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_issues')
list_perms = HasProjectPerm('view_issues')
class IssueWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_issues')
list_perms = HasProjectPerm('view_issues')

View File

@ -16,12 +16,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsAuthenticated, IsProjectOwner, AllowAny,
IsAuthenticated, IsProjectAdmin, AllowAny,
IsSuperUser)
class MilestonePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_milestones')
create_perms = HasProjectPerm('add_milestone')
@ -34,7 +34,7 @@ class MilestonePermission(TaigaResourcePermission):
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_milestones')
class MilestoneWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_milestones')
list_perms = HasProjectPerm('view_milestones')

View File

@ -20,7 +20,7 @@ from django.utils.translation import ugettext as _
from taiga.base.api.permissions import TaigaResourcePermission
from taiga.base.api.permissions import HasProjectPerm
from taiga.base.api.permissions import IsAuthenticated
from taiga.base.api.permissions import IsProjectOwner
from taiga.base.api.permissions import IsProjectAdmin
from taiga.base.api.permissions import AllowAny
from taiga.base.api.permissions import IsSuperUser
from taiga.base.api.permissions import PermissionComponent
@ -56,19 +56,19 @@ class ProjectPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
by_slug_perms = HasProjectPerm('view_project')
create_perms = IsAuthenticated()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
modules_perms = IsProjectOwner()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
modules_perms = IsProjectAdmin()
list_perms = AllowAny()
change_logo_perms = IsProjectOwner()
remove_logo_perms = IsProjectOwner()
change_logo_perms = IsProjectAdmin()
remove_logo_perms = IsProjectAdmin()
stats_perms = HasProjectPerm('view_project')
member_stats_perms = HasProjectPerm('view_project')
issues_stats_perms = HasProjectPerm('view_project')
regenerate_userstories_csv_uuid_perms = IsProjectOwner()
regenerate_issues_csv_uuid_perms = IsProjectOwner()
regenerate_tasks_csv_uuid_perms = IsProjectOwner()
regenerate_userstories_csv_uuid_perms = IsProjectAdmin()
regenerate_issues_csv_uuid_perms = IsProjectAdmin()
regenerate_tasks_csv_uuid_perms = IsProjectAdmin()
tags_perms = HasProjectPerm('view_project')
tags_colors_perms = HasProjectPerm('view_project')
like_perms = IsAuthenticated() & HasProjectPerm('view_project')
@ -77,21 +77,21 @@ class ProjectPermission(TaigaResourcePermission):
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_project')
create_template_perms = IsSuperUser()
leave_perms = CanLeaveProject()
transfer_request_perms = IsProjectOwner()
transfer_request_perms = IsProjectAdmin()
transfer_start_perms = IsMainOwner()
transfer_reject_perms = IsProjectOwner()
transfer_accept_perms = IsProjectOwner()
transfer_reject_perms = IsProjectAdmin()
transfer_accept_perms = IsProjectAdmin()
class ProjectFansPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_project')
list_perms = HasProjectPerm('view_project')
class ProjectWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_project')
list_perms = HasProjectPerm('view_project')
@ -99,89 +99,89 @@ class ProjectWatchersPermission(TaigaResourcePermission):
class MembershipPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_create_perms = IsProjectOwner()
resend_invitation_perms = IsProjectOwner()
bulk_create_perms = IsProjectAdmin()
resend_invitation_perms = IsProjectAdmin()
# User Stories
class PointsPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class UserStoryStatusPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
# Tasks
class TaskStatusPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
# Issues
class SeverityPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class PriorityPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class IssueStatusPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
class IssueTypePermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
bulk_update_order_perms = IsProjectOwner()
bulk_update_order_perms = IsProjectAdmin()
# Project Templates

View File

@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsProjectOwner, AllowAny)
IsProjectAdmin, AllowAny)
class ResolverPermission(TaigaResourcePermission):

View File

@ -33,7 +33,7 @@ from taiga.users.serializers import ProjectRoleSerializer
from taiga.users.validators import RoleExistsValidator
from taiga.permissions.service import get_user_project_permissions
from taiga.permissions.service import is_project_owner
from taiga.permissions.service import is_project_admin
from taiga.projects.mixins.serializers import ValidateDuplicatedNameInProjectMixin
from . import models
@ -241,7 +241,7 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
anon_permissions = PgArrayField(required=False)
public_permissions = PgArrayField(required=False)
my_permissions = serializers.SerializerMethodField("get_my_permissions")
i_am_owner = serializers.SerializerMethodField("get_i_am_owner")
i_am_admin = serializers.SerializerMethodField("get_i_am_admin")
i_am_member = serializers.SerializerMethodField("get_i_am_member")
tags = TagsField(default=[], required=False)
@ -266,9 +266,9 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
return get_user_project_permissions(self.context["request"].user, obj)
return []
def get_i_am_owner(self, obj):
def get_i_am_admin(self, obj):
if "request" in self.context:
return is_project_owner(self.context["request"].user, obj)
return is_project_admin(self.context["request"].user, obj)
return False
def get_i_am_member(self, obj):

View File

@ -16,12 +16,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsAuthenticated, IsProjectOwner, AllowAny,
IsAuthenticated, IsProjectAdmin, AllowAny,
IsSuperUser)
class TaskPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_tasks')
create_perms = HasProjectPerm('add_task')
@ -39,14 +39,14 @@ class TaskPermission(TaigaResourcePermission):
class TaskVotersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_tasks')
list_perms = HasProjectPerm('view_tasks')
class TaskWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_tasks')
list_perms = HasProjectPerm('view_tasks')

View File

@ -16,7 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsAuthenticated, IsProjectOwner,
IsAuthenticated, IsProjectAdmin,
AllowAny, IsSuperUser)
@ -38,14 +38,14 @@ class UserStoryPermission(TaigaResourcePermission):
class UserStoryVotersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_us')
list_perms = HasProjectPerm('view_us')
class UserStoryWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_us')
list_perms = HasProjectPerm('view_us')

View File

@ -16,12 +16,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
IsAuthenticated, IsProjectOwner, AllowAny,
IsAuthenticated, IsProjectAdmin, AllowAny,
IsSuperUser)
class WikiPagePermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_wiki_pages')
by_slug_perms = HasProjectPerm('view_wiki_pages')
@ -36,14 +36,14 @@ class WikiPagePermission(TaigaResourcePermission):
class WikiPageWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_wiki_pages')
list_perms = HasProjectPerm('view_wiki_pages')
class WikiLinkPermission(TaigaResourcePermission):
enought_perms = IsProjectOwner() | IsSuperUser()
enought_perms = IsProjectAdmin() | IsSuperUser()
global_perms = None
retrieve_perms = HasProjectPerm('view_wiki_links')
create_perms = HasProjectPerm('add_wiki_link')

View File

@ -20,7 +20,7 @@ from taiga.base.api.permissions import IsSuperUser
from taiga.base.api.permissions import AllowAny
from taiga.base.api.permissions import IsAuthenticated
from taiga.base.api.permissions import HasProjectPerm
from taiga.base.api.permissions import IsProjectOwner
from taiga.base.api.permissions import IsProjectAdmin
from taiga.base.api.permissions import PermissionComponent
@ -54,8 +54,8 @@ class UserPermission(TaigaResourcePermission):
class RolesPermission(TaigaResourcePermission):
retrieve_perms = HasProjectPerm('view_project')
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()

View File

@ -15,28 +15,28 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from taiga.base.api.permissions import (TaigaResourcePermission, IsProjectOwner,
from taiga.base.api.permissions import (TaigaResourcePermission, IsProjectAdmin,
AllowAny, PermissionComponent)
from taiga.permissions.service import is_project_owner
from taiga.permissions.service import is_project_admin
class IsWebhookProjectOwner(PermissionComponent):
class IsWebhookProjectAdmin(PermissionComponent):
def check_permissions(self, request, view, obj=None):
return is_project_owner(request.user, obj.webhook.project)
return is_project_admin(request.user, obj.webhook.project)
class WebhookPermission(TaigaResourcePermission):
retrieve_perms = IsProjectOwner()
create_perms = IsProjectOwner()
update_perms = IsProjectOwner()
partial_update_perms = IsProjectOwner()
destroy_perms = IsProjectOwner()
retrieve_perms = IsProjectAdmin()
create_perms = IsProjectAdmin()
update_perms = IsProjectAdmin()
partial_update_perms = IsProjectAdmin()
destroy_perms = IsProjectAdmin()
list_perms = AllowAny()
test_perms = IsProjectOwner()
test_perms = IsProjectAdmin()
class WebhookLogPermission(TaigaResourcePermission):
retrieve_perms = IsWebhookProjectOwner()
retrieve_perms = IsWebhookProjectAdmin()
list_perms = AllowAny()
resend_perms = IsWebhookProjectOwner()
resend_perms = IsWebhookProjectAdmin()