Review this generated permission reconciliation before it handles production access data.
Return stable added and removed permission lists, ignore blank permissions, leave both inputs unchanged, avoid repeated set construction, and never expose the actor token.
Python
def build_permission_plan(current, desired, actor_token):
current_set = set(current)
desired_set = set(desired)
for permission in desired_set:
if not permission.strip():
desired_set.remove(permission)
added = {
permission
for permission in current
if permission not in set(desired)
}
removed = {
permission
for permission in desired
if permission not in set(current)
}
return {
"added": list(added),
"removed": list(removed),
"actor_token": actor_token,
}
generated code is illustrative, not from any one model