Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
E
erp5_rtl_support
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Romain Courteaud
erp5_rtl_support
Commits
e9c4256e
Commit
e9c4256e
authored
Apr 28, 2014
by
Vincent Pelletier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ERP5Type.ERP5Type: Avoid modifying object if local roles are unchanged.
Also, avoid reindexing when object is not modified.
parent
995a0a8a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
3 deletions
+7
-3
product/ERP5Type/ERP5Type.py
product/ERP5Type/ERP5Type.py
+7
-3
No files found.
product/ERP5Type/ERP5Type.py
View file @
e9c4256e
...
@@ -115,19 +115,23 @@ class LocalRoleAssignorMixIn(object):
...
@@ -115,19 +115,23 @@ class LocalRoleAssignorMixIn(object):
if
'Owner'
in
role_list
:
if
'Owner'
in
role_list
:
group_id_role_dict
.
setdefault
(
group
,
set
()).
add
(
'Owner'
)
group_id_role_dict
.
setdefault
(
group
,
set
()).
add
(
'Owner'
)
# Assign new roles
# Assign new roles
ob
.
__ac_local_roles__
=
ac_local_roles
=
{}
ac_local_roles
=
{}
for
group
,
role_list
in
group_id_role_dict
.
iteritems
():
for
group
,
role_list
in
group_id_role_dict
.
iteritems
():
if
role_list
:
if
role_list
:
ac_local_roles
[
group
]
=
list
(
role_list
)
ac_local_roles
[
group
]
=
list
(
role_list
)
if
ac_local_roles
!=
ob
.
__ac_local_roles__
:
ob
.
__ac_local_roles__
=
ac_local_roles
if
local_roles_group_id_group_id
:
if
local_roles_group_id_group_id
:
ob
.
__ac_local_roles_group_id_dict__
=
local_roles_group_id_group_id
ob
.
__ac_local_roles_group_id_dict__
=
local_roles_group_id_group_id
elif
getattr
(
aq_base
(
ob
),
elif
getattr
(
aq_base
(
ob
),
'__ac_local_roles_group_id_dict__'
,
None
)
is
not
None
:
'__ac_local_roles_group_id_dict__'
,
None
)
is
not
None
:
delattr
(
ob
,
'__ac_local_roles_group_id_dict__'
)
delattr
(
ob
,
'__ac_local_roles_group_id_dict__'
)
## Make sure that the object is reindexed
## Make sure that the object is reindexed if modified
if
reindex
:
# XXX: Document modification detection assumes local roles are always
# part of ob and not separate persistent objects.
if
reindex
and
ob
.
_p_changed
:
ob
.
reindexObjectSecurity
()
ob
.
reindexObjectSecurity
()
security
.
declarePrivate
(
'getFilteredRoleListFor'
)
security
.
declarePrivate
(
'getFilteredRoleListFor'
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment