Skip to content

Commit 0180a33

Browse files
authored
Merge pull request #227 from edx/pwnage101/ENT-11568-fix-role-assignment-oneline
fix: Finally replace awkward one-liner to create system-wide enterprise role assignments
2 parents 67f7183 + 7cee2a8 commit 0180a33

5 files changed

Lines changed: 7 additions & 8 deletions

File tree

enterprise/provision.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,6 @@ docker compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && pyth
66
cat enterprise/worker_permissions.py | docker compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms shell --settings=devstack'
77

88
docker compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack create_dot_application --grant-type client-credentials --client-id "enterprise-backend-service-key" --client-secret "enterprise-backend-service-secret" enterprise-backend-service enterprise_worker'
9+
10+
# Create system wide enterprise role assignment for the enterprise service worker
11+
docker compose exec -T lms bash -e -c 'source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack assign_system_wide_enterprise_role --username enterprise_worker --role enterprise_openedx_operator --all-contexts'

provision-enterprise-access.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ docker compose exec -T ${name} bash -e -c "echo 'from django.contrib.auth import
2222
./provision-ida-user.sh ${name} ${name} ${port}
2323

2424
# Create system wide enterprise role assignment
25-
# TODO: this is a pretty complex oneline, we should probably eventually convert this to a management command.
2625
echo -e "${GREEN}Creating system wide enterprise user role assignment for ${name}...${NC}"
27-
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && echo 'from django.contrib.auth import get_user_model; from enterprise.models import SystemWideEnterpriseUserRoleAssignment, SystemWideEnterpriseRole; User = get_user_model(); worker_user = User.objects.get(username=\"${name}_worker\"); operator_role = SystemWideEnterpriseRole.objects.get(name=\"enterprise_openedx_operator\"); assignment = SystemWideEnterpriseUserRoleAssignment.objects.get_or_create(user=worker_user, role=operator_role, applies_to_all_contexts=True);' | /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms shell" -- lms
26+
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack assign_system_wide_enterprise_role --username ${name}_worker --role enterprise_openedx_operator --all-contexts"
2827

2928
make dev.restart-devserver.enterprise-access

provision-enterprise-catalog.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ docker compose exec -T ${name} bash -c "echo 'from django.contrib.auth import ge
1717
./provision-ida-user.sh ${name} ${name} ${port}
1818

1919
# Create system wide enterprise role assignment
20-
# TODO: this is a pretty complex oneline, we should probably eventually convert this to a management command.
2120
echo -e "${GREEN}Creating system wide enterprise user role assignment for ${name}...${NC}"
22-
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && echo 'from django.contrib.auth import get_user_model; from enterprise.models import SystemWideEnterpriseUserRoleAssignment, SystemWideEnterpriseRole; User = get_user_model(); worker_user = User.objects.get(username=\"${name}_worker\"); operator_role = SystemWideEnterpriseRole.objects.get(name=\"enterprise_openedx_operator\"); assignment = SystemWideEnterpriseUserRoleAssignment.objects.get_or_create(user=worker_user, role=operator_role, applies_to_all_contexts=True);' | /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms shell" -- lms
21+
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack assign_system_wide_enterprise_role --username ${name}_worker --role enterprise_openedx_operator --all-contexts"
2322

2423
# Restart enterprise.catalog app and worker containers
2524
docker compose restart enterprise-catalog enterprise-catalog-worker

provision-enterprise-subsidy.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ echo -e "${GREEN}Provisioning ${name}_worker in LMS...${NC}"
2323
./provision-ida-user.sh ${name} ${name} ${port}
2424

2525
# Create system wide enterprise role assignment
26-
# TODO: this is a pretty complex oneline, we should probably eventually convert this to a management command.
2726
echo -e "${GREEN}Creating system wide enterprise user role assignment for ${name}...${NC}"
28-
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && echo 'from django.contrib.auth import get_user_model; from enterprise.models import SystemWideEnterpriseUserRoleAssignment, SystemWideEnterpriseRole; User = get_user_model(); worker_user = User.objects.get(username=\"${name}_worker\"); operator_role = SystemWideEnterpriseRole.objects.get(name=\"enterprise_openedx_operator\"); assignment = SystemWideEnterpriseUserRoleAssignment.objects.get_or_create(user=worker_user, role=operator_role, applies_to_all_contexts=True);' | /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms shell" -- lms
27+
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack assign_system_wide_enterprise_role --username ${name}_worker --role enterprise_openedx_operator --all-contexts"
2928

3029
make dev.restart-devserver.enterprise-subsidy

provision-license-manager.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ docker compose exec -T ${name} bash -e -c "echo 'from django.contrib.auth import
3030
./provision-ida-user.sh ${name} ${name} $port
3131

3232
# Create system wide enterprise role assignment
33-
# TODO: this is a pretty complex oneline, we should probably eventually convert this to a management command.
3433
echo -e "${GREEN}Creating system wide enterprise user role assignment for ${name}...${NC}"
35-
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && echo 'from django.contrib.auth import get_user_model; from enterprise.models import SystemWideEnterpriseUserRoleAssignment, SystemWideEnterpriseRole; User = get_user_model(); worker_user = User.objects.get(username=\"${name}_worker\"); operator_role = SystemWideEnterpriseRole.objects.get(name=\"enterprise_openedx_operator\"); assignment = SystemWideEnterpriseUserRoleAssignment.objects.get_or_create(user=worker_user, role=operator_role, applies_to_all_contexts=True);' | /edx/app/edxapp/venvs/edxapp/bin/python /edx/app/edxapp/edx-platform/manage.py lms shell" -- lms
34+
docker compose exec -T lms bash -e -c "source /edx/app/edxapp/edxapp_env && python /edx/app/edxapp/edx-platform/manage.py lms --settings=devstack assign_system_wide_enterprise_role --username ${name}_worker --role enterprise_openedx_operator --all-contexts"
3635

3736
make dev.restart-devserver.license-manager

0 commit comments

Comments
 (0)