AnsweredAssumed Answered

Remover permissão (em pasta ou documento) de um utilizador através do CMIS

Question asked by pmans on Sep 24, 2018
Latest reply on Oct 3, 2018 by pmans

Boa tarde...

 

Estou a explorar a utilização do CMIS para a gestão de permissões dos utilizadores em pastas e documentos.

Encontrei informação de como adicionar permissões, mas não de como remover.

Consigo adicionar permissões aos utilizadores com os vários perfis disponibilizados no Alfresco: Coordinator, Collaborator; Editor e Consumer.

 

        OperationContext operationContext = new OperationContextImpl();
        operationContext.setIncludeAcls(true);
        Folder testFolder = (Folder) session.getObject("72deb421-3b8e-4268-9987-9c59a19f4a13");
        testFolder = (Folder) session.getObject(testDoc, operationContext);
        List<String> permissions = new ArrayList<String>();
        permissions.add("{http://www.alfresco.org/model/content/1.0}folder.Coordinator");
        String principal = "rui.santos";
        Ace aceIn = session.getObjectFactory().createAce(principal, permissions);
        List<Ace> aceListIn = new ArrayList<Ace>();
        aceListIn.add(aceIn);
        testDoc.addAcl(aceListIn, AclPropagation.REPOSITORYDETERMINED);
        testDoc = (Folder) session.getObject(testDoc, operationContext);

 

Para remover uma permissão do "rui.santos" , fiz o seguinte:

 

        OperationContext operationContext = new OperationContextImpl();
        operationContext.setIncludeAcls(true);
        Folder testFolder = (Folder) session.getObject("72deb421-3b8e-4268-9987-9c59a19f4a13");
        testFolder = (Folder) session.getObject(testDoc, operationContext);
        List<String> permissions = new ArrayList<String>();
        permissions.add("{http://www.alfresco.org/model/content/1.0}folder.Coordinator");
        String principal = "rui.santos";
        Ace aceIn = session.getObjectFactory().createAce(principal, permissions);
        List<Ace> aceListIn = new ArrayList<Ace>();
        aceListIn.add(aceIn);
        testDoc.removeAcl(aceListIn, AclPropagation.REPOSITORYDETERMINED);
        testDoc = (Folder) session.getObject(testDoc, operationContext);

 

O problema é que ao executar este método, é removido todas as permissões de todos os utilizadores associados a pasta.

 

O que estarei a fazer de errado?

Outcomes