...
- AccessRequirement (interface)
- ACTAccessRequirementInterface
- ACTAccessRequirement
- ManagedACTAccessRequirement
- SelfSignAccessRequirementInterface
- TermsOfUseAccessRequirement
- SelfSignAccessRequirement
- SelfSignAccessRequirementForValidatedUsers (extends SelfSignAccessRequirement)
- ACTAccessRequirementInterface
Adding a concrete class SelfSignAccessRequirement, and SelfSignAccessRequirementForValidatedUsers which extends SelfSignAccessRequirement. This option will not add new fields to either class.
This option will not change ACTAccessRequirement classes.
Option 2
- HasAccessorRequirement (interface)
- AccessRequirement (interface)
- ACTAccessRequirementInterface
- ACTAccessRequirement
- ManagedACTAccessRequirement implements HasAccessorRequirement
- SelfSignAccessRequirementInterface
- TermsOfUseAccessRequirement
- SelfSignAccessRequirement implements HasAccessorRequirement
- ACTAccessRequirementInterface
HasAccessorRequirement interface will cover all requirements we may or may not require from an accessor to gain an AccessApproval for the AccessRequirement that implements this interface. It includes isCertifiedUserRequired, isValidatedProfileRequired.
This option would refactor ManagedACTAccessRequirement to implements HasAccessorRequirement. The new SelfSignAccessRequirement will also implement this interface.