diff --git a/djangoldp_circle/migrations/0037_auto_20231004_1523.py b/djangoldp_circle/migrations/0037_auto_20231004_1523.py index 7a00f9994879f3339b5155b7e905c1bdef71e371..53187b551cfefd3ebbc3ecb1b524a47498761ebe 100644 --- a/djangoldp_circle/migrations/0037_auto_20231004_1523.py +++ b/djangoldp_circle/migrations/0037_auto_20231004_1523.py @@ -5,11 +5,15 @@ from guardian.shortcuts import assign_perm def create_group(apps, circle, field_name, permissions): Group = apps.get_model("auth", "Group") Permission = apps.get_model("auth", "Permission") + GroupObjectPermission = apps.get_model("guardian", "GroupObjectPermission") + ContentType = apps.get_model("contenttypes", "ContentType") group = Group.objects.create(name=f'LDP_{circle._meta.model_name}_{field_name}_{circle.id}') setattr(circle, field_name, group) for perm_name in permissions: - perm = Permission.objects.get(content_type__app_label='djangoldp_circle', codename=f'{perm_name}_circle') - group.permissions.add(perm) + ctype = ContentType.objects.get(model='circle') + permission = Permission.objects.get(content_type=ctype, codename=f'{perm_name}_circle') + GroupObjectPermission.objects.get_or_create(permission=permission, group=group, content_type=ctype, object_pk=circle.pk) + def migrate_groups(apps, schema_editor): '''copies the members and admins of the circles into new groups'''