Commit f9e64f3c by Waheed Ahmed

Assign view permissions to PC and MKT groups as well.

ECOM-7493
parent dd625bfb
...@@ -25,20 +25,33 @@ class OrganizationExtensionAdmin(GuardedModelAdmin): ...@@ -25,20 +25,33 @@ class OrganizationExtensionAdmin(GuardedModelAdmin):
obj.save() obj.save()
# Assign EDIT/VIEW permissions to organization group. # Assign EDIT/VIEW permissions to organization group.
permissions = [ course_team_permissions = [
OrganizationExtension.VIEW_COURSE, OrganizationExtension.VIEW_COURSE,
OrganizationExtension.EDIT_COURSE, OrganizationExtension.EDIT_COURSE,
OrganizationExtension.VIEW_COURSE_RUN, OrganizationExtension.VIEW_COURSE_RUN,
OrganizationExtension.EDIT_COURSE_RUN OrganizationExtension.EDIT_COURSE_RUN
] ]
for permission in permissions: self.assign_permissions(obj, obj.group, course_team_permissions)
assign_perm(permission, obj.group, obj)
# Assign EDIT_COURSE permission to Marketing Reviewers group. # Assign EDIT_COURSE permission to Marketing Reviewers group.
assign_perm(OrganizationExtension.EDIT_COURSE, Group.objects.get(name=REVIEWER_GROUP_NAME), obj) marketing_permissions = [
OrganizationExtension.EDIT_COURSE,
OrganizationExtension.VIEW_COURSE,
OrganizationExtension.VIEW_COURSE_RUN
]
self.assign_permissions(obj, Group.objects.get(name=REVIEWER_GROUP_NAME), marketing_permissions)
# Assign EDIT_COURSE_RUN permission to Project Coordinators group. # Assign EDIT_COURSE_RUN permission to Project Coordinators group.
assign_perm(OrganizationExtension.EDIT_COURSE_RUN, Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME), obj) pc_permissions = [
OrganizationExtension.VIEW_COURSE,
OrganizationExtension.EDIT_COURSE_RUN,
OrganizationExtension.VIEW_COURSE_RUN
]
self.assign_permissions(obj, Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME), pc_permissions)
def assign_permissions(self, obj, group, permissions):
for permission in permissions:
assign_perm(permission, group, obj)
@admin.register(UserAttributes) @admin.register(UserAttributes)
......
...@@ -100,18 +100,32 @@ class OrganizationExtensionAdminTests(TestCase): ...@@ -100,18 +100,32 @@ class OrganizationExtensionAdminTests(TestCase):
organization_extension = OrganizationExtension.objects.get(organization=test_organization, group=test_group) organization_extension = OrganizationExtension.objects.get(organization=test_organization, group=test_group)
expected_permissions = [ course_team_permissions = [
OrganizationExtension.VIEW_COURSE, OrganizationExtension.VIEW_COURSE,
OrganizationExtension.EDIT_COURSE, OrganizationExtension.EDIT_COURSE,
OrganizationExtension.VIEW_COURSE_RUN, OrganizationExtension.VIEW_COURSE_RUN,
OrganizationExtension.EDIT_COURSE_RUN OrganizationExtension.EDIT_COURSE_RUN
] ]
self._assert_permissions(organization_extension, test_group, course_team_permissions)
course_team_permissions = get_group_perms(test_group, organization_extension) marketing_permissions = [
self.assertEqual(sorted(course_team_permissions), sorted(expected_permissions)) OrganizationExtension.VIEW_COURSE,
OrganizationExtension.EDIT_COURSE,
OrganizationExtension.VIEW_COURSE_RUN
]
self._assert_permissions(
organization_extension, Group.objects.get(name=REVIEWER_GROUP_NAME), marketing_permissions
)
marketing_permissions = get_group_perms(Group.objects.get(name=REVIEWER_GROUP_NAME), organization_extension) pc_permissions = [
self.assertEqual(list(marketing_permissions), [OrganizationExtension.EDIT_COURSE]) OrganizationExtension.VIEW_COURSE,
OrganizationExtension.EDIT_COURSE_RUN,
OrganizationExtension.VIEW_COURSE_RUN
]
self._assert_permissions(
organization_extension, Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME), pc_permissions
)
pc_permissions = get_group_perms(Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME), organization_extension) def _assert_permissions(self, organization_extension, group, expected_permissions):
self.assertEqual(list(pc_permissions), [OrganizationExtension.EDIT_COURSE_RUN]) permissions = get_group_perms(group, organization_extension)
self.assertEqual(sorted(permissions), sorted(expected_permissions))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment