Tenho um servicetask em que gravo os anexos do processo no GED, apenas grupos específicos podem ver os anexos de cada solicitação e esse grupo é definido por um campo hidden no formulário. Como posso atribuir a permissão à pasta em que os anexos estão gravados apenas para esse grupo?
Você pode usar esse script de criação de pasta como exemplo Source of cadastro_fornecedor.criarPastaFornecedorCasoNaoExista.js - Exemplos-Avancados-de-Processos - fluig Stash e adaptar para adicionar as permissões:
var objetoPasta = new com.fluig.sdk.api.document.FolderVO();
var permissoes = new java.util.ArrayList();
var permissao = com.fluig.sdk.api.document.DocumentPermissionVO();
var tipo = 1; // 1 = por usuário, 2 = grupo e 3 = todos os usuários
var nivel = 1; // 0 = leitura, 1 = salvar, 2 = modificar e 3 = total
permissao.setAttributionType(tipo);
permissao.setAttributionValue(form.getValue("campoHidden")); // nome do usuário ou do grupo que terá permissão
permissao.setSecurityLevel(nivel);
// permissao.setDownloadEnabled(true); // se quiser marcar que permite download
// permissao.setShowContent(true); // se quiser habilitar a opção de permiter listar conteúdo
permissoes.add(permissao);
objetoPasta.setPermissoes(permissoes);
Agradeço pela ajuda, está sendo muito útil.
Estou com certa dificuldade de entender como atribuir essas permissões à uma pasta já existente, consegui adaptar seu script para atribuir as permissões ao criar uma nova pasta pela função create() do fluigAPI.getFolderDocumentService(), mas não consegui achar outras funções/objetos que façam apenas a atualiazação da pasta que já existe.
O mais próximo que encontrei foi o updateFile() mas este está relacionado apenas ao objeto DocumenteVO(), não achei um correspondente para o FolderVO().
Dei uma olhada e realmente na FolderDocumentService não tem a atualização.
Como toda pasta é um documento, dá pra usar então a DocumentService.
var version = 1000; // As pastas não são versionadas, então a versão sempre vai ser 1000.
var documentId = 0; // aqui vais ter que substituir pelo id da tua pasta
var documentService = fluigAPI.getDocumentService();
var permissoes = documentService.getDocumentPermissions(documentId, version); // recupera a lista atual de permissões
var permissao = ...; // cria a permissao da mesma forma que antes
permissoes.add(permissao); // adiciona a nova permissão à lista
documentService.setDocumentPermissions(documentId, permissoes)
Funcionou perfeitamente!
Sou iniciante e em alguns momentos o desenvolvimento sofre algumas pausas por falta de conhecimento, por tanto suas respostas foram de grande valor e utilidade pra mim, agradeço muito!