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 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):

View File

@ -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()

View File

@ -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

View File

@ -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

View File

@ -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')

View File

@ -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')

View File

@ -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')

View File

@ -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')

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 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

View File

@ -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):

View File

@ -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):

View File

@ -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')

View File

@ -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')

View File

@ -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')

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 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()

View File

@ -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()