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

cancel
Showing results for 
Search instead for 
Did you mean: 
pmans
Active Member II

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

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
pmans
Active Member II

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

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