Class HierarchicalEnvironment
- java.lang.Object
-
- org.gcube.informationsystem.resourceregistry.environments.Environment
-
- org.gcube.informationsystem.resourceregistry.environments.HierarchicalEnvironment
-
- Direct Known Subclasses:
InstanceEnvironment
public abstract class HierarchicalEnvironment extends Environment
- Author:
- Luca Frosini (ISTI - CNR) Base class for all environments which have an hierarchy. An example is InstanceEnviroment where the instances belonging to a context must be visible from parent context if the requesting client has enough privileges
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.gcube.informationsystem.resourceregistry.environments.Environment
Environment.PermissionMode, Environment.SecurityType
-
-
Field Summary
Fields Modifier and Type Field Description protected Set<HierarchicalEnvironment>childrenstatic StringHprotected booleanhierarchicalModeprotected Map<Environment.PermissionMode,com.orientechnologies.orient.core.db.ODatabasePool>hierarchicPoolMapprotected HierarchicalEnvironmentparentEnvironment-
Fields inherited from class org.gcube.informationsystem.resourceregistry.environments.Environment
allOperationAllowedRoles, allowedRoles, CONTEXT_MANAGER, DEFAULT_READER_ROLE, DEFAULT_WRITER_ROLE, environmentUUID, INFRASTRUCTURE_MANAGER, IS_MANAGER, poolMap
-
-
Constructor Summary
Constructors Constructor Description HierarchicalEnvironment(UUID uuid)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)protected voidaddHierarchicalRoleToParent(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Environment.PermissionMode permissionMode, com.orientechnologies.orient.core.metadata.security.ORole... roles)protected voidallow(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, com.orientechnologies.orient.core.record.impl.ODocument oDocument, boolean hierarchic)protected booleanallowed(com.orientechnologies.orient.core.metadata.security.ORole role, com.orientechnologies.orient.core.record.impl.ODocument oDocument)voidchangeParentEnvironment(HierarchicalEnvironment newParentEnvironment, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph)Use to change the parent not to set the first timeprotected voidcreateRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)protected voiddeleteRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)protected voiddeny(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, com.orientechnologies.orient.core.record.impl.ODocument oDocument, boolean hierarchical)Set<HierarchicalEnvironment>getChildren()static Set<String>getContexts(com.orientechnologies.orient.core.record.OElement element)HierarchicalEnvironmentgetParentEnvironment()protected com.orientechnologies.orient.core.db.ODatabasePoolgetPool(Environment.PermissionMode permissionMode, boolean recreate)static StringgetRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType)static StringgetRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType, boolean hierarchic)StringgetSecurityRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType, boolean hierarchic)protected booleanisHierarchicalMode()protected voidremoveChildrenHRolesFromMyHUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Set<HierarchicalEnvironment> children)protected voidremoveChildrenHRolesFromParents(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)protected voidremoveChildrenHRolesFromParents(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Set<HierarchicalEnvironment> parents, Set<HierarchicalEnvironment> children)voidremoveElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)protected voidremoveHierarchicRoleFromMyHUser(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Environment.PermissionMode permissionMode, String roleName)voidsetParentEnvironment(HierarchicalEnvironment parentEnvironment)-
Methods inherited from class org.gcube.informationsystem.resourceregistry.environments.Environment
addElement, addExtraRules, allow, create, create, delete, delete, deny, drop, getAllOperationsAllowedRoles, getAllowedRoles, getDatabaseDocument, getSecurityRoleOrUserName, getSuperRole, getUUID, isElementInContext, isUserAllowed, removeElement, toString
-
-
-
-
Field Detail
-
H
public static final String H
- See Also:
- Constant Field Values
-
hierarchicalMode
protected final boolean hierarchicalMode
-
hierarchicPoolMap
protected final Map<Environment.PermissionMode,com.orientechnologies.orient.core.db.ODatabasePool> hierarchicPoolMap
-
parentEnvironment
protected HierarchicalEnvironment parentEnvironment
-
children
protected Set<HierarchicalEnvironment> children
-
-
Constructor Detail
-
HierarchicalEnvironment
public HierarchicalEnvironment(UUID uuid) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
-
-
Method Detail
-
isHierarchicalMode
protected boolean isHierarchicalMode()
-
setParentEnvironment
public void setParentEnvironment(HierarchicalEnvironment parentEnvironment)
-
getParentEnvironment
public HierarchicalEnvironment getParentEnvironment()
-
getChildren
public Set<HierarchicalEnvironment> getChildren()
-
changeParentEnvironment
public void changeParentEnvironment(HierarchicalEnvironment newParentEnvironment, com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph) throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
Use to change the parent not to set the first time- Parameters:
newParentEnvironment-orientGraph-- Throws:
org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
-
getPool
protected com.orientechnologies.orient.core.db.ODatabasePool getPool(Environment.PermissionMode permissionMode, boolean recreate)
- Overrides:
getPoolin classEnvironment
-
getRoleOrUserName
public static String getRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType)
-
getRoleOrUserName
public static String getRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType, boolean hierarchic)
-
getSecurityRoleOrUserName
public String getSecurityRoleOrUserName(Environment.PermissionMode permissionMode, Environment.SecurityType securityType, boolean hierarchic)
-
getContexts
public static Set<String> getContexts(com.orientechnologies.orient.core.record.OElement element)
-
allow
protected void allow(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, com.orientechnologies.orient.core.record.impl.ODocument oDocument, boolean hierarchic)
-
addElement
public void addElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)- Overrides:
addElementin classEnvironment
-
deny
protected void deny(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, com.orientechnologies.orient.core.record.impl.ODocument oDocument, boolean hierarchical)
-
removeElement
public void removeElement(com.orientechnologies.orient.core.record.OElement element, com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)- Overrides:
removeElementin classEnvironment
-
allowed
protected boolean allowed(com.orientechnologies.orient.core.metadata.security.ORole role, com.orientechnologies.orient.core.record.impl.ODocument oDocument)- Overrides:
allowedin classEnvironment
-
addHierarchicalRoleToParent
protected void addHierarchicalRoleToParent(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Environment.PermissionMode permissionMode, com.orientechnologies.orient.core.metadata.security.ORole... roles)
-
createRolesAndUsers
protected void createRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
- Overrides:
createRolesAndUsersin classEnvironment
-
removeChildrenHRolesFromParents
protected void removeChildrenHRolesFromParents(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
-
removeChildrenHRolesFromParents
protected void removeChildrenHRolesFromParents(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Set<HierarchicalEnvironment> parents, Set<HierarchicalEnvironment> children)
-
removeChildrenHRolesFromMyHUsers
protected void removeChildrenHRolesFromMyHUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Set<HierarchicalEnvironment> children)
-
removeHierarchicRoleFromMyHUser
protected void removeHierarchicRoleFromMyHUser(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity, Environment.PermissionMode permissionMode, String roleName)
-
deleteRolesAndUsers
protected void deleteRolesAndUsers(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
- Overrides:
deleteRolesAndUsersin classEnvironment
-
-