Refactoring code parts where owner really means admin
parent
a94c1ce58b
commit
22d545ebd4
|
@ -20,7 +20,7 @@ import abc
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
from taiga.base.utils import sequence as sq
|
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.apps import apps
|
||||||
|
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
@ -206,9 +206,9 @@ class HasMandatoryParam(PermissionComponent):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class IsProjectOwner(PermissionComponent):
|
class IsProjectAdmin(PermissionComponent):
|
||||||
def check_permissions(self, request, view, obj=None):
|
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):
|
class IsObjectOwner(PermissionComponent):
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
|
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission,
|
from taiga.base.api.permissions import (TaigaResourcePermission,
|
||||||
IsProjectOwner, IsAuthenticated)
|
IsProjectAdmin, IsAuthenticated)
|
||||||
|
|
||||||
|
|
||||||
class ImportExportPermission(TaigaResourcePermission):
|
class ImportExportPermission(TaigaResourcePermission):
|
||||||
import_project_perms = IsAuthenticated()
|
import_project_perms = IsAuthenticated()
|
||||||
import_item_perms = IsProjectOwner()
|
import_item_perms = IsProjectAdmin()
|
||||||
export_project_perms = IsProjectOwner()
|
export_project_perms = IsProjectAdmin()
|
||||||
load_dump_perms = IsAuthenticated()
|
load_dump_perms = IsAuthenticated()
|
||||||
|
|
|
@ -37,7 +37,7 @@ def _get_object_project(obj):
|
||||||
return project
|
return project
|
||||||
|
|
||||||
|
|
||||||
def is_project_owner(user, obj):
|
def is_project_admin(user, obj):
|
||||||
if user.is_superuser:
|
if user.is_superuser:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,7 @@ class ProjectViewSet(LikedResourceMixin, HistoryResourceMixin,
|
||||||
else:
|
else:
|
||||||
project = self.get_object()
|
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
|
serializer_class = self.admin_serializer_class
|
||||||
|
|
||||||
return serializer_class
|
return serializer_class
|
||||||
|
@ -593,12 +593,12 @@ class MembershipViewSet(BlockedByProjectMixin, ModelCrudViewSet):
|
||||||
use_admin_serializer = True
|
use_admin_serializer = True
|
||||||
|
|
||||||
if self.action == "retrieve":
|
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)
|
project_id = self.request.QUERY_PARAMS.get("project", None)
|
||||||
if self.action == "list" and project_id is not None:
|
if self.action == "list" and project_id is not None:
|
||||||
project = get_object_or_404(models.Project, pk=project_id)
|
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:
|
if use_admin_serializer:
|
||||||
return self.admin_serializer_class
|
return self.admin_serializer_class
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
from taiga.base.api.permissions import TaigaResourcePermission
|
from taiga.base.api.permissions import TaigaResourcePermission
|
||||||
from taiga.base.api.permissions import HasProjectPerm
|
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 AllowAny
|
||||||
from taiga.base.api.permissions import IsSuperUser
|
from taiga.base.api.permissions import IsSuperUser
|
||||||
|
|
||||||
|
@ -27,39 +27,39 @@ from taiga.base.api.permissions import IsSuperUser
|
||||||
#######################################################
|
#######################################################
|
||||||
|
|
||||||
class UserStoryCustomAttributePermission(TaigaResourcePermission):
|
class UserStoryCustomAttributePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class TaskCustomAttributePermission(TaigaResourcePermission):
|
class TaskCustomAttributePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class IssueCustomAttributePermission(TaigaResourcePermission):
|
class IssueCustomAttributePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
|
@ -67,7 +67,7 @@ class IssueCustomAttributePermission(TaigaResourcePermission):
|
||||||
#######################################################
|
#######################################################
|
||||||
|
|
||||||
class UserStoryCustomAttributesValuesPermission(TaigaResourcePermission):
|
class UserStoryCustomAttributesValuesPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_us')
|
retrieve_perms = HasProjectPerm('view_us')
|
||||||
update_perms = HasProjectPerm('modify_us')
|
update_perms = HasProjectPerm('modify_us')
|
||||||
|
@ -75,7 +75,7 @@ class UserStoryCustomAttributesValuesPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
|
|
||||||
class TaskCustomAttributesValuesPermission(TaigaResourcePermission):
|
class TaskCustomAttributesValuesPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_tasks')
|
retrieve_perms = HasProjectPerm('view_tasks')
|
||||||
update_perms = HasProjectPerm('modify_task')
|
update_perms = HasProjectPerm('modify_task')
|
||||||
|
@ -83,7 +83,7 @@ class TaskCustomAttributesValuesPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
|
|
||||||
class IssueCustomAttributesValuesPermission(TaigaResourcePermission):
|
class IssueCustomAttributesValuesPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_issues')
|
retrieve_perms = HasProjectPerm('view_issues')
|
||||||
update_perms = HasProjectPerm('modify_issue')
|
update_perms = HasProjectPerm('modify_issue')
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsProjectOwner, AllowAny,
|
IsProjectAdmin, AllowAny,
|
||||||
IsObjectOwner, PermissionComponent)
|
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
|
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)
|
model = get_model_from_key(obj.key)
|
||||||
pk = get_pk_from_key(obj.key)
|
pk = get_pk_from_key(obj.key)
|
||||||
project = model.objects.get(pk=pk)
|
project = model.objects.get(pk=pk)
|
||||||
return is_project_owner(request.user, project)
|
return is_project_admin(request.user, project)
|
||||||
|
|
||||||
class UserStoryHistoryPermission(TaigaResourcePermission):
|
class UserStoryHistoryPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
|
|
|
@ -17,12 +17,12 @@
|
||||||
|
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsProjectOwner, PermissionComponent,
|
IsProjectAdmin, PermissionComponent,
|
||||||
AllowAny, IsAuthenticated, IsSuperUser)
|
AllowAny, IsAuthenticated, IsSuperUser)
|
||||||
|
|
||||||
|
|
||||||
class IssuePermission(TaigaResourcePermission):
|
class IssuePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_issues')
|
retrieve_perms = HasProjectPerm('view_issues')
|
||||||
create_perms = HasProjectPerm('add_issue')
|
create_perms = HasProjectPerm('add_issue')
|
||||||
|
@ -49,14 +49,14 @@ class HasIssueIdUrlParam(PermissionComponent):
|
||||||
|
|
||||||
|
|
||||||
class IssueVotersPermission(TaigaResourcePermission):
|
class IssueVotersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_issues')
|
retrieve_perms = HasProjectPerm('view_issues')
|
||||||
list_perms = HasProjectPerm('view_issues')
|
list_perms = HasProjectPerm('view_issues')
|
||||||
|
|
||||||
|
|
||||||
class IssueWatchersPermission(TaigaResourcePermission):
|
class IssueWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_issues')
|
retrieve_perms = HasProjectPerm('view_issues')
|
||||||
list_perms = HasProjectPerm('view_issues')
|
list_perms = HasProjectPerm('view_issues')
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsAuthenticated, IsProjectOwner, AllowAny,
|
IsAuthenticated, IsProjectAdmin, AllowAny,
|
||||||
IsSuperUser)
|
IsSuperUser)
|
||||||
|
|
||||||
|
|
||||||
class MilestonePermission(TaigaResourcePermission):
|
class MilestonePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_milestones')
|
retrieve_perms = HasProjectPerm('view_milestones')
|
||||||
create_perms = HasProjectPerm('add_milestone')
|
create_perms = HasProjectPerm('add_milestone')
|
||||||
|
@ -34,7 +34,7 @@ class MilestonePermission(TaigaResourcePermission):
|
||||||
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_milestones')
|
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_milestones')
|
||||||
|
|
||||||
class MilestoneWatchersPermission(TaigaResourcePermission):
|
class MilestoneWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_milestones')
|
retrieve_perms = HasProjectPerm('view_milestones')
|
||||||
list_perms = HasProjectPerm('view_milestones')
|
list_perms = HasProjectPerm('view_milestones')
|
||||||
|
|
|
@ -20,7 +20,7 @@ from django.utils.translation import ugettext as _
|
||||||
from taiga.base.api.permissions import TaigaResourcePermission
|
from taiga.base.api.permissions import TaigaResourcePermission
|
||||||
from taiga.base.api.permissions import HasProjectPerm
|
from taiga.base.api.permissions import HasProjectPerm
|
||||||
from taiga.base.api.permissions import IsAuthenticated
|
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 AllowAny
|
||||||
from taiga.base.api.permissions import IsSuperUser
|
from taiga.base.api.permissions import IsSuperUser
|
||||||
from taiga.base.api.permissions import PermissionComponent
|
from taiga.base.api.permissions import PermissionComponent
|
||||||
|
@ -56,19 +56,19 @@ class ProjectPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
by_slug_perms = HasProjectPerm('view_project')
|
by_slug_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsAuthenticated()
|
create_perms = IsAuthenticated()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
modules_perms = IsProjectOwner()
|
modules_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
change_logo_perms = IsProjectOwner()
|
change_logo_perms = IsProjectAdmin()
|
||||||
remove_logo_perms = IsProjectOwner()
|
remove_logo_perms = IsProjectAdmin()
|
||||||
stats_perms = HasProjectPerm('view_project')
|
stats_perms = HasProjectPerm('view_project')
|
||||||
member_stats_perms = HasProjectPerm('view_project')
|
member_stats_perms = HasProjectPerm('view_project')
|
||||||
issues_stats_perms = HasProjectPerm('view_project')
|
issues_stats_perms = HasProjectPerm('view_project')
|
||||||
regenerate_userstories_csv_uuid_perms = IsProjectOwner()
|
regenerate_userstories_csv_uuid_perms = IsProjectAdmin()
|
||||||
regenerate_issues_csv_uuid_perms = IsProjectOwner()
|
regenerate_issues_csv_uuid_perms = IsProjectAdmin()
|
||||||
regenerate_tasks_csv_uuid_perms = IsProjectOwner()
|
regenerate_tasks_csv_uuid_perms = IsProjectAdmin()
|
||||||
tags_perms = HasProjectPerm('view_project')
|
tags_perms = HasProjectPerm('view_project')
|
||||||
tags_colors_perms = HasProjectPerm('view_project')
|
tags_colors_perms = HasProjectPerm('view_project')
|
||||||
like_perms = IsAuthenticated() & HasProjectPerm('view_project')
|
like_perms = IsAuthenticated() & HasProjectPerm('view_project')
|
||||||
|
@ -77,21 +77,21 @@ class ProjectPermission(TaigaResourcePermission):
|
||||||
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_project')
|
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_project')
|
||||||
create_template_perms = IsSuperUser()
|
create_template_perms = IsSuperUser()
|
||||||
leave_perms = CanLeaveProject()
|
leave_perms = CanLeaveProject()
|
||||||
transfer_request_perms = IsProjectOwner()
|
transfer_request_perms = IsProjectAdmin()
|
||||||
transfer_start_perms = IsMainOwner()
|
transfer_start_perms = IsMainOwner()
|
||||||
transfer_reject_perms = IsProjectOwner()
|
transfer_reject_perms = IsProjectAdmin()
|
||||||
transfer_accept_perms = IsProjectOwner()
|
transfer_accept_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class ProjectFansPermission(TaigaResourcePermission):
|
class ProjectFansPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
list_perms = HasProjectPerm('view_project')
|
list_perms = HasProjectPerm('view_project')
|
||||||
|
|
||||||
|
|
||||||
class ProjectWatchersPermission(TaigaResourcePermission):
|
class ProjectWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
list_perms = HasProjectPerm('view_project')
|
list_perms = HasProjectPerm('view_project')
|
||||||
|
@ -99,89 +99,89 @@ class ProjectWatchersPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
class MembershipPermission(TaigaResourcePermission):
|
class MembershipPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_create_perms = IsProjectOwner()
|
bulk_create_perms = IsProjectAdmin()
|
||||||
resend_invitation_perms = IsProjectOwner()
|
resend_invitation_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
# User Stories
|
# User Stories
|
||||||
|
|
||||||
class PointsPermission(TaigaResourcePermission):
|
class PointsPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class UserStoryStatusPermission(TaigaResourcePermission):
|
class UserStoryStatusPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
# Tasks
|
# Tasks
|
||||||
|
|
||||||
class TaskStatusPermission(TaigaResourcePermission):
|
class TaskStatusPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
# Issues
|
# Issues
|
||||||
|
|
||||||
class SeverityPermission(TaigaResourcePermission):
|
class SeverityPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class PriorityPermission(TaigaResourcePermission):
|
class PriorityPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class IssueStatusPermission(TaigaResourcePermission):
|
class IssueStatusPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class IssueTypePermission(TaigaResourcePermission):
|
class IssueTypePermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
bulk_update_order_perms = IsProjectOwner()
|
bulk_update_order_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
# Project Templates
|
# Project Templates
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsProjectOwner, AllowAny)
|
IsProjectAdmin, AllowAny)
|
||||||
|
|
||||||
|
|
||||||
class ResolverPermission(TaigaResourcePermission):
|
class ResolverPermission(TaigaResourcePermission):
|
||||||
|
|
|
@ -33,7 +33,7 @@ from taiga.users.serializers import ProjectRoleSerializer
|
||||||
from taiga.users.validators import RoleExistsValidator
|
from taiga.users.validators import RoleExistsValidator
|
||||||
|
|
||||||
from taiga.permissions.service import get_user_project_permissions
|
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 taiga.projects.mixins.serializers import ValidateDuplicatedNameInProjectMixin
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
@ -241,7 +241,7 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
|
||||||
anon_permissions = PgArrayField(required=False)
|
anon_permissions = PgArrayField(required=False)
|
||||||
public_permissions = PgArrayField(required=False)
|
public_permissions = PgArrayField(required=False)
|
||||||
my_permissions = serializers.SerializerMethodField("get_my_permissions")
|
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")
|
i_am_member = serializers.SerializerMethodField("get_i_am_member")
|
||||||
|
|
||||||
tags = TagsField(default=[], required=False)
|
tags = TagsField(default=[], required=False)
|
||||||
|
@ -266,9 +266,9 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
|
||||||
return get_user_project_permissions(self.context["request"].user, obj)
|
return get_user_project_permissions(self.context["request"].user, obj)
|
||||||
return []
|
return []
|
||||||
|
|
||||||
def get_i_am_owner(self, obj):
|
def get_i_am_admin(self, obj):
|
||||||
if "request" in self.context:
|
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
|
return False
|
||||||
|
|
||||||
def get_i_am_member(self, obj):
|
def get_i_am_member(self, obj):
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsAuthenticated, IsProjectOwner, AllowAny,
|
IsAuthenticated, IsProjectAdmin, AllowAny,
|
||||||
IsSuperUser)
|
IsSuperUser)
|
||||||
|
|
||||||
|
|
||||||
class TaskPermission(TaigaResourcePermission):
|
class TaskPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_tasks')
|
retrieve_perms = HasProjectPerm('view_tasks')
|
||||||
create_perms = HasProjectPerm('add_task')
|
create_perms = HasProjectPerm('add_task')
|
||||||
|
@ -39,14 +39,14 @@ class TaskPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
|
|
||||||
class TaskVotersPermission(TaigaResourcePermission):
|
class TaskVotersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_tasks')
|
retrieve_perms = HasProjectPerm('view_tasks')
|
||||||
list_perms = HasProjectPerm('view_tasks')
|
list_perms = HasProjectPerm('view_tasks')
|
||||||
|
|
||||||
|
|
||||||
class TaskWatchersPermission(TaigaResourcePermission):
|
class TaskWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_tasks')
|
retrieve_perms = HasProjectPerm('view_tasks')
|
||||||
list_perms = HasProjectPerm('view_tasks')
|
list_perms = HasProjectPerm('view_tasks')
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsAuthenticated, IsProjectOwner,
|
IsAuthenticated, IsProjectAdmin,
|
||||||
AllowAny, IsSuperUser)
|
AllowAny, IsSuperUser)
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,14 +38,14 @@ class UserStoryPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
|
|
||||||
class UserStoryVotersPermission(TaigaResourcePermission):
|
class UserStoryVotersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_us')
|
retrieve_perms = HasProjectPerm('view_us')
|
||||||
list_perms = HasProjectPerm('view_us')
|
list_perms = HasProjectPerm('view_us')
|
||||||
|
|
||||||
|
|
||||||
class UserStoryWatchersPermission(TaigaResourcePermission):
|
class UserStoryWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_us')
|
retrieve_perms = HasProjectPerm('view_us')
|
||||||
list_perms = HasProjectPerm('view_us')
|
list_perms = HasProjectPerm('view_us')
|
||||||
|
|
|
@ -16,12 +16,12 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
from taiga.base.api.permissions import (TaigaResourcePermission, HasProjectPerm,
|
||||||
IsAuthenticated, IsProjectOwner, AllowAny,
|
IsAuthenticated, IsProjectAdmin, AllowAny,
|
||||||
IsSuperUser)
|
IsSuperUser)
|
||||||
|
|
||||||
|
|
||||||
class WikiPagePermission(TaigaResourcePermission):
|
class WikiPagePermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_wiki_pages')
|
retrieve_perms = HasProjectPerm('view_wiki_pages')
|
||||||
by_slug_perms = HasProjectPerm('view_wiki_pages')
|
by_slug_perms = HasProjectPerm('view_wiki_pages')
|
||||||
|
@ -36,14 +36,14 @@ class WikiPagePermission(TaigaResourcePermission):
|
||||||
|
|
||||||
|
|
||||||
class WikiPageWatchersPermission(TaigaResourcePermission):
|
class WikiPageWatchersPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_wiki_pages')
|
retrieve_perms = HasProjectPerm('view_wiki_pages')
|
||||||
list_perms = HasProjectPerm('view_wiki_pages')
|
list_perms = HasProjectPerm('view_wiki_pages')
|
||||||
|
|
||||||
|
|
||||||
class WikiLinkPermission(TaigaResourcePermission):
|
class WikiLinkPermission(TaigaResourcePermission):
|
||||||
enought_perms = IsProjectOwner() | IsSuperUser()
|
enought_perms = IsProjectAdmin() | IsSuperUser()
|
||||||
global_perms = None
|
global_perms = None
|
||||||
retrieve_perms = HasProjectPerm('view_wiki_links')
|
retrieve_perms = HasProjectPerm('view_wiki_links')
|
||||||
create_perms = HasProjectPerm('add_wiki_link')
|
create_perms = HasProjectPerm('add_wiki_link')
|
||||||
|
|
|
@ -20,7 +20,7 @@ from taiga.base.api.permissions import IsSuperUser
|
||||||
from taiga.base.api.permissions import AllowAny
|
from taiga.base.api.permissions import AllowAny
|
||||||
from taiga.base.api.permissions import IsAuthenticated
|
from taiga.base.api.permissions import IsAuthenticated
|
||||||
from taiga.base.api.permissions import HasProjectPerm
|
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
|
from taiga.base.api.permissions import PermissionComponent
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,8 +54,8 @@ class UserPermission(TaigaResourcePermission):
|
||||||
|
|
||||||
class RolesPermission(TaigaResourcePermission):
|
class RolesPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = HasProjectPerm('view_project')
|
retrieve_perms = HasProjectPerm('view_project')
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
|
|
|
@ -15,28 +15,28 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# 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/>.
|
# 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)
|
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):
|
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):
|
class WebhookPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = IsProjectOwner()
|
retrieve_perms = IsProjectAdmin()
|
||||||
create_perms = IsProjectOwner()
|
create_perms = IsProjectAdmin()
|
||||||
update_perms = IsProjectOwner()
|
update_perms = IsProjectAdmin()
|
||||||
partial_update_perms = IsProjectOwner()
|
partial_update_perms = IsProjectAdmin()
|
||||||
destroy_perms = IsProjectOwner()
|
destroy_perms = IsProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
test_perms = IsProjectOwner()
|
test_perms = IsProjectAdmin()
|
||||||
|
|
||||||
|
|
||||||
class WebhookLogPermission(TaigaResourcePermission):
|
class WebhookLogPermission(TaigaResourcePermission):
|
||||||
retrieve_perms = IsWebhookProjectOwner()
|
retrieve_perms = IsWebhookProjectAdmin()
|
||||||
list_perms = AllowAny()
|
list_perms = AllowAny()
|
||||||
resend_perms = IsWebhookProjectOwner()
|
resend_perms = IsWebhookProjectAdmin()
|
||||||
|
|
Loading…
Reference in New Issue