Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-14830

Removing a user from a group (or deleting the group) for which the Read permission is granted on a folder synchronized for the given user is not detected as a deletion by Drive

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 8.10-HF05, 9.2
    • Component/s: Nuxeo Drive
    • Impact type:
      API change
    • Upgrade notes:
      Hide

      Added:

      • UserManager#getAncestorGroups(String groupId)
      • UserManager#notifyUserChanged(String userName, String eventId)
      • UserManager#notifyGroupChanged(String groupName, String eventId)
      • UserManager#notifyGroupChanged(String groupName, String eventId, List<String> ancestorGroupNames)
      • UserManagerImpl#USER_GROUP_CATEGORY
      • UserManagerImpl#ID_PROPERTY_KEY
      • UserManagerImpl#ANCESTOR_GROUPS_PROPERTY_KEY
      • NuxeoDriveGroupUpdateListener
      • NuxeoDriveEvents#GROUP_UPDATED
      Show
      Added: UserManager#getAncestorGroups(String groupId) UserManager#notifyUserChanged(String userName, String eventId) UserManager#notifyGroupChanged(String groupName, String eventId) UserManager#notifyGroupChanged(String groupName, String eventId, List<String> ancestorGroupNames) UserManagerImpl#USER_GROUP_CATEGORY UserManagerImpl#ID_PROPERTY_KEY UserManagerImpl#ANCESTOR_GROUPS_PROPERTY_KEY NuxeoDriveGroupUpdateListener NuxeoDriveEvents#GROUP_UPDATED
    • Sprint:
      nxfit 9.1.9, nxfit 9.1.10
    • Story Points:
      8

      Description

      Because these events are not detected by the audit change finder.
      There are some events raised: "group_modified" and "group_deleted" though this is not enough to track that a user has been removed from the group ot that a removed group was one of the user's groups, and what synchronization roots it could impact

      The simplest seems to have a Drive listener on these events and force the clients to make a remote full scan in this case. Though optimizing at least to impact only the users related to the group changes would be nice.
      ---------------------------------------------------------------------------------------------------
      Finally, we are now relying on the NuxeoDriveGroupUpdateListener to handle the group change events fired by UserManager#notifyGroupChanged(String groupName, String eventId, List<String> ancestorGroupNames) and make sure the FileSystemChangeFinder detects them.
      The tracked events are "group_created", "group_deleted" and "group_modified".

      For SQL-base directories, the notifyGroupChanged method is called directly when invoking createGroup, deleteGroup or updateGroup on the UserManager.
      For LDAP-based directories, it must be called manually, through an Automation operation or a Seam component for instance. In this case, note that when deleting a group, the list of group ancestors must be computed before the group is actually deleted to be able to provide the ancestorGroupNames parameter to UserManager#notifyGroupChanged(String groupName, String eventId, List<String> ancestorGroupNames).

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 3 days, 5 hours
                  3d 5h