AnsweredAssumed Answered

Lista de usuarios y correos electrónicos

Question asked by nemrp on Nov 4, 2011
Latest reply on Nov 16, 2011 by nemrp
Buenas.

Voy a dejar un script que, aunque es muy simple, quizás ayude a alguien que necesite hacer una cosa parecida, sin complicaciones y de manera rápida.

Se trata de un script que genera un archivo de texto plano (tipo log) en el que se muestra por cada usuario su "username" y su correo electrónico.


/* Constantes */
var spaceDestinity = space; // Espacio destino. Aquel donde se va almacenar el log.
var date = new Date(); // Objeto fecha que permitira crear el archivo de log unico.

/* Adaptacion del objeto fecha al formato espanol */
var month = date.getMonth() + 1;
if (month > 0 && month < 10) {
month = "0" + month;
}

var day = date.getDate() + 1;
if (day > 0 && day < 10) {
day = "0" + day;
}

/* Creacion del archivo de log en el espacio destino */
var logFileName = "users_mails_" + date.getFullYear() + month + day + date.getHours() + date.getMinutes() + date.getSeconds() + ".txt";
var logFile = spaceDestinity.childByNamePath(logFileName);
var log = "";

if (logFile == null) {
   logFile = spaceDestinity.createFile(logFileName);
}

/* Llamada a la funcion */
getMails();

/* Funcion */
function getMails() {
   // Variable que permite obtener la lista de todos los usuarios.
   var peoples = search.luceneSearch("TYPE:\"{http://www.alfresco.org/model/content/1.0}person\"");
   var length = peoples.length;
   var usersList = new Array();
   
   // Bucle en el que se obtienen los atributos de cada usuario y se almacena en una lista.   
   for (var i = 0; i < length; i++) {
      var peopleObj = peoples[i];
      var userFullName = peopleObj.properties["cm:firstName"] + " " + peopleObj.properties["cm:lastName"];
      var userName = peopleObj.properties["cm:userName"];
      var userMail = peopleObj.properties["cm:email"];
      var text = userFullName + "\n\tUsuario: " + userName + "\n\tCorreo: " + userMail + "\n\n";
      
      usersList.push(text);
   }
   
   // Se ordena la lista de usuarios.
   usersList.sort();
   length = usersList.length;
   
   // Se almacena en la variable "log" como cadena de texto los elementos de la lista de usuarios.
   for (var i = 0; i < length; i++) {
      log += usersList[i];
   }
}

/* Insercion del texto de log */
logFile.content += log;
logFile.save();
logFile.content;

Saludos.

NOTA: Me he apoyado de lo comentado en el hilo https://forums.alfresco.com/en/viewtopic.php?f=36&p=68302.

Outcomes