From bf6e216bfd0b19cf1d35c18e12720a629951bd24 Mon Sep 17 00:00:00 2001 From: "marco.spasiano" Date: Thu, 25 Jul 2024 16:33:25 +0200 Subject: [PATCH] Added service to print the application without personal data, modify file acl permission --- .../it/cnr/si/cool/jconon/service/call/CallService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cool-jconon-backend/src/main/java/it/cnr/si/cool/jconon/service/call/CallService.java b/cool-jconon-backend/src/main/java/it/cnr/si/cool/jconon/service/call/CallService.java index 160a2e077..c3798bbd7 100644 --- a/cool-jconon-backend/src/main/java/it/cnr/si/cool/jconon/service/call/CallService.java +++ b/cool-jconon-backend/src/main/java/it/cnr/si/cool/jconon/service/call/CallService.java @@ -3035,6 +3035,7 @@ public Integer printWithoutPersonalData(Session session, String callId, String c criteriaApplications.add(Restrictions.isNull(JCONONPropertyIds.APPLICATION_ESCLUSIONE_RINUNCIA.value())); ItemIterable applications = criteriaApplications.executeQuery(session, false, session.getDefaultContext()); int index = 0; + final BindingSession adminSession = cmisService.getAdminSession(); for (QueryResult queryResult : applications.getPage(Integer.MAX_VALUE)) { final Folder application = (Folder) session.getObject(queryResult.getPropertyValueById(PropertyIds.OBJECT_ID)); LOGGER.info("Stampa domanda senza dati personali di: {} n. {}", application.getPropertyValue(JCONONPropertyIds.APPLICATION_USER.value()), index); @@ -3052,7 +3053,11 @@ public Integer printWithoutPersonalData(Session session, String callId, String c properties.put(PropertyIds.NAME, name); ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(is.available()), "application/pdf", is); try { - application.createDocument(properties, contentStream, VersioningState.MAJOR); + final Document document = application.createDocument(properties, contentStream, VersioningState.MAJOR); + aclService.setInheritedPermission(adminSession, document.getPropertyValue(CoolPropertyIds.ALFCMIS_NODEREF.value()), false); + Map acesGroup = new HashMap(); + acesGroup.put(JcononGroups.CONCORSI.group(), ACLType.Consumer); + aclService.addAcl(adminSession, document.getPropertyValue(CoolPropertyIds.ALFCMIS_NODEREF.value()), acesGroup); } catch (CmisContentAlreadyExistsException _ex) { StreamSupport.stream(application.getChildren().spliterator(), false) .filter(cmisObject -> cmisObject.getName().equals(name))