Optimise security group generation performance
Improvements compared to the previous implementation: - avoid looking up the user document again, when the PAS plugin already did that job - make it possible to call a single script when multiple sources of groups are based on the same documents, avoiding iterating unnecessarily on those same documents multiple times - avoid repeating the same membership value (ex: when a user has multiple assignments with a common membership subset) - avoid resolving the same relation more than once - do not go from document value to relative URL only to go from relative URL back to document value at the next step - move security group id extraction to unrestricted python, as the security overhead was taking a large amount of time In a security setup with 8 scripts (all Assignment-based), 6 base categories, and 4 Assignments (all valid), this implementation is 10 times faster at producing the same group id set as the previous one.
Showing
Please register or sign in to comment