Importar Nuevos Usuarios

cancel
Showing results for 
Search instead for 
Did you mean: 
joaotpd
Active Member

Importar Nuevos Usuarios

Buenos dias!

Este es mi primer post en Castellano… Smiley Happy Perdon si salen errores…
Estoy usando Alfresco Comunity 3.0 en Linux…
Mi pregunta es si hay forma de importar varios usuarios para Alfresco… recorriendo a un archivo .xml, quizás?… Se puede hacer?…
Muchas gracias!

João Duarte
8 Replies
pjcaracuel_2349
Active Member II

Re: Importar Nuevos Usuarios

Entiendo que cuando dices importar usuarios te refieres a crear usuarios en alfresco a partir de un xml (i.e)

Echale un vistazo a este post
http://forums.alfresco.com/en/viewtopic.php?f=28&t=14004

Saludos
joaotpd
Active Member

Re: Importar Nuevos Usuarios

Hola pjcaracuel! … Gracias por la informacion… Smiley Happy pero aun no soy capaz de crear usuarios… Smiley Sad Hay algo que me escapa… Smiley Tongue
Despues de leer el post que me indicaste e de procurar por el tema estoy intentando crear usuarios recorriendo a código Java… Sigo un exemplo que me encontre en el Alfresco Developer Guide… de Jeff Potts…

BootstrapAuthorityCreator.java

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.AuthorityService;
import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.apache.log4j.Logger;

public class BootstrapAuthorityCreator {
  
    private AuthorityService authorityService;
    private PersonService personService;
    private TransactionService transactionService;
    private AuthenticationService authenticationService;
    private UserTransaction tx;
    private static Logger logger = Logger.getLogger(BootstrapAuthorityCreator.class);

    public void init() throws Exception {

       String salesGroup;
       String marketingGroup;
     
       tx = transactionService.getUserTransaction();
        tx.begin();
      
       // create tuser1, tuser2, tuser3, tuser4
        if(!authenticationService.authenticationExists("tuser1")) {
          authenticationService.createAuthentication("tuser1", "password".toCharArray());
          if (logger.isDebugEnabled()) logger.debug("Created tuser1 auth");
        }

        if (!personService.personExists("tuser1")) {
          personService.createPerson(createDefaultProperties("tuser1", "Test", "User1", "tuser1@localhost", "password"));
          if (logger.isDebugEnabled()) logger.debug("Created tuser1 person");
       }

        if(!authenticationService.authenticationExists("tuser2")) {
          authenticationService.createAuthentication("tuser2", "password".toCharArray());
          if (logger.isDebugEnabled()) logger.debug("Created tuser2 auth");
        }

       if (!personService.personExists("tuser2")) {
          personService.createPerson(createDefaultProperties("tuser2", "Test", "User2", "tuser2@localhost", "password"));
          if (logger.isDebugEnabled()) logger.debug("Created tuser2 person");
       }

        if(!authenticationService.authenticationExists("tuser3")) {
          authenticationService.createAuthentication("tuser3", "password".toCharArray());
          if (logger.isDebugEnabled()) logger.debug("Created tuser3 auth");
        }

       if (!personService.personExists("tuser3")) {
          personService.createPerson(createDefaultProperties("tuser3", "Test", "User3", "tuser3@localhost", "password"));
          if (logger.isDebugEnabled()) logger.debug("Created tuser3 person");
       }

        if(!authenticationService.authenticationExists("tuser4")) {
          authenticationService.createAuthentication("tuser4", "password".toCharArray());
          if (logger.isDebugEnabled()) logger.debug("Created tuser4 auth");
        }

       if (!personService.personExists("tuser4")) {
          personService.createPerson(createDefaultProperties("tuser4", "Test", "User4", "tuser4@localhost", "password"));
          if (logger.isDebugEnabled()) logger.debug("Created tuser4 person");
       }
      
       if (authorityService.authorityExists(authorityService.getName(AuthorityType.GROUP, "sales"))) {
          salesGroup = authorityService.getName(AuthorityType.GROUP, "sales");
       } else {
          // create the sales group
          salesGroup = authorityService.createAuthority(AuthorityType.GROUP, null, "sales");
       }

       //add tuser1 and tuser2 to the sales group
       authorityService.addAuthority(salesGroup, "tuser1");
       authorityService.addAuthority(salesGroup, "tuser2");
      
       if (authorityService.authorityExists(authorityService.getName(AuthorityType.GROUP, "marketing"))) {
          marketingGroup = authorityService.getName(AuthorityType.GROUP, "marketing");
       } else {
          // create the marketing group
          marketingGroup = authorityService.createAuthority(AuthorityType.GROUP, null, "marketing");
       }

       //add tuser3 and tuser4 to the marketing group
       authorityService.addAuthority(marketingGroup, "tuser3");
       authorityService.addAuthority(marketingGroup, "tuser4");
      
       tx.commit();
    }
  
    private Map<QName, Serializable> createDefaultProperties(String userName, String firstName, String lastName,
            String email, String password) {
        HashMap<QName, Serializable> properties = new HashMap<QName, Serializable>();
        properties.put(ContentModel.PROP_USERNAME, userName);
        properties.put(ContentModel.PROP_FIRSTNAME, firstName);
        properties.put(ContentModel.PROP_LASTNAME, lastName);
        properties.put(ContentModel.PROP_EMAIL, email);
        properties.put(ContentModel.PROP_PASSWORD, password);
        return properties;
    }

   public void setAuthorityService(AuthorityService authorityService) {
      this.authorityService = authorityService;
   }

   public void setPersonService(PersonService personService) {
      this.personService = personService;
   }

   public void setTransactionService(TransactionService transactionService) {
      this.transactionService = transactionService;
   }

   public void setAuthenticationService(AuthenticationService authenticationService) {
      this.authenticationService = authenticationService;
   }
}

module-context.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <!– A simple class that is initialized by Spring –>
    <bean id="sdk.createUsers.createUsersBean" class="org.alfresco.module.sdkcreateusers.BootstrapAuthorityCreator" init-method="init">
        <property name="personService">
            <ref bean="personService" />
        </property>
        <property name="authorityService">
            <ref bean="authorityService" />
        </property>
        <property name="transactionService">
            <ref bean="transactionService" />
        </property>      
        <property name="authenticationService">
            <ref bean="authenticationService" />
        </property>      
    </bean>
</beans>

Pero no consigo que funcione… Me sale el seguiente error:

(…)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sdk.createUsers.createUsersBean' defined in file [/opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/module/sdkCreateUsers/module-context.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException
        at org.alfresco.repo.search.IndexerComponent.createNode(IndexerComponent.java:72)
        at org.alfresco.repo.node.index.NodeIndexer.indexCreateNode(NodeIndexer.java:91)
        at org.alfresco.repo.node.db.DbNodeServiceImpl.createNode(DbNodeServiceImpl.java:345)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
        at org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invokeInternal(SingleEntryTransactionResourceInterceptor.java:163)
        at org.alfresco.repo.transaction.SingleEntryTransactionResourceInterceptor.invoke(SingleEntryTransactionResourceInterceptor.java:138)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy9.createNode(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
        at org.alfresco.repo.tenant.MultiTNodeServiceInterceptor.invoke(MultiTNodeServiceInterceptor.java:110)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy9.createNode(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.alfresco.repo.service.StoreRedirectorProxyFactory$RedirectorInvocationHandler.invoke(StoreRedirectorProxyFactory.java:221)
        at $Proxy10.createNode(Unknown Source)
        at org.alfresco.repo.node.MLPropertyInterceptor.invoke(MLPropertyInterceptor.java:279)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:188)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.alfresco.repo.node.NodeRefPropertyMethodInterceptor.invoke(NodeRefPropertyMethodInterceptor.java:188)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy9.createNode(Unknown Source)
        at org.alfresco.repo.security.authentication.RepositoryAuthenticationDao.createUser(RepositoryAuthenticationDao.java:254)
        at org.alfresco.repo.security.authentication.AuthenticationServiceImpl.createAuthentication(AuthenticationServiceImpl.java:82)
        at org.alfresco.repo.security.authentication.AbstractChainingAuthenticationService.createAuthentication(AbstractChainingAuthenticationService.java:76)
        at org.alfresco.module.sdkcreateusers.BootstrapAuthorityCreator.init(BootstrapAuthorityCreator.java:35)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1242)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1208)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1172)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:291)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:69)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
15:50:19,065 INFO  [org.alfresco.web.site.FrameworkHelper] Successfully Initialized Web Framework
(…)

Alguien me sabe decir lo que estoy haciendo mal?!? …
Estoy haciendo deploy del .amp en alfresco-labs-tomcat-3Stable…
Muchas gracias!!

João Duarte
pjcaracuel_2349
Active Member II

Re: Importar Nuevos Usuarios

Como has insertado el amp dentro del war?

Saludos
joaotpd
Active Member

Re: Importar Nuevos Usuarios

Hola!
Muchas gracias por responder… Smiley Happy

build.xml

<?xml version="1.0"?>

<project name="SDK Create Users AMP Project" default="package-amp" basedir=".">
   
    <property name="project.dir" value="."/>
    <property name="build.dir" value="${project.dir}/build"/>
    <property name="config.dir" value="${project.dir}/config"/>
    <property name="jar.file" value="${build.dir}/lib/alfresco-sdk-create-users.jar"/>
    <property name="amp.file" value="${build.dir}/dist/alfresco-sdk-create-users.amp"/>
   
    <target name="mkdirs">
        <mkdir dir="${build.dir}/dist" />
        <mkdir dir="${build.dir}/lib" />
    </target>
   
    <path id="class.path">
        <dirset dir="${build.dir}" />
        <fileset dir="../../lib/server" includes="**/*.jar"/>
    </path>

    <target name="compile">
        <mkdir dir="${build.dir}/classes" />
        <javac classpathref="class.path" srcdir="${project.dir}/source/java" destdir="${build.dir}/classes" />
    </target>
   
    <target name="package-jar" depends="compile">
        <jar destfile="${jar.file}" >
            <fileset dir="${build.dir}/classes" excludes="**/custom*,**/*Test*" includes="**/*.class" />
        </jar>
    </target>
   
    <target name="package-amp" depends="mkdirs, package-jar" description="Package the Module" >
        <zip destfile="${amp.file}" >
            <fileset dir="${project.dir}/build" includes="lib/*.jar" />
            <fileset dir="${project.dir}" includes="config/**/*.*" excludes="**/module.properties" />
            <fileset dir="${project.dir}/config/alfresco/module/sdkCreateUsers" includes="module.properties" />
        </zip>
    </target>

    <target name="update-war" depends="package-amp" description="Update the WAR file.  Set -Dwar.file=…" >
        <echo>Installing SDK Create Users AMP into WAR</echo>
        <java dir="." fork="true" classname="org.alfresco.repo.module.tool.ModuleManagementTool">
            <classpath refid="class.path" />
            <arg line="install ${amp.file} ${war.file} -force -verbose"/>
        </java>
    </target>

</project>
Estoy usando Eclipse para crear alfresco-sdk-create-users.amp (Run As -> Ant Build).

Con alfresco-sdk-create-users.amp en la directoria /opt/alfresco/amps/
java -jar ../bin/alfresco-mmt.jar install alfresco-sdk-create-users.amp ../tomcat/webapps/alfresco.war
Para confirmar la instalacion del .amp:
java -jar ../bin/alfresco-mmt.jar list ../tomcat/webapps/alfresco.war
Respuesta:

Module 'sdkCreateUsers' installed in '../tomcat/webapps/alfresco.war'
   -    Title:        SDK Create Users AMP Project
   -    Version:      1.0
   -    Install Date: Wed Jul 29 10:51:06 WEST 2009
   -    Desription:   Create Users with an AMP Project
Muchas gracias de nuevo!

João Duarte
pjcaracuel_2349
Active Member II

Re: Importar Nuevos Usuarios

Una pregunta, desde eclipse si consigues ejecutar la clase??

Saludos
joaotpd
Active Member

Re: Importar Nuevos Usuarios

Ejecutar?!!… Como lo hago?!!… Se puede hacer?! … No tengo conexión directa entre eclipse e alfresco… Smiley Sad

João Duarte
pjcaracuel_2349
Active Member II

Re: Importar Nuevos Usuarios

Yo para ejecutar desde eclipse contra alfresco, modifique el siguiente fichero
webserviceclient.properties

Con los valores propios para mi alfresco.

Saludos
luisa_
Member II

Re: Importar Nuevos Usuarios

Hola, tal vez tienen alguna referencia de cómo importar usuarios para C# con WebServices? he revisado el API con los ejemplos pero no existe nada al respecto. Gracias.