Class ShareableUtil


  • public class ShareableUtil
    extends Object
    Utility methods that will make it easier to implement the Shareable interface, including data validation.
    Version:
    2.0
    Author:
    Nicklas
    See Also:
    Shareable
    Last modified
    $Date: 2011-03-16 12:48:47 +0100 (on, 16 mar 2011) $
    • Constructor Detail

      • ShareableUtil

        public ShareableUtil()
    • Method Detail

      • setProjectKey

        public static void setProjectKey​(ShareableData shareableData,
                                         ProjectKey projectKey)
        Set the project key of a ShareableData object.
        Parameters:
        shareableData - The data object to set project key to. Null is not allowed.
        projectKey - Project key to be set.
      • setItemKey

        public static void setItemKey​(DbControl dc,
                                      ShareableData shareableData,
                                      ItemKey itemKey)
        Set the item key of a ShareableData object. If the logged in user doesn't have Permission.SHARE_TO_EVERYONE permission then new item key must, if it includes sharing to the everyone group, have exactly the same permissions as there is in the existing item key.
        Parameters:
        dc - A DbControl
        shareableData - The item to share
        itemKey - The new item key
        Throws:
        PermissionDeniedException - If the logged in user doesn't have permission and the new item key contains a permission that is different from the existing permission
        Since:
        2.6
      • shareRecursively

        public static int shareRecursively​(DbControl dc,
                                           Directory directory)
        Share all files and sub-directories in the given directory with the same permissions. This method will of course only change the permissions on items that the current user has Permission.SET_PERMISSION on.
        Parameters:
        dc - A DbControl for database access
        directory - The directory
        Returns:
        The number of files and directories processed
        Since:
        2.8
      • copyPermissions

        public static void copyPermissions​(DbControl dc,
                                           Shareable from,
                                           Shareable to)
        Copy permissions from one item to another. If the 'from' item is shared to the 'EVERYONE' group, but the logged in user lacks the Permission.SHARE_TO_EVERYONE permission, the share to everyone is removed. If the 'to' item is a new item and a project is active the new item is also shared with the settings from the project.
        Parameters:
        from - The item to copy permissions from
        to - The item to copy permissions to
        Since:
        2.8
      • merge

        public static ItemKey merge​(DbControl dc,
                                    ItemKey... keys)
        Merge one or more item keys into a new item key that combines all the permissions.
        Parameters:
        keys - An array with the item keys (null elements are ignored)
        Returns:
        A new or existing item key
        Since:
        2.16
      • merge

        public static ProjectKey merge​(DbControl dc,
                                       ProjectKey... keys)
        Merge one or more project keys into a new project key that combines all the permissions.
        Parameters:
        keys - An array with the project keys (null elements are ignored)
        Returns:
        A new or existing project key
        Since:
        2.16