private void init() { error = false; SinekartaUtility su = SinekartaUtility.getCurrentInstance(); su.setDataToAppletCertificateChoice(null); su.setDataFromAppletCertificateChoice(null); su.setDataToAppletSign(null); su.setDataFromAppletSign(null); description = null; selectedDocumentNodePdf = null; selectedDocumentNode = browseBean.getActionSpace().getNodeRef(); documentName = (String) su.getNodeService().getProperty(selectedDocumentNode, ContentModel.PROP_NAME); documentPath = NodeTools.translatePath( su.getNodeService(), su.getNodeService().getPath(selectedDocumentNode)); documentPath = documentPath.substring(0, documentPath.indexOf(documentName)); // verify if a signed document version of this document already exists selectedDocumentNodeParent = su.getNodeService().getPrimaryParent(selectedDocumentNode).getParentRef(); NodeRef exist = null; int i = 0; do { // calculating new filename documentNamePdf = (String) su.getNodeService().getProperty(selectedDocumentNode, ContentModel.PROP_NAME); int dotIdx = documentNamePdf.lastIndexOf('.'); if (i == 0) { documentNamePdf = documentNamePdf.substring(0, dotIdx) + Configuration.getInstance().getSignedSuffix() + documentNamePdf.substring(dotIdx); } else { documentNamePdf = documentNamePdf.substring(0, dotIdx) + " (" + i + ")" + Configuration.getInstance().getSignedSuffix() + documentNamePdf.substring(dotIdx); } // adjust documentName documentName = PDFTools.calculatePdfName(documentNamePdf); exist = su.getFileFolderService().searchSimple(selectedDocumentNodeParent, documentName); i++; } while (exist != null); // preparazione area di input per applet prepareDataToAppletCertificateChoice(); su.setDataFromAppletCertificateChoice(null); }
@Override protected void executeImpl(Action action, NodeRef actionedUponNodeRef) { if (tracer.isDebugEnabled()) tracer.debug("DocumentAcquiring action, execution init"); // the document has already the documentAcquiring aspect? if yes, nothing to do if (nodeService.hasAspect(actionedUponNodeRef, SinekartaModel.ASPECT_QNAME_DOCUMENT_ACQUIRING)) return; // the document has the timestamp mark aspect? if yes, nothing to do if (nodeService.hasAspect(actionedUponNodeRef, SinekartaModel.ASPECT_QNAME_TIMESTAMP_MARK)) return; // the node to add is an archive, we don't need any acquire processing if (nodeService.getType(actionedUponNodeRef).equals(SinekartaModel.TYPE_QNAME_ARCHIVE)) return; // Someone is rendering the document (by ie in share), the document must not be acquired // if the document is a child of an acquired document and is not to render, it's a working copy // for displaying if (nodeService.hasAspect( nodeService.getPrimaryParent(actionedUponNodeRef).getParentRef(), SinekartaModel.ASPECT_QNAME_DOCUMENT_ACQUIRING)) return; // && // nodeService.hasAspect(actionedUponNodeRef, // org.alfresco.model.RenditionModel.ASPECT_HIDDEN_RENDITION)) Integer documentTypeId = (Integer) action.getParameterValue(PARAM_DOCUMENT_TYPE); DocumentType documentType = null; if (documentTypeId != null) { try { documentType = sinekartaDao.getDocumentType(documentTypeId); } catch (Exception e) { tracer.error("wrong documentType for mark folder prepare.", e); throw new DocumentAcquiringException("wrong documentType for mark folder prepare.", e); } } Date documentDate = (Date) action.getParameterValue(PARAM_DOCUMENT_DATE); String documentLanguage = (String) action.getParameterValue(PARAM_DOCUMENT_LANGUAGE); // getting sinekarta admin user String sinekartaAdminUserId = NodeTools.getSinekartaAdminUserId(nodeService, searchService, companyHomePath); DocumentAcquiringWorker execAsSinekartaAdmin = new DocumentAcquiringWorker( nodeService, contentService, actionedUponNodeRef, actionService, documentType, documentDate, documentLanguage); // running core of action as sinekarta admin Boolean result = AuthenticationUtil.runAs(execAsSinekartaAdmin, sinekartaAdminUserId); if (!result) { tracer.error( "document acquiring failed, please verify if the document already exists on archive : " + execAsSinekartaAdmin.getKoReason()); throw new DocumentAcquiringException( "document acquiring failed, please verify if the document already exists on archive : " + execAsSinekartaAdmin.getKoReason()); } if (tracer.isDebugEnabled()) tracer.debug("DocumentAcquiring action, execution end"); }