Meter el grupo de un usuario en un script

cancel
Showing results for 
Search instead for 
Did you mean: 
feevalencia
Member II

Meter el grupo de un usuario en un script

Hola a todos,

Quiero crear un script que meta en un documento .txt los usuarios, sus documentos y el grupo al que pertenece el usuario. La pregunta es como puedo referirme al grupo del usuario.

Muchas gracias
2 Replies
feevalencia
Member II

Re: Meter el grupo de un usuario en un script

Hola de nuevo estaba buscando por el foro y he encontrado este script

var arr = new Array();
arr = people.getContainerGroups(person);

if (document.hasPermission("Write"))
{
if (document.mimetype == "text/html")
{
document.content += "<br><table width='100%' style='border:1px solid #000000'><tr><td width='10%'><font size='2' face='Arial, Helvetica, sans-serif'> <strong> Persona: </strong> " + firstName + " " + lastName + " - " + " Grupo: " + arr[0].properties["usr:authorityName"] + "<br> " + arr[1].properties["usr:authorityName"]+ "</font></td></tr></table>";

document.save();
}
}


Pero me da el siguiente error

Caused by: org.mozilla.javascript.EvaluatorException: Can't find method org.alfresco.repo.jscript.People.getContainerGroups(java.lang.String). (workspace://SpacesStore/0aef6d17-c5cf-4018-a620-cc39f8eee288#20)
        at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:109)
        at org.mozilla.javascript.Context.reportRuntimeError(Context.java:1030)
        at org.mozilla.javascript.Context.reportRuntimeError(Context.java:1086)
        at org.mozilla.javascript.Context.reportRuntimeError1(Context.java:1049)

        at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:162)
        at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)

        at org.mozilla.javascript.gen.c5._c0(workspace://SpacesStore/0aef6d17-c5cf-4018-a620-cc39f8eee288:20)
        at org.mozilla.javascript.gen.c5.call(workspace://SpacesStore/0aef6d17-c5cf-4018-a620-cc39f8eee288)
        at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)
        at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)
        at org.mozilla.javascript.gen.c5.call(workspace://SpacesStore/0aef6d17-c5cf-4018-a620-cc39f8eee288)
        at org.mozilla.javascript.gen.c5.exec(workspace://SpacesStore/0aef6d17-c5cf-4018-a620-cc39f8eee288)
        at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:457)





Alguien me puede ayudar por favor  , gracias
cristinamr
Advanced

Re: Meter el grupo de un usuario en un script

Buenas.

Mira por aquí a mano tengo un código que creo que podrías reutilizar:
function muestraRutas(node)
{  
   for each(n in node.children)
   {
         if ( n.isDocument )
               salida+="Ruta de los archivos: "+n.displayPath+"/"+n.name+"\n\r";
        
         for ( var i = 0; i < n.children.length; i++ ) {
            if ( n.children[i].isContainer == true )
               muestraRutas( n.children[i] );
         }
   }
}

// Objetos modificables

var nodo_raiz = "" ;
var salida = "";

var logFile = script.parent.childByNamePath( "muestraRutas.txt" );
// Precondiciones
if ( logFile == null )
logFile = script.parent.createFile( "muestraRutas.txt" );


if ( nodo_raiz == "" )
{
var space = companyhome;
}
else{
var space = companyhome.childByNamePath( nodo_raiz );
}

if (space != null) {
   muestraRutas( space );
}
else{
   salida += "Error al localizar el espacio raiz: " + nodo_raiz + "\n\r";
   if (logger.isLoggingEnabled())
   {                 
      logger.log("Error al localizar el espacio raiz: " + nodo_raiz );
   }     
}

logFile.content = salida;
logFile.save();
logFile.content;

Al lanzar el script en una carpeta determinada (sobre la que quieras los resultados) recorre los hijos y te muestra en un txt (muestraRuta.txt) un listado con la ruta de los archivos de tipo documento, modifícalo mirando qué funciones te vienen bien para tu propósito según la API de JavaScript que tienes en la wiki. Ojo, tienes que tener en cuenta qué versión tienes de alfresco porque la API varía de una versión a otra Smiley Wink

Toca el código y si tienes alguna duda pregunta sin problemas.

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc