|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectARoad0.gWork.AclRightsFactoryImpl
public class AclRightsFactoryImpl
This class is responsible for all the core algorithms about AclEntry rights analysis, and most of the Bridge rights analysis. These rights are direct or inherited rights for an EligibleParty (the access user) on a Resource (the access target). This class is stateless, and RightsMediatorImpl at its creation setups an instance for its ViewInBase. No direct call to the ACS methods. Upper-level methods begin by detect...(), middle-level methods begin by select...(), lower-level methods begin by add...().
AclEntryImpl
Field Summary | |
---|---|
private AlgorithmInterpreter |
interpreter_
|
private DisplayableLinkUtilities |
linkUtil_
|
private UtilityImpl |
utility_
|
Fields inherited from interface ARoad0.gWorkInterface.CoreAlgorithm |
---|
INITIAL_CAPACITY |
Constructor Summary | |
---|---|
protected |
AclRightsFactoryImpl(AlgorithmInterpreter _interpreter)
only one protected constructor |
Method Summary | |
---|---|
DisplayableLinkImpl |
addAclBridgeRightsInSimpleDisplayableLink(ImmutableEligibleParty _ep,
ImmutableResource _res,
boolean _withExecute)
Gets or creates the simple DisplayableLinkImpl associated to a view object pair, and updates the AccessControlLink with ACL or bridge rights. |
AccessControlLinkImpl |
addAclInAccessControlLink(ImmutableResource _res,
ImmutableEligibleParty _ep,
AccessControlLinkImpl _upd_acLink)
Adds the AclEntry rights and comments to an AccessControlLinkImpl. |
protected java.util.Map |
detectACLRights(EPRViewInBase _viewInBase,
java.util.Map _m_l_DisplayableLinks,
BaseObject _center)
Defines the effective applicable rights of an EligibleParty for a Resource, when there are direct AclEntries between them. |
void |
finalizeForProcess()
Finalizes the instance. |
static ImmutableAclEntry |
getAclEntryFromACS(ImmutableResource _res,
ImmutableEligibleParty _ep,
ImmutableACS _aclAcs,
boolean _positiveRight)
Selects the right aclEntry managed by the resource, from the ACS list because the resource list is updated after the ACS has fired its change property events for the AclEntry creation. |
java.util.Set |
selectDirectHiddenAclBridgeLinksToActorForEP(EPRViewInBase _viewInBase,
ImmutableEligibleParty _ep,
boolean _isProxyWithFinalExecute)
Detects all the right-proxy Actors that are not in _viewInBase, and are directly accessible from _ep through an AclEntry or a Bridge, with some executing rights or not. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private AlgorithmInterpreter interpreter_
private UtilityImpl utility_
private DisplayableLinkUtilities linkUtil_
Constructor Detail |
---|
protected AclRightsFactoryImpl(AlgorithmInterpreter _interpreter)
_interpreter
- algorithm interpreterMethod Detail |
---|
protected final java.util.Map detectACLRights(EPRViewInBase _viewInBase, java.util.Map _m_l_DisplayableLinks, BaseObject _center)
Synchronized to _viewInBase from the GraphicView call.
_viewInBase
- the EPRViewInBase of _gview_m_l_DisplayableLinks
- Map of DisplayableLinks lists (one per pair)
associated to the view, and to update._center
- the central object of a sketch view. Null if it is not a sketch view.
public final java.util.Set selectDirectHiddenAclBridgeLinksToActorForEP(EPRViewInBase _viewInBase, ImmutableEligibleParty _ep, boolean _isProxyWithFinalExecute) throws ProcessError
_viewInBase
- view on which _gview is based_ep
- is in viewInBase or not_isProxyWithFinalExecute
- true for detecting only if there is an execute
right on a right-proxy actor. If false, any actor without executing right
and/or not being a right-proxy is returned.
ProcessError
- if there is a loop in the rights searchpublic static final ImmutableAclEntry getAclEntryFromACS(ImmutableResource _res, ImmutableEligibleParty _ep, ImmutableACS _aclAcs, boolean _positiveRight)
_res
- with some AclEntries to filter_ep
- is the EligibleParty associated to the AclEntry_aclAcs
- ImmutableACS which owns the new AclEntry_positiveRight
- is true is the searched AclEntry is psitive
public final DisplayableLinkImpl addAclBridgeRightsInSimpleDisplayableLink(ImmutableEligibleParty _ep, ImmutableResource _res, boolean _withExecute)
_ep
- is a rights user_res
- is an access target. Has to be known in the AlgorithmInterpreter._withExecute
- true for returning null if there is no effective executing
right in the link.
public final AccessControlLinkImpl addAclInAccessControlLink(ImmutableResource _res, ImmutableEligibleParty _ep, AccessControlLinkImpl _upd_acLink)
This method puts the rights as comment. It also puts in the GLOBAL comment all the ACL ACS names if they are more than one. It may adds 'conditional ACL'. The method NodeRights.getMergedInheritedAclPriRightsAndComments() is responsible to add the specific AcsAddon comments on the direct AclEntries, and to set the comment AccessControlLink.C_INHERITED_ACL about the inherited AclEntries. The method NodeRights.withAccessThroughNodesTreeFromEP() may add some additional comments for the inherited AclEntries.
Note: this method is sensible since it is used for both the one-link method, the two-links method and a multiple-links method. Called by detectACLRights(), addAclBridgeRightsInSimpleDisplayableLink(), CompoundRightsFactoryImpl.detectHiddenCompoundEpRights(), ThreeNodesRightsFactoryImpl.selectOneHiddenNodePathsForVirtualFolder(), endsPathsFromActorWithAclBridgePrivilege() and selectOneHiddenNodePathsForFirstLinkPrivileges(), endsPathsFromGroupIDMemberWithAclPrivilege(). The argument _upd_acLink is not null only for addAclBridgeRightsInSimpleDisplayableLink(). Calls the _res NodeRights.detectL_aclEntryRights(), mergeInheritedAclPriRightsAndComments(), getL_accessRightsThroughNodesTree() and withAccessThroughNodesTreeFromEP().
_res
- with some AclEntries to filter. Has to be known in the AlgorithmInterpreter._ep
- may be associated to some _res AclEntries_upd_acLink
- is the AccessControlLink to update. May be null.
public void finalizeForProcess()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |