feat: prevent changing right on source object of a collection instance

This commit is contained in:
Swann
2019-10-15 15:15:46 +02:00
parent d322531dc0
commit 485e2527fe
2 changed files with 11 additions and 3 deletions

View File

@ -106,9 +106,13 @@ class DynamicRightSelectTimer(Timer):
# change new selection to our # change new selection to our
for obj in obj_ours: for obj in obj_ours:
node = operators.client.get(uuid=obj) node = operators.client.get(uuid=obj)
if node and node.owner == RP_COMMON: if node and node.owner == RP_COMMON:
recursive = node.data['instance_type'] != 'COLLECTION'
operators.client.change_owner( operators.client.change_owner(
node.uuid, settings.username) node.uuid,
settings.username,
recursive=recursive)
else: else:
return return
@ -120,9 +124,13 @@ class DynamicRightSelectTimer(Timer):
# change old selection right to common # change old selection right to common
for obj in obj_common: for obj in obj_common:
node = operators.client.get(uuid=obj) node = operators.client.get(uuid=obj)
if node and (node.owner == settings.username or node.owner == RP_COMMON): if node and (node.owner == settings.username or node.owner == RP_COMMON):
recursive = node.data['instance_type'] != 'COLLECTION'
operators.client.change_owner( operators.client.change_owner(
node.uuid, RP_COMMON) node.uuid,
RP_COMMON,
recursive=recursive)
else: else:
for obj in bpy.data.objects: for obj in bpy.data.objects:
if obj.hide_select and obj.uuid not in user_ref.data['selected_objects']: if obj.hide_select and obj.uuid not in user_ref.data['selected_objects']: