Class HibernateMenuDAO

    • Method Detail

      • getUserDAO

        public UserDAO getUserDAO()
      • setUserDAO

        public void setUserDAO​(UserDAO userDAO)
      • findByUserId

        public List<Menu> findByUserId​(long userId)
        Description copied from interface: MenuDAO
        Finds authorized menus for a user.
        Specified by:
        findByUserId in interface MenuDAO
        Parameters:
        userId - ID of the user.
        Returns:
        List of found menus.
      • findByUserId

        public List<Menu> findByUserId​(long userId,
                                       long parentId,
                                       boolean enabledOnly)
        Description copied from interface: MenuDAO
        Finds direct children of a menu
        Specified by:
        findByUserId in interface MenuDAO
        Parameters:
        userId - identifier of the user
        parentId - MenuId of the menu which children are wanted
        enabledOnly - if the menus must also be enabled
        Returns:
        List of found menus sorted by name
      • findByUserId

        public List<Menu> findByUserId​(long userId,
                                       long parentId,
                                       Integer type,
                                       boolean enabledOnly)
      • findChildren

        public List<Menu> findChildren​(long parentId,
                                       Integer max)
        Description copied from interface: MenuDAO
        Finds direct children of a menu.
        Specified by:
        findChildren in interface MenuDAO
        Parameters:
        parentId - MenuId of the menu which children are wanted
        max - Optional, maximum number of children
        Returns:
        List of found menus
      • findChildren

        public List<Menu> findChildren​(long parentId,
                                       long userId)
        Description copied from interface: MenuDAO
        Finds direct children of a menu accessible by the given user.
        Specified by:
        findChildren in interface MenuDAO
        Parameters:
        parentId - MenuId of the menu which children are wanted
        userId - Identifier of the user that mush have read access
        Returns:
        List of found menus.
      • findByParentId

        public List<Menu> findByParentId​(long parentId,
                                         boolean enaledOnly)
        Description copied from interface: MenuDAO
        Finds all children(direct and indirect) by parentId
        Specified by:
        findByParentId in interface MenuDAO
        Parameters:
        parentId - identifier of the parent menu
        enaledOnly - if the menus must also be enabled
        Returns:
        list of children menus
      • isWriteEnable

        public boolean isWriteEnable​(long menuId,
                                     long userId)
        Description copied from interface: MenuDAO
        This method is looking up for writing rights for a menu and an user
        Specified by:
        isWriteEnable in interface MenuDAO
        Parameters:
        menuId - ID of the menu
        userId - ID of the user
        Returns:
        id the user has write permission
      • isReadEnable

        public boolean isReadEnable​(long menuId,
                                    long userId)
        Description copied from interface: MenuDAO
        This method is looking up for read rights for a menu and an user
        Specified by:
        isReadEnable in interface MenuDAO
        Parameters:
        menuId - ID of the menu
        userId - ID of the user
        Returns:
        if the user can access the menu
      • findNameById

        public String findNameById​(long menuId)
        Description copied from interface: MenuDAO
        This method selects only the menu text from a menu
        Specified by:
        findNameById in interface MenuDAO
        Parameters:
        menuId - Id of the menu
        Returns:
        Selected menu text
      • findMenuIdByUserId

        public List<Long> findMenuIdByUserId​(long userId,
                                             boolean enabledOnly)
        Description copied from interface: MenuDAO
        This method selects only the menuId from the menus for which a user is authorized
        Specified by:
        findMenuIdByUserId in interface MenuDAO
        Parameters:
        userId - ID of the user
        enabledOnly - if the menus must also be enabled
        Returns:
        List of selected menuId's
      • isMenuWriteable

        public int isMenuWriteable​(long menuId,
                                   long userId)
        Description copied from interface: MenuDAO
        Returns if a menu is writeable for a user
        Specified by:
        isMenuWriteable in interface MenuDAO
        Parameters:
        menuId - check this menu
        userId - privileges for this should be checked
        Returns:
        a 0 if false, a 1 if true
        See Also:
        MenuDAO.isMenuWriteable(long, long)
      • hasWriteAccess

        public boolean hasWriteAccess​(Menu menu,
                                      long userId)
        Description copied from interface: MenuDAO
        Checks that the user has access to the menu and all its sub-items
        Specified by:
        hasWriteAccess in interface MenuDAO
        Parameters:
        menu - the menu
        userId - identifier of the menu
        Returns:
        if the user has write permission
      • findByGroupId

        public List<Menu> findByGroupId​(long groupId)
        Description copied from interface: MenuDAO
        Finds all menus accessible by the passed group
        Specified by:
        findByGroupId in interface MenuDAO
        Parameters:
        groupId - The group id
        Returns:
        The List of menus
      • findIdByUserId

        public List<Long> findIdByUserId​(long userId,
                                         long parentId,
                                         Integer type)
      • findByName

        public List<Menu> findByName​(String name)
        Description copied from interface: MenuDAO
        Finds all menus by menu text.
        Specified by:
        findByName in interface MenuDAO
        Parameters:
        name - name of the menu
        Returns:
        List of menus with given menu text.
      • findByName

        public List<Menu> findByName​(Menu parent,
                                     String name,
                                     boolean caseSensitive)
        Description copied from interface: MenuDAO
        Finds all menus by menu text, contained in the parent menu
        Specified by:
        findByName in interface MenuDAO
        Parameters:
        parent - The parent menu(optional)
        name - the name to search
        caseSensitive - if we have to consider the search case sensitive
        Returns:
        List of menus with given menu name.
      • computePathExtended

        public String computePathExtended​(long menuId)
        Description copied from interface: MenuDAO
        Dynamically computes the path extended for the specified menu. The path extended is a human readable path in the form: /menu1/menu2/menu3
        Specified by:
        computePathExtended in interface MenuDAO
        Parameters:
        menuId - identifier of the menu
        Returns:
        full path of the menu
      • findByNameAndParentId

        public List<Menu> findByNameAndParentId​(String name,
                                                long parentId)
        Description copied from interface: MenuDAO
        Finds that folder that lies under a specific parent (given by the id) an with a given text(like operator is used)
        Specified by:
        findByNameAndParentId in interface MenuDAO
        Parameters:
        name - name of the menu
        parentId - identifier of the parent menu
        Returns:
        list of manues
      • findParents

        public List<Menu> findParents​(long menuId)
        Description copied from interface: MenuDAO
        Returns a List of menus being a parent of the given menu. The list is ordered starting from the root of menus.
        Specified by:
        findParents in interface MenuDAO
        Parameters:
        menuId - identifier of the group
        Returns:
        hierarchy of parents
      • restore

        public void restore​(long menuId,
                            boolean parents)
                     throws PersistenceException
        Description copied from interface: MenuDAO
        Restores a previously deleted menu
        Specified by:
        restore in interface MenuDAO
        Parameters:
        menuId - The menu identifier
        parents - true if parents must be restored also
        Throws:
        PersistenceException - is happened a database error
      • findMenuIdByUserIdAndPermission

        public List<Long> findMenuIdByUserIdAndPermission​(long userId,
                                                          Permission permission,
                                                          boolean enabledOnly)
        Description copied from interface: MenuDAO
        Finds all menus ids with a specific permission enabled on the specifies user
        Specified by:
        findMenuIdByUserIdAndPermission in interface MenuDAO
        Parameters:
        userId - The user identifier
        permission - The permission to check
        enabledOnly - if the menus must also be enabled
        Returns:
        list of folder IDs
      • applyRightToTree

        public boolean applyRightToTree​(long id)
        Description copied from interface: MenuDAO
        Propagates the security policies of a node to the whole subtree
        Specified by:
        applyRightToTree in interface MenuDAO
        Parameters:
        id - identifier of a folder
        Returns:
        true if all went correctly
      • findIdByUserId

        public List<Long> findIdByUserId​(long userId,
                                         long parentId)
        Description copied from interface: MenuDAO
        This method selects only the menuId from the menus for which a user is authorized. Only menus direct child of the specified parent are returned.
        Specified by:
        findIdByUserId in interface MenuDAO
        Parameters:
        userId - ID of the user.
        parentId - Parent menu
        Returns:
        List of selected menuId's.
      • createPath

        public Menu createPath​(long parentId,
                               long tenantId,
                               int type,
                               String path,
                               boolean inheritSecurity)
                        throws PersistenceException
        Description copied from interface: MenuDAO
        Creates the menu for the specified path. All unexisting nodes specified in the path will be created.
        Specified by:
        createPath in interface MenuDAO
        Parameters:
        parentId - Identifier of the parent menu
        tenantId - Identifier of the tenant that will own the new menu
        type - The type of the created menus
        path - The folder path(for example /dog/cat/mouse)
        inheritSecurity - If true the new menus will 'point' to the parent for the security policies.
        Returns:
        The created folder
        Throws:
        PersistenceException - error at data layer