ISecUser and ISecResource property iterator conformance

Description

 introduced methods to ISecUser and ISecResource in order to access embedded property iterators from concrete implementations. The implementations of these methods do not conform to conventional iterator usage.

CLdapSecUser always returns NULL, because it doesn't manage properties. Other implementations can return NULL, because embedded properties are lazily allocated and iterators are dependent upon the properties they iterate.

Conventional usage assumes returned iterators will not be NULL. All implementations need to be changed to not return NULL. 

Conclusion

None

Activity

Show:

Tim Klemm July 27, 2018 at 2:26 PM

This affects CSecureUser, CSecurityResource, CLdapSecUser, and CLdapSecResource.

CLdapSecUser does not manage properties. A static properties instance will be created, from which an iterator will be returned for all iterator requests.

Lazy properties allocation will be removed from the remaining affected classes, providing an iterator source for each iterator request. There is a cost associated with allocating objects that might be unused, but that cost may be countered by the benefit of code simplification. expressed a preference for code simplification, and I'm inclined to agree.

Rodrigo Pastrana July 27, 2018 at 1:37 PM

this should be 7.0.0. Tim has the code in place, performing tests today and should have PR issued today.

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Components

Assignee

Reporter

Priority

Compatibility

Major

Fix versions

Pull Request URL

Affects versions

Created July 23, 2018 at 7:32 PM
Updated August 6, 2018 at 12:29 PM
Resolved August 6, 2018 at 12:29 PM