Interface CMSAdminRestrictionService

All Known Implementing Classes:
DefaultCMSAdminRestrictionService

public interface CMSAdminRestrictionService
Service to manage restrictions and the relations between pages and restrictions. All methods work on the active catalogVersion of the current user.
Spring Bean ID:
cmsAdminRestrictionService
  • Method Details

    • getAllRestrictionTypes

      Collection<RestrictionTypeModel> getAllRestrictionTypes()
      Returns a collection of all available restriction types.
      Returns:
      collection of all restriction types; never null
    • getAllowedRestrictionTypesForPage

      Collection<RestrictionTypeModel> getAllowedRestrictionTypesForPage(String pageId) throws CMSItemNotFoundException
      Returns a collection of all restrictions which can be applied on the given page (via its id)
      Parameters:
      pageId - id of page
      Returns:
      all restriction types applicable for a given page
      Throws:
      CMSItemNotFoundException - if the page is not found
    • getAllowedRestrictionTypesForPage

      Collection<RestrictionTypeModel> getAllowedRestrictionTypesForPage(AbstractPageModel page)
      Returns a collection of all restrictions which can be applied on the given page
      Parameters:
      page - the page model
      Returns:
      all restriction types applicable for a given page
    • getRestrictionsForPage

      Collection<AbstractRestrictionModel> getRestrictionsForPage(String pageId, String restrictionType) throws CMSItemNotFoundException
      Returns all restrictions of the given restriction type which are applied on the given page (via its id)
      Parameters:
      pageId - id of page
      restrictionType - ComposedType code of restriction
      Returns:
      all restrictions applied for a given page
      Throws:
      CMSItemNotFoundException - if the page or the composed type is not found
    • getRestrictionsForPage

      Collection<AbstractRestrictionModel> getRestrictionsForPage(AbstractPageModel page, String restrictionType) throws CMSItemNotFoundException
      Returns all restrictions of the given restriction type which are applied on the given page
      Parameters:
      page - the page model
      restrictionType - ComposedType code of restriction
      Returns:
      all restrictions applied for a given page
      Throws:
      CMSItemNotFoundException - if the page or the composed type is not found
    • getRestrictionsForPage

      Collection<AbstractRestrictionModel> getRestrictionsForPage(AbstractPageModel page)
      Returns all restrictions which are applied on the given page
      Parameters:
      page - - the page for which we want to retrieve restrictions
      Returns:
      all restrictions applied for a given page
    • hasPageRestrictions

      default boolean hasPageRestrictions(AbstractPageModel page)
      Determines if the given page has any restrictions assigned to it or not
      Parameters:
      page - - the page for which we want to verify the restrictions relations
      Returns:
      TRUE when the page contains at least one restriction; otherwise FALSE
    • getAllRestrictionsByType

      Collection<AbstractRestrictionModel> getAllRestrictionsByType(String restrictionType) throws CMSItemNotFoundException
      Returns all restriction of the given restriction type
      Parameters:
      restrictionType - ComposedType code of restriction
      Returns:
      all restrictions for a given restriction type
      Throws:
      CMSItemNotFoundException - if the composed type is not found
    • getAllRestrictionsByTypeNotLinkedToPage

      Collection<AbstractRestrictionModel> getAllRestrictionsByTypeNotLinkedToPage(String pageId, String restrictionType) throws CMSItemNotFoundException
      Returns all restrictions of the given restriction type which are currently not linked to the given page (via its id)
      Parameters:
      pageId - id of the page
      restrictionType - composed type code of restriction
      Returns:
      all restrictions of a given restriction type which are not currently linked to a given page
      Throws:
      CMSItemNotFoundException - if the page or the composed type is not found
    • getRestriction

      Returns a restriction via its id
      Parameters:
      id - id of restriction
      Returns:
      the restriction for a given id
      Throws:
      CMSItemNotFoundException - if no restriction with the given id is found
    • getRestrictionsByName

      List<AbstractRestrictionModel> getRestrictionsByName(String name) throws CMSItemNotFoundException
      Returns a restriction via its name
      Parameters:
      name - name of restriction
      Returns:
      the restriction for a given name
      Throws:
      CMSItemNotFoundException - if no restriction with the given name is found
    • getAllRestrictions

      Collection<AbstractRestrictionModel> getAllRestrictions()
      Returns all restriction
      Returns:
      collection of restrictions; never null
    • createCategoryRestriction

      CMSCategoryRestrictionModel createCategoryRestriction(AbstractPageModel page, String id, String name, Collection<CategoryModel> categories) throws CMSItemCreateException
      Creates a new CategoryRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      categories - list of categories for this restriction
      Returns:
      a new category restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createProductRestriction

      CMSProductRestrictionModel createProductRestriction(AbstractPageModel page, String id, String name, Collection<ProductModel> products) throws CMSItemCreateException
      Creates a new ProductRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      products - list of products for this restriction
      Returns:
      a new product restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createTimeRestriction

      CMSTimeRestrictionModel createTimeRestriction(AbstractPageModel page, String id, String name, Date from, Date until) throws CMSItemCreateException
      Creates a new TimeRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      from - restriction is active from
      until - restriction is active until
      Returns:
      a new time restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createUserRestriction

      CMSUserRestrictionModel createUserRestriction(AbstractPageModel page, String id, String name, Collection<UserModel> users) throws CMSItemCreateException
      Creates a new UserRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      users - list of users for this restriction
      Returns:
      a new user restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createUserGroupRestriction

      CMSUserGroupRestrictionModel createUserGroupRestriction(AbstractPageModel page, String id, String name, Collection<UserGroupModel> userGroups) throws CMSItemCreateException
      Creates a new UserGroupRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      userGroups - list of user groups for this restriction
      Returns:
      a new user group restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createCatalogRestriction

      CMSCatalogRestrictionModel createCatalogRestriction(AbstractPageModel page, String id, String name, Collection<CatalogModel> catalogs) throws CMSItemCreateException
      Creates a new CatalogRestriction and a new relation between the restriction and the given page.
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      catalogs - list of catalogs for this restriction
      Returns:
      a new catalog restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createCampaignRestriction

      CMSCampaignRestrictionModel createCampaignRestriction(AbstractPageModel page, String id, String name, Collection<CampaignModel> campaigns) throws CMSItemCreateException
      Creates a new CampaignRestriction and a new relation between the restriction and the given page
      Parameters:
      page - page to be linked to the new restriction
      id - id of the restriction
      name - name of the restriction
      campaigns - list of campaigns for this restriction
      Returns:
      a new campaign restriction
      Throws:
      CMSItemCreateException - if the restriction could not be created
    • createRelation

      void createRelation(AbstractPageModel page, AbstractRestrictionModel restriction)
      creates a new relation between the given page and the given restriction
      Parameters:
      page - the page model
      restriction - the restriction model
    • createRelation

      void createRelation(String pageId, String restrictionId) throws CMSItemNotFoundException
      creates a new relation between the given page (pageId) and the given restriction (restrictionId)
      Parameters:
      pageId - the page id
      restrictionId - the restriciton id
      Throws:
      CMSItemNotFoundException - if the page and/or restriction is not found
    • hasOtherRelations

      boolean hasOtherRelations(AbstractRestrictionModel restriction, AbstractPageModel page)
      Checks if a given restriction has also other relations than to the given page
      Parameters:
      restriction - the restriciton model
      page - the page model
      Returns:
      true if there are also other relations, otherwise false
    • hasOtherRelations

      boolean hasOtherRelations(String restrictionId, String pageId) throws CMSItemNotFoundException
      Checks if a given restriction has also other relations than to the given page
      Parameters:
      restrictionId - the restriction id
      pageId - the page id
      Returns:
      true if there are also other relations, otherwise false
      Throws:
      CMSItemNotFoundException - if the restriction and/or page is not found
    • deleteRelation

      void deleteRelation(AbstractRestrictionModel restriction, AbstractPageModel page)
      deletes the relation between the restriction and the page
      Parameters:
      restriction - the restriciton model
      page - the page model
    • deleteRelation

      void deleteRelation(String restrictionId, String pageId) throws CMSItemNotFoundException
      deletes the relation between the restriction and the page
      Parameters:
      restrictionId - the restriction id
      pageId - the page id
      Throws:
      CMSItemNotFoundException - if the restriction and/or page is not found
    • getProducts

      List<ProductModel> getProducts(CMSProductRestrictionModel productRestriction, PreviewDataModel previewContext)
      Returns products for product restriction
      Parameters:
      productRestriction - given restriction
      previewContext - preview context information
      Returns:
      products attached to productRestriction
    • getCategories

      List<CategoryModel> getCategories(CMSCategoryRestrictionModel categoryRestriction, PreviewDataModel previewContext)
      Returns products for product restriction
      Parameters:
      categoryRestriction - given restriction
      previewContext - preview context information
      Returns:
      products attached to productRestriction