Class SecurityContext

    • Constructor Detail

      • SecurityContext

        protected SecurityContext​(UUID context,
                                  boolean hierarchical)
                           throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • SecurityContext

        public SecurityContext​(UUID context)
                        throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
    • Method Detail

      • isHierarchicalMode

        protected boolean isHierarchicalMode()
      • setParentSecurityContext

        public void setParentSecurityContext​(SecurityContext parentSecurityContext)
      • getParentSecurityContext

        public SecurityContext getParentSecurityContext()
      • getAdminDatabaseDocument

        protected com.orientechnologies.orient.core.db.document.ODatabaseDocument getAdminDatabaseDocument()
                                                                                                    throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • changeParentSecurityContext

        public void changeParentSecurityContext​(SecurityContext newParentSecurityContext,
                                                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:
        newParentSecurityContext -
        orientGraph -
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • getUUID

        public UUID getUUID()
      • getContexts

        public static Set<String> getContexts​(com.orientechnologies.orient.core.record.OElement element)
      • addElement

        public void addElement​(com.orientechnologies.orient.core.record.OElement element)
                        throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • allow

        protected void allow​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity,
                             com.orientechnologies.orient.core.record.impl.ODocument oDocument,
                             boolean hierarchic)
      • isElementInContext

        public boolean isElementInContext​(com.orientechnologies.orient.core.record.OElement element)
                                   throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • addElement

        public void addElement​(com.orientechnologies.orient.core.record.OElement element,
                               com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)
      • removeElement

        public void removeElement​(com.orientechnologies.orient.core.record.OElement element)
                           throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • 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)
      • allowed

        protected boolean allowed​(com.orientechnologies.orient.core.metadata.security.ORole role,
                                  com.orientechnologies.orient.core.record.impl.ODocument oDocument)
      • create

        public void create()
                    throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • addExtraRules

        protected com.orientechnologies.orient.core.metadata.security.ORole addExtraRules​(com.orientechnologies.orient.core.metadata.security.ORole role,
                                                                                          SecurityContext.PermissionMode permissionMode)
      • getSuperRole

        protected com.orientechnologies.orient.core.metadata.security.ORole getSuperRole​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity,
                                                                                         SecurityContext.PermissionMode permissionMode)
      • addHierarchicalRoleToParent

        protected void addHierarchicalRoleToParent​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity,
                                                   SecurityContext.PermissionMode permissionMode,
                                                   com.orientechnologies.orient.core.metadata.security.ORole... roles)
      • createRolesAndUsers

        protected void createRolesAndUsers​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
      • create

        public void create​(com.orientechnologies.orient.core.db.document.ODatabaseDocument oDatabaseDocument)
      • delete

        public void delete()
                    throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
      • 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<SecurityContext> parents,
                                                       Set<SecurityContext> children)
      • removeChildrenHRolesFromMyHUsers

        protected void removeChildrenHRolesFromMyHUsers​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity,
                                                        Set<SecurityContext> children)
      • removeHierarchicRoleFromMyHUser

        protected void removeHierarchicRoleFromMyHUser​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity,
                                                       SecurityContext.PermissionMode permissionMode,
                                                       String roleName)
      • deleteRolesAndUsers

        protected void deleteRolesAndUsers​(com.orientechnologies.orient.core.metadata.security.OSecurity oSecurity)
      • delete

        public void delete​(com.orientechnologies.orient.core.db.document.ODatabaseDocument orientGraph)
      • getDatabaseDocument

        public com.orientechnologies.orient.core.db.document.ODatabaseDocument getDatabaseDocument​(SecurityContext.PermissionMode permissionMode)
                                                                                            throws org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException
        Throws:
        org.gcube.informationsystem.resourceregistry.api.exceptions.ResourceRegistryException