Class HibernateMenuDAO

java.lang.Object
com.logicaldoc.core.HibernatePersistentObjectDAO<Menu>
com.logicaldoc.core.security.dao.HibernateMenuDAO
All Implemented Interfaces:
PersistentObjectDAO<Menu>, MenuDAO

public class HibernateMenuDAO extends HibernatePersistentObjectDAO<Menu> implements MenuDAO
Hibernate implementation of MenuDAO
Since:
3.0
Author:
Marco Meschieri - LogicalDOC
  • Method Details

    • getUserDAO

      public UserDAO getUserDAO()
    • setUserDAO

      public void setUserDAO(UserDAO userDAO)
    • store

      public void store(Menu menu) throws PersistenceException
      Description copied from interface: PersistentObjectDAO
      This method persists the entity object
      Specified by:
      store in interface PersistentObjectDAO<Menu>
      Overrides:
      store in class HibernatePersistentObjectDAO<Menu>
      Parameters:
      menu - entity to be stored
      Throws:
      PersistenceException - raised in case of errors in the database
    • 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:
    • 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
    • deleteAll

      public void deleteAll(Collection<Menu> menus) throws PersistenceException
      Description copied from interface: PersistentObjectDAO
      Deletes all entries form the database
      Specified by:
      deleteAll in interface PersistentObjectDAO<Menu>
      Overrides:
      deleteAll in class HibernatePersistentObjectDAO<Menu>
      Parameters:
      menus - The entities to be deleted
      Throws:
      PersistenceException - raised in case of errors in the database
    • delete

      public void delete(long menuId, int code) throws PersistenceException
      Description copied from interface: PersistentObjectDAO
      This method deletes an entity and you can give a deletion code
      Specified by:
      delete in interface PersistentObjectDAO<Menu>
      Overrides:
      delete in class HibernatePersistentObjectDAO<Menu>
      Parameters:
      menuId - ID of the entity which should be deleted
      code - Deletion code
      Throws:
      PersistenceException - raised in case of errors in the database
    • 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