Class AmetysFrontEditionHelper

java.lang.Object
org.ametys.plugins.frontedition.AmetysFrontEditionHelper
All Implemented Interfaces:
Contextualizable, LogEnabled, Serviceable

Helper for preparing the Ametys Edition
  • Field Details

  • Constructor Details

  • Method Details

    • service

      public void service(ServiceManager manager) throws ServiceException
      Specified by:
      service in interface Serviceable
      Throws:
      ServiceException
    • contextualize

      public void contextualize(Context context) throws ContextException
      Specified by:
      contextualize in interface Contextualizable
      Throws:
      ContextException
    • enableLogging

      public void enableLogging(Logger logger)
      Specified by:
      enableLogging in interface LogEnabled
    • prepareJSFiles

      public static String prepareJSFiles(String locale, boolean rtlMode, String theme)
      Prepare a hashcode for js files
      Parameters:
      locale - The language code to use
      rtlMode - Is for right-to-left language?
      theme - The url for the theme
      Returns:
      The new hashcode to read the minimified concatened file
    • prepareCSSFiles

      public static String prepareCSSFiles(String locale, boolean rtlMode, String theme)
      Prepare a hashcode for css files
      Parameters:
      locale - The language code to use
      rtlMode - Is for right-to-left language?
      theme - The url for the theme
      Returns:
      The new hashcode to read the minimified concatened file
    • hasFrontEditionRight

      @Deprecated public static boolean hasFrontEditionRight(String rightId, String objectId)
      Deprecated.
      Use the version with three arguments
      Check if we can display the front edition button for a specific right Checks : * Rendering context == front * Edition mode * Front_Edition_Access_Right on current page * RightId available on object
      Parameters:
      rightId - right to check (can be null)
      objectId - id of page/content to check. Can be null or empty to get the current page
      Returns:
      true if all is OK, false if at least one is false
    • hasFrontEditionRight

      public static boolean hasFrontEditionRight(String rightId, String objectId, boolean editionModeOnly)
      Check if we can display the front edition button for a specific right Checks : * Rendering context == front * Edition mode * Front_Edition_Access_Right on current page * RightId available on object
      Parameters:
      rightId - right to check (can be null)
      objectId - id of page/content to check. Can be null or empty to get the current page
      editionModeOnly - Check if the user is in edition mode
      Returns:
      true if all is OK, false if at least one is false
    • hasFrontEditionRight

      public static boolean hasFrontEditionRight(String rightId, AmetysObject ao, boolean editionModeOnly)
      Check if current user has right on Ametys object for front edition Checks : * Rendering context == front * Edition mode * Front_Edition_Access_Right on current page * RightId available on object
      Parameters:
      rightId - right to check (can be null)
      ao - The ametys object check. Cannot be null
      editionModeOnly - Check if the user is in edition mode
      Returns:
      true if all is OK, false if at least one is false
    • hasFrontEditionRight

      public static boolean hasFrontEditionRight()
      Check if the current user has the Front_Edition_Access_Right right
      Returns:
      true if right granted
    • hasWorkflowRight

      public static boolean hasWorkflowRight(int actionId, String contentId, boolean checkEditionMode)
      Check if the current workflow action is available on this content
      Parameters:
      actionId - action to check
      contentId - content to check
      checkEditionMode - check also if we are in edition mode
      Returns:
      true if right is granted
    • hasWorkflowRight

      public static boolean hasWorkflowRight(List<Integer> actionIds, String contentId, boolean checkEditionMode)
      Check if a list of workflow actions are available on this content
      Parameters:
      actionIds - list of action ids
      contentId - id of the content to check
      checkEditionMode - check also if we are in edition mode
      Returns:
      true if all actions are available
    • hasWorkflowRight

      public static boolean hasWorkflowRight(List<Integer> actionIds, Content content, boolean checkEditionMode)
      Check if a list of workflow actions are available on this content
      Parameters:
      actionIds - list of action ids
      content - content to check
      checkEditionMode - check also if we are in edition mode
      Returns:
      true if all actions are available
    • getPageToolbarConfig

      public static String getPageToolbarConfig(String pageId, String addContentsConfigAsJson, boolean editionModeOnly) throws UnknownAmetysObjectException, AmetysRepositoryException, javax.jcr.RepositoryException
      Get the toolbar configuration for page: retrieve the user rights, the parent and page position
      Parameters:
      pageId - The page id
      addContentsConfigAsJson - The items configuration for adding contents as JSON string
      editionModeOnly - true to check edition mode
      Returns:
      the user's rights, parent and page position
      Throws:
      UnknownAmetysObjectException - if content is unknown
      AmetysRepositoryException - if an error occurred
      javax.jcr.RepositoryException - if an error occurred
    • getContentToolbarConfig

      public static String getContentToolbarConfig(String contentId, String zoneItemId, String restrictedActions, String jsonStepConfig, String locale, boolean editionModeOnly) throws UnknownAmetysObjectException, AmetysRepositoryException, javax.jcr.RepositoryException
      Get the toolbar configuration for content: retrieve user rights, available workflow actions, content current step and status history
      Parameters:
      contentId - The content id
      zoneItemId - The zone item id
      restrictedActions - The actions ids to retrieve. Set to null or empty to get all available workflow actions with no restriction
      jsonStepConfig - The step configuration
      locale - the locale for translation
      editionModeOnly - true to check edition mode
      Returns:
      the user's rights, available workflow actions and content current step
      Throws:
      UnknownAmetysObjectException - if content is unknown
      AmetysRepositoryException - if an error occurred
      javax.jcr.RepositoryException - if an error occurred
    • getModifiableContents

      public static String getModifiableContents(int actionId, String inputPageId, boolean checkEditionMode)
      Get a string representing a json map of the contentIds with true/false if they can/can't be modified
      Parameters:
      actionId - action to check
      inputPageId - page (can be null)
      checkEditionMode - check also if we are in edition mode
      Returns:
      {contentId : true/false, ....}
    • getUnmodifiableAttributes

      public static List<String> getUnmodifiableAttributes(Content content, List<Integer> actionIds, boolean checkEditionMode)
      Get path of unmodifiable attributes. Check if content can be modified and the restrictions on attributes
      Parameters:
      content - the content
      actionIds - the workflow action ids to check
      checkEditionMode - to check edition mode
      Returns:
      the list with the path of unmodifiable attributes (regarding of restrictions) or null if the content cannot be modified
    • getRightsForContent

      public static Map<String,Object> getRightsForContent(Content content)
      Get a map of chosen rights for a content
      Parameters:
      content - the content
      Returns:
      the chosen rights for a content
    • getWorkflowName

      public static String getWorkflowName(String workflowName, int actionId)
      Get the name of a workflow action
      Parameters:
      workflowName - workflow name
      actionId - action id in the workflow
      Returns:
      name of the workflow action
    • getPageStatus

      public static String getPageStatus(String pageId)
      Get the status (validated/draft) of all contents in a page
      Parameters:
      pageId - id of the page to check
      Returns:
      "" if not a page, "draft" if all contents are drafts, "validated" if all contents are validated, and "mixed" if there are both
    • getContentWorkflowId

      public static long getContentWorkflowId(String contentId)
      Get the workflow step id of a content
      Parameters:
      contentId - id of the content
      Returns:
      the step Id
    • getContentWorkflowId

      public static long getContentWorkflowId(Content content)
      Get the workflow step id of a content
      Parameters:
      content - content
      Returns:
      the step Id
    • getContentStatus

      public static String getContentStatus(String contentId)
      check if a content is published ot not
      Parameters:
      contentId - id of the content
      Returns:
      "validated" or "draft", "" if not found
    • getContentStatus

      public static String getContentStatus(Content content)
      check if a content is published ot not
      Parameters:
      content - content
      Returns:
      "validated" or "draft"
    • isContentLive

      public static boolean isContentLive(String contentId)
      check if a content is published ot not
      Parameters:
      contentId - id of the content
      Returns:
      true if validated
    • isContentLive

      public static boolean isContentLive(Content content)
      check if a content is published ot not
      Parameters:
      content - content
      Returns:
      true if validated
    • getZoneItemPosition

      Get the position of this zoneItem in the zone, or -1 if not found
      Parameters:
      zoneItemId - zoneitem to search
      Returns:
      zero based position, -1 if not found
      Throws:
      UnknownAmetysObjectException - If zone item is not found
      AmetysRepositoryException - If an error occurred
    • getZoneItemPosition

      public static long getZoneItemPosition(ZoneItem zoneItem)
      Get the position of this zoneItem in its parent zone, or -1 if not found
      Parameters:
      zoneItem - zoneitem
      Returns:
      zero based position, -1 if not found
    • getZoneSize

      public static long getZoneSize(String zoneName, String pageId)
      Return the size of a zone
      Parameters:
      zoneName - zone name
      pageId - page Id
      Returns:
      size of the zone (-1 if not found)
    • getZoneSize

      public static long getZoneSize(Zone zone)
      Return the size of a zone
      Parameters:
      zone - the zone
      Returns:
      size of the zone or -1 is zone is null
    • isPageModifiable

      public static boolean isPageModifiable(String pageId)
      Test if a page is modifiable
      Parameters:
      pageId - id of the page to check
      Returns:
      true if the page is modifiable, false otherwise
    • findPagesIdsByTagInDefaultWorkspace

      Returns the ids of the pages tagged with the specified tag in default workspace
      Parameters:
      tag - The tag id
      Returns:
      Array of pages ids
    • findPagesIdsByTagInDefaultWorkspace

      public static NodeList findPagesIdsByTagInDefaultWorkspace(String tag, boolean checkReadAccess)
      Returns the ids of the pages tagged with the specified tag in default workspace
      Parameters:
      tag - The tag id
      checkReadAccess - true to return only pages with read access for current user
      Returns:
      Array of pages ids
    • findPagesIdsByTagInDefaultWorkspace

      public static NodeList findPagesIdsByTagInDefaultWorkspace(String sitename, String lang, String tag)
      Returns the ids of the pages tagged with the specified tag in default workspace
      Parameters:
      sitename - The site id
      lang - The language code
      tag - The tag id
      Returns:
      Array of pages ids
    • findPagesIdsByTagInDefaultWorkspace

      public static NodeList findPagesIdsByTagInDefaultWorkspace(String sitename, String lang, String tag, boolean checkReadAccess)
      Returns the ids of the pages tagged with the specified tag in default workspace
      Parameters:
      sitename - The site id
      lang - The language code
      tag - The tag id
      checkReadAccess - true to return only pages with read access for current user
      Returns:
      Array of pages ids