Uploaded image for project: 'Chemistry (Retired)'
  1. Chemistry (Retired)
  2. CMIS-645

ACL is not applied when a document\folder is being created

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • None
    • DotCMIS 0.6
    • dotcmis
    • None

    Description

      There is an issue with ACL applying when a document or folder is being created.
      The code below does not work:
      IDocument cmisDoc = folder.CreateDocument(properties, contentStream, null, null, cmisAces, null, new OperationContext()

      { IncludeAcls = true }

      );

      cmisDoc.Acl does not contain provided ACEs.

      But after that :
      cmisDoc.ApplyAcl(cmisAces, null, AclPropagation.RepositoryDetermined);

      It does.

      I looked into the code and found out that the method DotCMIS.Binding.AtomPub.ObjectService.HandleAclModifications() seems to be working in a wrong way.
      The condition in the code below “if (originalAces != null)” is always false. If I comment it then it works.

      private void HandleAclModifications(String repositoryId, AtomEntry entry, IAcl addAces, IAcl removeAces)
      {
      if (!IsAclMergeRequired(addAces, removeAces))

      { return; }

      IAcl originalAces = null;

      // walk through the entry and find the current ACL
      foreach (AtomElement element in entry.GetElements())
      {
      if (element.Object is cmisObjectType)

      { // extract current ACL cmisObjectType cmisObject = (cmisObjectType)element.Object; originalAces = Converter.Convert(cmisObject.acl, cmisObject.exactACLSpecified ? (bool?)cmisObject.exactACL : null); break; }

      }

      if (originalAces != null)
      {
      // merge and update ACL
      IAcl newACL = MergeAcls(originalAces, addAces, removeAces);
      if (newACL != null)

      { UpdateAcl(repositoryId, entry.Id, newACL, null); }

      }
      }

      Attachments

        Activity

          People

            fmui Florian Müller
            andennis Denis Andreev
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: