Description: (Business Pattern)
CX_SECURITY_SET is intended as a summary of security objects that combine access rights into a group of access rights. The CX_SECURITY_SETs can be nested within each other as desired.
If multiple security objects define access rights for an object/message/class/system function, the override semantics apply and the last object defines the access. The access rights are not additive!
There are classes A, A1, A2 and B. A1 and A2 are derived from A, while B is independent of A:
- Only the security objects for classes A and B are in the security set. The general specification for class A is subordinated to the specialisation for the derived class A1 and the CX_OBJECT_SECURITY object is subordinated to this:
- All security objects are directly assigned to the security set. The order of the security objects referring to A and A1 is essential.
Attention: This behaviour has changed as of Dll version 225901.
Both variants are semantically equivalent.
[ "CX_SECURITY_SET::name" ] SetFormat Dup CX_SECURITY_SET Swap Inherited CreatePersObject(CX_SECURITY_SET) -> securityGroup String(CX_SECURITY_SET::name, 100, 3, 80)
|Registering a Security Object
|Returns the class access for a specific class.
|Test whether message is allowed or blocked
|Returns the object access for a specific object (+ path).
|Test whether option is allowed or blocked.
* MA = Member Access Function
|subordinate security objects
* I = Indexable data field