Estimados:
Alguno sabe si hay algún punto de los menús o algún script ya hecho que permita obtener la estructura completa de grupos con los usuarios que pertenecen a esos grupos (solo tengo dos niveles, no hay grupos asignados a grupos).
Sería algo así como:
Grupo1
Usuario 1
Usuario 2
Usuario n
Grupo2
Usuario 3
Usuario 4
Usuario n
Si además a continuación del usuario se pudiera poner el e-mail ya sería perfecto.
Muchas gracias, un cordial saludo.
var groups = groups.getAllRootGroups();
for each (var group in groups) {
logger.log("GROUP: " + group.getShortName());
var node = people.getGroup("GROUP_" + group.getShortName());
var members = people.getMembers(node);
for (var i=0; i < members.length; i++) {
logger.log("Member: " + members[i].properties["cm:userName"] +
", " + members[i].properties["cm:email"]);
}
var subGroups = group.getAllGroups();
for each (var subGroup in subGroups) {
logger.log("SUBGROUP: " + subGroup.getShortName());
var node = people.getGroup("GROUP_" + subGroup.getShortName());
var members = people.getMembers(node);
for (var i=0; i < members.length; i++) {
logger.log("Member: " + members[i].properties["cm:userName"] +
", " + members[i].properties["cm:email"]);
}
}
}
Muchas gracias Ángel.
Por favor, ¿podrías decirme cual es el directorio/fichero donde lo deja?
Un cordial saludo.
En el ejemplo anterior, la salida se escribe al log del sistema.
A continuación un ejemplo que lo escribe en "Shared/lista-usuarios.txt"
var sharedFolder = companyhome.childByNamePath("/Shared");
var file = sharedFolder.createFile("lista-usuarios.txt");
var content = "";
var groups = groups.getAllRootGroups();
for each (var group in groups) {
content = content + "GROUP: " + group.getShortName() + "\n";
var node = people.getGroup("GROUP_" + group.getShortName());
var members = people.getMembers(node);
for (var i=0; i < members.length; i++) {
content = content + "Member: " + members[i].properties["cm:userName"] +
", " + members[i].properties["cm:email"] + "\n";
}
var subGroups = group.getAllGroups();
for each (var subGroup in subGroups) {
content = content + "SUBGROUP: " + subGroup.getShortName() + "\n";
var node = people.getGroup("GROUP_" + subGroup.getShortName());
var members = people.getMembers(node);
for (var i=0; i < members.length; i++) {
content = content + "Member: " + members[i].properties["cm:userName"] +
", " + members[i].properties["cm:email"] + "\n";
}
}
file.content = content;
file.save();
}
Hola Ángel:
Esta opción parece mucho mejor.
Cuando la ejecuto me responde con un error como que no puede ejecutar el método createFile para null.
Supongo que es por
sharedFolder = companyhome.childByNamePath("/Shared");
Como en esto "toco de oído" tengo dos dudas:
1. ¿companyhome es C:alfresco-community (el directorio donde lo instalé)?
2. En tu respuesta anterior dices que lo escribe en el log del sistema ¿cómo se llama el fichero? ¿dónde está?
Otra vez muchísimas gracias por tu ayuda.
Un saludo.
Cambia “Shared” por “Compartido”
Buenos días Ángel:
Con el cambio a "Compartido" lo ejecuta sin problemas, pero no encuentro el fichero ·lista-usuarios.txt en el disco.
Tendría que estar, porque si intento volver a ejecutarlo da el error "fichero lista-usuarios.txt ya existe".
¿Tienes alguna idea al respecto?
Desde ya muchísimas gracias por tu ayuda.
Dale al botón Compartido de la barra negra superior de Share. Ahí está el archivo.
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.