Skip to content

Commit

Permalink
feat: add canSendToAllInProject permission to myAdminProfile query
Browse files Browse the repository at this point in the history
KK-1039
  • Loading branch information
nikomakela committed Oct 17, 2024
1 parent d15578b commit 462f72c
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 6 deletions.
6 changes: 6 additions & 0 deletions projects/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
class ProjectPermissionsType(ObjectType):
publish = graphene.Boolean()
manage_event_groups = graphene.Boolean()
can_send_to_all_in_project = graphene.Boolean()

@staticmethod
def resolve_publish(parent, info):
Expand All @@ -24,6 +25,11 @@ def resolve_manage_event_groups(parent, info):
project, user = parent
return user.can_manage_event_groups_in_project(project)

@staticmethod
def resolve_can_send_to_all_in_project(parent, info):
project, user = parent
return user.can_send_messages_to_all_in_project(project)


class ProjectTranslationType(DjangoObjectType):
language_code = LanguageEnum(required=True)
Expand Down
1 change: 1 addition & 0 deletions users/tests/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
myPermissions {
publish
manageEventGroups
canSendToAllInProject
}
}
}
Expand Down
6 changes: 6 additions & 0 deletions users/tests/snapshots/snap_test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': True,
'manageEventGroups': True,
'publish': True
},
Expand All @@ -114,6 +115,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': True,
'manageEventGroups': True,
'publish': True
},
Expand All @@ -123,6 +125,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': True,
'manageEventGroups': True,
'publish': True
},
Expand All @@ -132,6 +135,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': True,
'manageEventGroups': True,
'publish': True
},
Expand All @@ -152,6 +156,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': False,
'manageEventGroups': False,
'publish': False
},
Expand All @@ -161,6 +166,7 @@
{
'node': {
'myPermissions': {
'canSendToAllInProject': True,
'manageEventGroups': True,
'publish': True
},
Expand Down
29 changes: 23 additions & 6 deletions users/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@
from common.utils import get_global_id
from kukkuu.consts import INVALID_EMAIL_FORMAT_ERROR, VERIFICATION_TOKEN_INVALID_ERROR
from projects.factories import ProjectFactory
from projects.models import (
PERM_CAN_ADMINISTRATE_PROJECT,
PERM_CAN_MANAGE_EVENT_GROUPS,
PERM_CAN_PUBLISH_EVENTS,
PERM_CAN_SEND_MESSAGE_TO_ALL_IN_PROJECT,
ProjectPermission,
)
from users.factories import GuardianFactory
from users.models import Guardian
from users.tests.mutations import (
Expand Down Expand Up @@ -406,14 +413,24 @@ def test_my_admin_profile_project_admin(
project_2 = ProjectFactory(
year=2022, name="project where base admin object perm and other object perms"
)
assign_perm("admin", user_api_client.user, [project_1, project_2])
assign_perm("publish", user_api_client.user, project_2)
assign_perm("manage_event_groups", user_api_client.user, project_2)
assign_perm(
ProjectPermission.ADMIN.value, user_api_client.user, [project_1, project_2]
)
assign_perm(ProjectPermission.PUBLISH.value, user_api_client.user, project_2)
assign_perm(
ProjectPermission.MANAGE_EVENT_GROUPS.value, user_api_client.user, project_2
)
assign_perm(
ProjectPermission.SEND_MESSAGE_TO_ALL_IN_PROJECT.value,
user_api_client.user,
project_2,
)

if has_also_model_perms:
assign_perm("projects.admin", user_api_client.user)
assign_perm("projects.publish", user_api_client.user)
assign_perm("projects.manage_event_groups", user_api_client.user)
assign_perm(PERM_CAN_ADMINISTRATE_PROJECT, user_api_client.user)
assign_perm(PERM_CAN_PUBLISH_EVENTS, user_api_client.user)
assign_perm(PERM_CAN_MANAGE_EVENT_GROUPS, user_api_client.user)
assign_perm(PERM_CAN_SEND_MESSAGE_TO_ALL_IN_PROJECT, user_api_client.user)

ProjectFactory(year=2030, name="project where no object perms")

Expand Down

0 comments on commit 462f72c

Please sign in to comment.