Uploaded image for project: '[Read Only] - Hippo Repository'
  1. [Read Only] - Hippo Repository
  2. REPO-1661

When using groupfolders the hipposys:dirlevels value is not applied correctly

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Low
    • Resolution: Fixed
    • 3.2.7, 4.2.0
    • 5.0.0
    • None

    Description

      It is possible to use group folder like the following scenario. This can be extremely handy when you have a lot of groups configured (like us).

      jcr:root
      + hippo:configuration
        + hippo:groups
          + groupfolder1 (hipposys:groupfolder)
            + group1 (hipposys:group)
          + groupfolder2 (hipposys:groupfolder)
            + group2 (hipposys:group)
        + hippo:security
          + internal
            + hipposys:groupprovider
              - hipposys:dirlevels = 1

      In this scenario the user is not assigned to the second group (group2) due to a bug in AbstractGroupManager#getMembershipsByPath(String userId, String providerId, Node groupFolder, int level).

      In this method the construct level++ is used to pass the level, however this also causes the current level to be increased which then gets passed to the next groupfolder it encounters.

      I have supplied a patch that fixes this issue.

      Right now we circumvent the issue by setting the hipposys:dirlevels value to an arbitrary large number (100 in our case), but it would be nicer if this issue gets fixed in the future.

      The problem occurs in our current version (3.2.7), but is also there in the latest version.

       

      Attachments

        Activity

          People

            clientserviceteam Client Service Team
            mveerman Maarten Veerman
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: