Thank you for your reply. This is my eventlistener
<component name="org.nuxeo.project.sample.event-listeners">
<extension target="org.nuxeo.ecm.core.event.EventServiceComponent"
point="listener">
*<listener name="documentCreationListener" async="false" postCommit="false"
class="org.nuxeo.project.sample.DocumentCreationListener" order="157">*
*<event>documentCreated</event>*
*</listener>*
<listener name="sectionCreationListener" async="false" postCommit="false"
class="org.nuxeo.project.sample.SectionCreationListener" order="157">
<event>documentCreated</event>
</listener>
<listener name="publishCreationListener" async="false" postCommit="false"
class="org.nuxeo.project.sample.PublishCreationListener" order="157">
<event>documentPublished</event>
</listener>
</extension>
</component>
*and call tha java class that create all document and assign rights:*
package org.nuxeo.project.sample;
import java.security.Principal;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.seam.annotations.In;
import org.nuxeo.ecm.core.api.ClientException;
import org.nuxeo.ecm.core.api.CoreSession;
import org.nuxeo.ecm.core.api.DocumentModel;
import org.nuxeo.ecm.core.api.event.DocumentEventTypes;
import org.nuxeo.ecm.core.api.impl.DocumentModelImpl;
import org.nuxeo.ecm.core.api.security.ACE;
import org.nuxeo.ecm.core.api.security.ACL;
import org.nuxeo.ecm.core.api.security.ACP;
import org.nuxeo.ecm.core.event.Event;
import org.nuxeo.ecm.core.event.EventContext;
import org.nuxeo.ecm.core.event.EventListener;
import org.nuxeo.ecm.core.event.impl.DocumentEventContext;
import org.nuxeo.ecm.platform.ui.web.api.NavigationContext;
import org.nuxeo.runtime.model.ComponentContext;
import org.nuxeo.runtime.model.Extension;
public class DocumentCreationListener implements EventListener {
@In(create = true)
protected transient NavigationContext navigationContext;
private static final Log log =
LogFactory.getLog(DocumentCreationListener.class);
public DocumentCreationListener(){ }
public void handleEvent(Event event) throws ClientException {
EventContext ctx = event.getContext();
DocumentEventContext context = (DocumentEventContext) ctx;
CoreSession documentManager = ctx.getCoreSession();
DocumentModel model = context.getSourceDocument();
if (!(ctx instanceof DocumentEventContext)) {
return;
}
// is the document created?
if
(!DocumentEventTypes.DOCUMENT_CREATED.equals(event.getName())) {
log.debug("Document Event Ignored: " + event.getName());
return;
}
if(model.getType().equals("Incarto"))
{
String namedoc = model.getName();
String path = model.getPathAsString();
String anno = path.substring(35,39);
System.out.println("Anno " + anno + " e path " + path);
String pathsection = "/default-domain/sections/incarti"
+ "/" + anno;
System.out.println("Path section incarto " +
pathsection);
String titolo = (String)
model.getProperty("dublincore", "title");
System.out.println("titolo " + titolo);
//sezione
DocumentModel modelIncarto = new
DocumentModelImpl(pathsection, titolo, "Section");
modelIncarto.setProperty("dublincore", "title", titolo);
modelIncarto.setProperty("dublincore", "description",
"Archiviazione ");
documentManager.createDocument(modelIncarto);
documentManager.save();
String settorepath = pathsection + "/" + titolo;
System.out.println("Path settore " + settorepath);
DocumentModel modelsecAcquisto = new
DocumentModelImpl(settorepath, "Acquisto", "Section");
modelsecAcquisto.setProperty("dublincore", "title",
"Acquisto");
modelsecAcquisto.setProperty("dublincore",
"description", "Archiviazione");
documentManager.createDocument(modelsecAcquisto);
documentManager.save();
DocumentModel modelsecVendita = new
DocumentModelImpl(settorepath, "Vendita", "Section");
modelsecVendita.setProperty("dublincore", "title",
"Vendita");
modelsecVendita.setProperty("dublincore",
"description", "Archiviazione");
documentManager.createDocument(modelsecVendita);
documentManager.save();
DocumentModel modelsecTecnico = new
DocumentModelImpl(settorepath, "Tecnico", "Section");
modelsecTecnico.setProperty("dublincore", "title",
"Tecnico");
modelsecTecnico.setProperty("dublincore",
"description", "Archiviazione");
documentManager.createDocument(modelsecTecnico);
documentManager.save();
//workspace
DocumentModel modelAcquisto = new
DocumentModelImpl(path, "Acquisto", "Settore");
modelAcquisto.setProperty("dublincore", "title",
"Acquisto");
modelAcquisto.setProperty("settore", "descrsettore",
"Settore acquisto");
documentManager.createDocument(modelAcquisto);
documentManager.save();
DocumentModel modelVendita = new
DocumentModelImpl(path, "Vendita", "Settore");
modelVendita.setProperty("dublincore", "title",
"Vendita");
modelVendita.setProperty("settore", "descrsettore",
"Settore vendita");
documentManager.createDocument(modelVendita);
documentManager.save();
DocumentModel modelTecnico = new
DocumentModelImpl(path, "Tecnico", "Settore");
modelTecnico.setProperty("dublincore", "title",
"Tecnico");
modelTecnico.setProperty("settore", "descrsettore",
"Settore tecnico");
documentManager.createDocument(modelTecnico);
documentManager.save();
}
System.out.println("Assegnazione diritti");
ACP acp = model.getACP();
ACL acl = acp.getOrCreateACL("socialDirectorRole");
/*ACE aceBrowseA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_ADM,SecurityConst.REMOVE, false);
System.out.println("REMOVE");
ACE aceReadA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_ADM,SecurityConst.MODIFY, false);
System.out.println("MODIFY");
ACE aceWritePA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_ADM,SecurityConst.COPY, false);
System.out.println("COPY");
ACE aceWriteCA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_ADM,SecurityConst.RENAME, false);
System.out.println("RENAME");
acl.add(aceBrowseA);
acl.add(aceReadA);
acl.add(aceWritePA);
acl.add(aceWriteCA);
*/
ACE aceBrowseA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.BROWSE, true);
ACE aceReadA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.READ, true);
ACE aceWritePA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.WRITE_PROPERTIES, true);
ACE aceWriteCA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.ADD_CHILDREN, true);
ACE aceWriteLA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.WRITE_LIFE_CYCLE, true);
ACE aceNegRA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.REMOVE, false);
ACE aceNegRCA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.REMOVE_CHILDREN, false);
ACE aceNegWSA = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.WRITE_SECURITY, true);
ACE aceManageMWK = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.MANAGE_WORKFLOWS, true);
ACE aceRead = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.READ_LIFE_CYCLE, true);
ACE acePart = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.VIEW_WORKLFOW, true);
ACE acePartC = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.COPY, false);
ACE acePartR = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.RENAME, false);
ACE aceWriteTUTTOAMM = new
ACE(SocialDirector.SOCIAL_DIRECTOR_AMM,SecurityConst.WRITE, true);
acl.add(aceWriteTUTTOAMM);
acl.add(aceBrowseA);
acl.add(aceReadA);
acl.add(aceNegRA);
acl.add(aceNegRCA);
acl.add(aceNegWSA);
acl.add(aceWritePA);
acl.add(aceWriteCA);
acl.add(aceWriteLA);
acl.add(aceManageMWK);
acl.add(aceRead);
acl.add(acePart);
acl.add(acePartC);
acl.add(acePartR);
....
model.setACP(acp, true);
System.out.println("Wrote new security entries...");
}
public void activate(ComponentContext context) throws Exception {
}
public void deactivate(ComponentContext ctx) throws Exception {
//log.info("Deactivating DocumentCreationListener...:" + ctx);
}
public void registerExtension(Extension ext) throws Exception {
//log.warn("called registerExtension:" + ext);
}
public void unregisterExtension(Extension ext) throws Exception {
//log.warn("called unRegisterExtension:" + ext);
}
}
--
Posted by "fede87" at Nuxeo Discussions <http://nuxeo.org/discussions>
View the complete thread:
<http://www.nuxeo.org/discussions/thread.jspa?threadID=3513#10776>
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm
To unsubscribe, go to http://lists.nuxeo.com/mailman/options/ecm