Class ResourcePolicyRestRepository

All Implemented Interfaces:
Aware, BeanNameAware, InitializingBean, org.springframework.data.repository.CrudRepository<ResourcePolicyRest,Integer>, org.springframework.data.repository.PagingAndSortingRepository<ResourcePolicyRest,Integer>, org.springframework.data.repository.Repository<ResourcePolicyRest,Integer>

@Component("authz.resourcepolicies") public class ResourcePolicyRestRepository extends DSpaceRestRepository<ResourcePolicyRest,Integer> implements InitializingBean
Controller for exposition of default access condition
Author:
Luigi Andrea Pascarelli (luigiandrea.pascarelli at 4science.it)
  • Constructor Details

    • ResourcePolicyRestRepository

      public ResourcePolicyRestRepository()
  • Method Details

    • findOne

      @PreAuthorize("hasPermission(#id, \'resourcepolicy\', \'READ\')") public ResourcePolicyRest findOne(Context context, Integer id)
      Description copied from class: DSpaceRestRepository
      Method to implement to support retrieval of a specific REST object instance
      Specified by:
      findOne in class DSpaceRestRepository<ResourcePolicyRest,Integer>
      Parameters:
      context - the dspace context
      id - the rest object id
      Returns:
      the REST object identified by its ID
    • findAll

      @PreAuthorize("hasAuthority(\'AUTHENTICATED\')") public org.springframework.data.domain.Page<ResourcePolicyRest> findAll(Context context, org.springframework.data.domain.Pageable pageable)
      Description copied from class: DSpaceRestRepository
      Method to implement to support scroll of entity instances from the collection resource endpoint
      Specified by:
      findAll in class DSpaceRestRepository<ResourcePolicyRest,Integer>
      Parameters:
      context - the dspace context
      pageable - object embedding the requested pagination info
      Returns:
    • getDomainClass

      public Class<ResourcePolicyRest> getDomainClass()
      Description copied from class: DSpaceRestRepository
      The REST model supported by the repository
      Specified by:
      getDomainClass in class DSpaceRestRepository<ResourcePolicyRest,Integer>
    • findByResource

      @PreAuthorize("hasPermission(#resourceUuid, \'dspaceObject\', \'ADMIN\')") public org.springframework.data.domain.Page<ResourcePolicyRest> findByResource(UUID resourceUuid, String action, org.springframework.data.domain.Pageable pageable)
      Find the resource policies matching the uuid of the resource object and/or the specified action
      Parameters:
      resourceUuid - mandatory, the uuid of the resource object of the policy
      action - optional, limit the returned policies to the specified action
      pageable - contains the pagination information
      Returns:
      a Page of ResourcePolicyRest instances matching the uuid of the resource object and/or the specified action
    • findByEPerson

      @PreAuthorize("hasPermission(#epersonUuid, \'EPERSON\', \'READ\')") public org.springframework.data.domain.Page<ResourcePolicyRest> findByEPerson(UUID epersonUuid, UUID resourceUuid, org.springframework.data.domain.Pageable pageable)
      Find the resource policies matching uuid of the eperson and/or the one specified resource object
      Parameters:
      epersonUuid - mandatory, the uuid of the eperson that benefit of the policy
      resourceUuid - optional, limit the returned policies to the ones related to the specified resource
      pageable - contains the pagination information
      Returns:
      It returns the list of explicit matching resource policies, no inherited or broader resource policies will be included in the list nor policies derived by groups' membership
    • findByGroup

      @PreAuthorize("hasPermission(#groupUuid, \'GROUP\', \'READ\')") public org.springframework.data.domain.Page<ResourcePolicyRest> findByGroup(UUID groupUuid, UUID resourceUuid, org.springframework.data.domain.Pageable pageable)
      Find the resource policies matching uuid of the group and/or the ones specified resource object
      Parameters:
      groupUuid - mandatory, the uuid of the group that benefit of the policy
      resourceUuid - optional, limit the returned policies to the ones related to the specified resource
      pageable - contains the pagination information
      Returns:
      It returns the list of explicit matching resource policies, no inherited or broader resource policies will be included in the list nor policies derived by groups' membership
    • createAndReturn

      @PreAuthorize("hasAuthority(\'ADMIN\')") protected ResourcePolicyRest createAndReturn(Context context) throws AuthorizeException, SQLException
      Description copied from class: DSpaceRestRepository
      Method to implement to support the creation of a new instance. Usually require to retrieve the http request from the thread bound attribute
      Overrides:
      createAndReturn in class DSpaceRestRepository<ResourcePolicyRest,Integer>
      Parameters:
      context - the dspace context
      Returns:
      the created REST object
      Throws:
      AuthorizeException
      SQLException
    • delete

      @PreAuthorize("hasAuthority(\'ADMIN\')") protected void delete(Context context, Integer id) throws AuthorizeException
      Description copied from class: DSpaceRestRepository
      Method to implement to support delete of a single object instance
      Overrides:
      delete in class DSpaceRestRepository<ResourcePolicyRest,Integer>
      Parameters:
      context - the dspace context
      id - the id of the rest object to delete
      Throws:
      AuthorizeException
    • patch

      @PreAuthorize("hasPermission(#id, \'resourcepolicy\', \'ADMIN\')") protected void patch(Context context, jakarta.servlet.http.HttpServletRequest request, String apiCategory, String model, Integer id, Patch patch) throws RepositoryMethodNotImplementedException, SQLException, AuthorizeException
      Description copied from class: DSpaceRestRepository
      Method to implement to allow partial update of the REST object via JSON Patch
      Overrides:
      patch in class DSpaceRestRepository<ResourcePolicyRest,Integer>
      request - the http request
      id - the ID of the target REST object
      patch - the JSON Patch (https://tools.ietf.org/html/rfc6902) operation
      Throws:
      RepositoryMethodNotImplementedException - returned by the default implementation when the operation is not supported for the entity
      SQLException
      AuthorizeException
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface InitializingBean
      Throws:
      Exception