fix(rcf): right managment

use id from store body value (#71)
This commit is contained in:
Swann Martinez
2019-04-25 10:42:04 +02:00
parent e572496188
commit f467c65e59
4 changed files with 29 additions and 10 deletions

View File

@ -207,7 +207,7 @@ class RCFClientAgent(object):
override = umsgpack.unpackb(msg[2])
if key in self.property_map.keys():
if self.property_map[key].id == self.id:
if self.property_map[key].body['id'] == self.id.decode():
if value == 'None':
value = helpers.dump(key)
value['id'] = self.id.decode()
@ -263,7 +263,10 @@ class RCFClientAgent(object):
elif command == b"LIST":
dump_list = []
for k,v in self.property_map.items():
dump_list.append([k,v.id])
if 'Client' in k:
dump_list.append([k,v.id.decode()])
else:
dump_list.append([k,v.body['id']])
self.pipe.send(umsgpack.packb(dump_list)
if dump_list else umsgpack.packb(''))
@ -319,7 +322,7 @@ def rcf_client_agent(ctx, pipe, queue):
with lock:
client_dict = helpers.init_client(key=client_key)
client_dict['id'] = agent.id.decode()
client_store = message.RCFMessage(
key=client_key, id=agent.id, body=client_dict)
logger.info(client_store)

View File

@ -77,17 +77,18 @@ def resolve_bpy_path(path):
def load_client(client=None, data=None):
C = bpy.context
D = bpy.data
if client and data:
# localy_selected = get_selected_objects(C.scene)
# Draw client
client_data = data
# Load selected object
for obj in C.scene.objects:
if obj.id == client:
D.objects[obj.name].hide_select = True
else:
D.objects[obj.name].hide_select = False
# for obj in C.scene.objects:
# if obj.id == client:
# D.objects[obj.name].hide_select = True
# else:
# D.objects[obj.name].hide_select = False
# if client_data['active_objects'] and obj.name in client_data['active_objects']:
# D.objects[obj.name].hide_select = True
# else:

View File

@ -43,7 +43,7 @@ def client_list_callback(scene, context):
for k in client_keys:
if 'Client' in k[0]:
name = k[1].decode()
name = k[1]
items.append((name, name, ""))
return items
@ -144,6 +144,17 @@ def update_selected_object(context):
# return False
def update_rights():
C = bpy.context
D = bpy.data
client = C.scene.session_settings.username
for obj in C.scene.objects:
if obj.id == client:
D.objects[obj.name].hide_select = False
else:
D.objects[obj.name].hide_select = True
def init_datablocks():
global client_instance
@ -175,6 +186,9 @@ def draw_tick():
# refresh_window()
# Upload
upload_client_instance_position()
update_rights()
return .2

3
ui.py
View File

@ -156,8 +156,9 @@ class SessionPropertiesPanel(bpy.types.Panel):
for item in operators.client_keys:
owner = 'toto'
try:
owner = item[1].decode()
owner = item[1]
except:
owner = item[1].decode()
pass
item_box = area_msg.box()