09-24-2018 11:09 AM
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?
10-03-2018 09:46 AM
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
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.