From 1dbedf00bedbf361b661babb7cb65a76a9ceddb6 Mon Sep 17 00:00:00 2001 From: Sapna Mysore Date: Tue, 23 Jan 2018 12:05:23 -0500 Subject: [PATCH 1/4] Fixed the logging to handle TypeError - converting any keys that arent's strings to string --- manage_people/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage_people/utils.py b/manage_people/utils.py index cc0c74f..b4d9da0 100644 --- a/manage_people/utils.py +++ b/manage_people/utils.py @@ -219,7 +219,7 @@ def get_user_role_to_canvas_role_map(account_id='self'): logger.debug( u"Caching user_role_id:Canvas role map for Canvas account %s: %s", - account_id, json.dumps(role_map)) + account_id, json.dumps(str(role_map)).replace("'", '"')) cache.set(cache_key, role_map) return role_map From 3714eeb4140df5d86ff5eb6bf977ca0a1fa2c577 Mon Sep 17 00:00:00 2001 From: Sapna Mysore Date: Tue, 23 Jan 2018 12:08:05 -0500 Subject: [PATCH 2/4] Added migration to handle the new role to be added to Manage People Role table --- manage_people/migrations/0004_mp_tf_role.py | 44 +++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 manage_people/migrations/0004_mp_tf_role.py diff --git a/manage_people/migrations/0004_mp_tf_role.py b/manage_people/migrations/0004_mp_tf_role.py new file mode 100644 index 0000000..80be895 --- /dev/null +++ b/manage_people/migrations/0004_mp_tf_role.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.apps import apps as real_apps +from django.db import migrations, models, transaction + +MANAGE_PEOPLE_ROLE_DATA = [ + # NOTE: + # 1. this is similar to 001_mp_initial. This handles the new TF role + # 2.this data does not need to vary between environments, as the ids + # in the user_role table are the same in both qa and prod oracle + # (user_role_id, xid_allowed) + + (6, False) +] + + + +def populate_manage_people_role(apps, schema_editor): + ManagePeopleRole = apps.get_model('manage_people', 'ManagePeopleRole') + fields = ('user_role_id', 'xid_allowed') + with transaction.atomic(): # wrap all the inserts in a transaction + for values in MANAGE_PEOPLE_ROLE_DATA: + ManagePeopleRole.objects.create(**dict(zip(fields, values))) + + +def reverse_manage_people_role_load(apps, schema_editor): + ManagePeopleRole = apps.get_model('manage_people', 'ManagePeopleRole') + ManagePeopleRole.objects.filter(user_role_id=6).delete() + + +class Migration(migrations.Migration): + dependencies = [ + ('manage_people', '0003_remove_managepeoplerole_canvas_role_label'), + + ] + + operations = [ + + migrations.RunPython( + code=populate_manage_people_role, + reverse_code=reverse_manage_people_role_load, + ) + ] From cbd3ec893feb4c491038dfec8bb87dcf88e2fd26 Mon Sep 17 00:00:00 2001 From: Sapna Mysore Date: Tue, 23 Jan 2018 12:08:54 -0500 Subject: [PATCH 3/4] cleanup --- manage_people/migrations/0004_mp_tf_role.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manage_people/migrations/0004_mp_tf_role.py b/manage_people/migrations/0004_mp_tf_role.py index 80be895..0aa22fd 100644 --- a/manage_people/migrations/0004_mp_tf_role.py +++ b/manage_people/migrations/0004_mp_tf_role.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- from __future__ import unicode_literals -from django.apps import apps as real_apps from django.db import migrations, models, transaction MANAGE_PEOPLE_ROLE_DATA = [ # NOTE: - # 1. this is similar to 001_mp_initial. This handles the new TF role + # 1. This is similar to 001_mp_initial. This handles the new TF role(user_role_id=6) # 2.this data does not need to vary between environments, as the ids # in the user_role table are the same in both qa and prod oracle # (user_role_id, xid_allowed) From a36a085b39fe9d36fc7e22e503dfe06f8e0bfc01 Mon Sep 17 00:00:00 2001 From: Sapna Mysore Date: Tue, 23 Jan 2018 12:51:39 -0500 Subject: [PATCH 4/4] Added migrations for school_allowed_role for the 2 schools that currently need it --- manage_people/migrations/0004_mp_tf_role.py | 26 ++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/manage_people/migrations/0004_mp_tf_role.py b/manage_people/migrations/0004_mp_tf_role.py index 0aa22fd..17fc1c7 100644 --- a/manage_people/migrations/0004_mp_tf_role.py +++ b/manage_people/migrations/0004_mp_tf_role.py @@ -13,7 +13,12 @@ (6, False) ] - +# Note: This is similar to 002_mp_school_allowed_role. This handles TF role +# for the 2 schools that have currently requested it +SCHOOL_ALOWED_ROLE_DATA = [ + ('colgsas', 6, False), + ('hds', 6, False) +] def populate_manage_people_role(apps, schema_editor): ManagePeopleRole = apps.get_model('manage_people', 'ManagePeopleRole') @@ -28,6 +33,20 @@ def reverse_manage_people_role_load(apps, schema_editor): ManagePeopleRole.objects.filter(user_role_id=6).delete() + +def populate_school_allowed_role(apps, schema_editor): + SchoolAllowedRole = apps.get_model('manage_people', 'SchoolAllowedRole') + fields = ('school_id', 'user_role_id', 'xid_allowed') + with transaction.atomic(): # wrap all the inserts in a transaction + for values in SCHOOL_ALOWED_ROLE_DATA: + SchoolAllowedRole.objects.create(**dict(zip(fields, values))) + + +def reverse_load_school_role(apps, schema_editor): + SchoolAllowedRole = apps.get_model('manage_people', 'SchoolAllowedRole') + SchoolAllowedRole.objects.filter(user_role_id=6).delete() + + class Migration(migrations.Migration): dependencies = [ ('manage_people', '0003_remove_managepeoplerole_canvas_role_label'), @@ -39,5 +58,10 @@ class Migration(migrations.Migration): migrations.RunPython( code=populate_manage_people_role, reverse_code=reverse_manage_people_role_load, + ), + + migrations.RunPython( + code=populate_school_allowed_role, + reverse_code=reverse_load_school_role, ) ]