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

Reply via email to