An user is assigned the * membership type for a group, when a membership type for this group and user is checked, then it is true regardless of the membership type
Requirement documentation for supporting wild-card membership type in GateIn
Wildcard (*) memberhip type is considered identical to ANY membership type. This feature is useful when we don't want to specify a concrete membership type when working with organization api. This feature implies:
- To change the organization service API (in Core project)
- To define the behavior of the membership type resolution algorithm
- To have the organization service implementation to implement the membership type checking algorithm according to the specification
- To create the necessary tests to ensure the implementations of the organization service API conform to the algorithm
The * is just like any other membership type, it can be configured explicitly by organization service initializer to be created at first starting time.
To keep it transparent, backward compatible with previous version, we introduce a new method in GroupHandler interface for performing resolution of * wildcard membership type.
A new method that performs resolution:
- Collection resolveGroupByMembership(String userName, String membershipType) : returns each group for which the user has the specified membershipType relationship or the * membership
- Collection findMembershipTypes() : * should be the first membership type of the collection if it exists
For the other parts
The * should be treated like before.