cancel
Showing results for 
Search instead for 
Did you mean: 

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

pmans
Star Contributor
Star Contributor

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?

1 REPLY 1

pmans
Star Contributor
Star Contributor

Boa tarde.

Alguém consegue ajudar neste assunto? Já fiz vários testes e o resultado final é sempre o mesmo.

Ao usar testDoc.removeAcl(arg0, arg1) da bibilioteca OpenCMIS para remover um Ace, é removido todos os Aces.

Obrigado

Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.