ne pas inclure la fonction attribuée au niveau du formdef dans le filtrage sur les fonctions de l'usager (#76682) #301
|
@ -1564,7 +1564,7 @@ def test_cards_filter_function(pub, local_user):
|
|||
)
|
||||
assert len(resp.json['data']) == 2
|
||||
|
||||
# with function obtained via role set on carddef
|
||||
# make sure formdata functions override formdef functions
|
||||
carddef.workflow_roles = {'_foobar': role.id}
|
||||
carddef.store()
|
||||
carddef.data_class().rebuild_security()
|
||||
|
@ -1575,4 +1575,11 @@ def test_cards_filter_function(pub, local_user):
|
|||
% local_user.name_identifiers[0]
|
||||
)
|
||||
)
|
||||
assert len(resp.json['data']) == 3
|
||||
assert len(resp.json['data']) == 1
|
||||
|
||||
resp = get_app(pub).get(
|
||||
sign_uri(
|
||||
'/api/cards/test/list/shared-carddef-custom-view?filter-user-uuid=%s' % user1.name_identifiers[0]
|
||||
)
|
||||
)
|
||||
assert len(resp.json['data']) == 2
|
||||
|
|
|
@ -2201,6 +2201,17 @@ def test_workflow_roles_dict_change(pub):
|
|||
formdef.workflow_roles = {'_receiver': '123'}
|
||||
formdef.store()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.workflow_roles = {}
|
||||
formdata.store()
|
||||
|
||||
conn, cur = sql.get_connection_and_cursor()
|
||||
cur.execute('SELECT workflow_merged_roles_dict FROM %s WHERE id = %s' % (formdef.table_name, formdata.id))
|
||||
merged_roles_dict = cur.fetchone()[0]
|
||||
assert merged_roles_dict == {'_receiver': ['123']}
|
||||
conn.commit()
|
||||
cur.close()
|
||||
|
||||
formdata = formdef.data_class()()
|
||||
formdata.workflow_roles = {'_receiver': ['_user:123', '_user:456']}
|
||||
formdata.store()
|
||||
|
@ -2208,7 +2219,7 @@ def test_workflow_roles_dict_change(pub):
|
|||
conn, cur = sql.get_connection_and_cursor()
|
||||
cur.execute('SELECT workflow_merged_roles_dict FROM %s WHERE id = %s' % (formdef.table_name, formdata.id))
|
||||
merged_roles_dict = cur.fetchone()[0]
|
||||
assert merged_roles_dict == {'_receiver': ['123', '_user:123', '_user:456']}
|
||||
assert merged_roles_dict == {'_receiver': ['_user:123', '_user:456']}
|
||||
conn.commit()
|
||||
cur.close()
|
||||
|
||||
|
@ -2219,7 +2230,7 @@ def test_workflow_roles_dict_change(pub):
|
|||
conn, cur = sql.get_connection_and_cursor()
|
||||
cur.execute('SELECT workflow_merged_roles_dict FROM %s WHERE id = %s' % (formdef.table_name, formdata.id))
|
||||
merged_roles_dict = cur.fetchone()[0]
|
||||
assert merged_roles_dict == {'_receiver': ['234', '_user:123', '_user:456']}
|
||||
assert merged_roles_dict == {'_receiver': ['_user:123', '_user:456']}
|
||||
conn.commit()
|
||||
cur.close()
|
||||
|
||||
|
|
|
@ -1213,14 +1213,15 @@ class FormData(StorableObject):
|
|||
@property
|
||||
def workflow_merged_roles_dict(self):
|
||||
merged_dict = {}
|
||||
for k, v in (self.formdef.workflow_roles or {}).items():
|
||||
merged_dict[k] = [v]
|
||||
for k, v in (self.workflow_roles or {}).items():
|
||||
if k not in merged_dict:
|
||||
merged_dict[k] = []
|
||||
if isinstance(v, (int, str)):
|
||||
v = [str(v)]
|
||||
merged_dict[k].extend(v)
|
||||
for k, v in (self.formdef.workflow_roles or {}).items():
|
||||
if k not in merged_dict and v:
|
||||
merged_dict[k] = [v]
|
||||
return merged_dict
|
||||
|
||||
@workflow_merged_roles_dict.setter
|
||||
|
|
Loading…
Reference in New Issue