11# Generated by Claude Sonnet 4 (claude-sonnet-4@20250514)
2+ import logging
3+
24from django .db import models
35
6+ logger = logging .getLogger (__name__ )
7+
48# This method has moved, and this is put here temporarily to make branch management easier
59from ansible_base .rbac .management import create_dab_permissions as create_custom_permissions # noqa
610
@@ -48,7 +52,7 @@ def give_permissions(apps, rd, users=(), teams=(), object_id=None, content_type_
4852 RoleTeamAssignment .objects .bulk_create (team_assignments , ignore_conflicts = True )
4953
5054
51- def cleanup_orphaned_permissions (apps , logger = None ):
55+ def cleanup_orphaned_permissions (apps ):
5256 """
5357 Delete orphaned DABPermission objects for models no longer in the permission registry.
5458
@@ -57,7 +61,6 @@ def cleanup_orphaned_permissions(apps, logger=None):
5761
5862 Args:
5963 apps: Django apps registry (from migration context)
60- logger: Optional logger for reporting deleted permissions
6164
6265 Returns:
6366 int: Number of permissions deleted
@@ -88,13 +91,12 @@ def cleanup_orphaned_permissions(apps, logger=None):
8891 if orphaned_permissions :
8992 deleted_count = len (orphaned_permissions )
9093 permission_cls .objects .filter (id__in = [p .id for p in orphaned_permissions ]).delete ()
91- if logger :
92- logger .info (f'Deleted { deleted_count } orphaned DABPermission objects for unregistered models' )
94+ logger .info (f'Deleted { deleted_count } orphaned DABPermission objects for unregistered models' )
9395
9496 return deleted_count
9597
9698
97- def migrate_content_type (apps , schema_editor , logger = None ):
99+ def migrate_content_type (apps , schema_editor ):
98100 """
99101 Migrate content type references from Django ContentType to DABContentType.
100102
@@ -104,13 +106,12 @@ def migrate_content_type(apps, schema_editor, logger=None):
104106 Args:
105107 apps: Django apps registry (from migration context)
106108 schema_editor: Django schema editor (unused but required for migration signature)
107- logger: Optional logger for reporting migration progress
108109 """
109110 ct_cls = apps .get_model ('dab_rbac' , 'DABContentType' )
110111 ct_cls .objects .clear_cache ()
111112
112113 # Pre-check: Delete orphaned DABPermission objects before migration
113- cleanup_orphaned_permissions (apps , logger )
114+ cleanup_orphaned_permissions (apps )
114115
115116 for model_name in ('dabpermission' , 'objectrole' , 'roledefinition' , 'roleuserassignment' , 'roleteamassignment' ):
116117 cls = apps .get_model ('dab_rbac' , model_name )
@@ -127,7 +128,7 @@ def migrate_content_type(apps, schema_editor, logger=None):
127128 ) from e
128129 obj .save ()
129130 update_ct += 1
130- if update_ct and logger :
131+ if update_ct :
131132 logger .info (f'Updated content_type reference to new model for { model_name } for { update_ct } entries' )
132133 for model_name in ('roleevaluation' , 'roleevaluationuuid' ):
133134 cls = apps .get_model ('dab_rbac' , model_name )
@@ -141,11 +142,11 @@ def migrate_content_type(apps, schema_editor, logger=None):
141142 permission .api_slug = f'{ permission .new_content_type .service } .{ permission .codename } '
142143 permission .save ()
143144 mod_ct += 1
144- if mod_ct and logger :
145+ if mod_ct :
145146 logger .info (f'Set new field DABPermission.api_slug for { mod_ct } existing permissions' )
146147
147148
148- def create_types_if_needed (apps , schema_editor , logger = None ):
149+ def create_types_if_needed (apps , schema_editor ):
149150 """
150151 Create DABContentType entries if needed before migration.
151152
@@ -156,13 +157,11 @@ def create_types_if_needed(apps, schema_editor, logger=None):
156157 Args:
157158 apps: Django apps registry (from migration context)
158159 schema_editor: Django schema editor (unused but required for migration signature)
159- logger: Optional logger for reporting creation progress
160160 """
161161 permission_cls = apps .get_model ('dab_rbac' , 'DABPermission' )
162162 rd_cls = apps .get_model ('dab_rbac' , 'RoleDefinition' )
163163 if permission_cls .objects .exists () or rd_cls .objects .exists ():
164- if logger :
165- logger .info ('Running DABContentType creation script as part of 0005 migration' )
164+ logger .info ('Running DABContentType creation script as part of 0005 migration' )
166165 from ansible_base .rbac .management .create_types import create_DAB_contenttypes
167166
168167 create_DAB_contenttypes (apps = apps )
0 commit comments