miércoles, 29 de diciembre de 2010

Administración de usuarios/grupos en alfresco (I)

Debido a que la administración de usuarios y grupos en alfresco no ofrece demasiadas posibilidades, estuve indagando un poco en la forma de realizar tareas que eran muy repetitivas con ayuda de javascript. He de agredecer a Pedro Jimenez Caracuel que fue quien me ayudó en un comienzo con esto (estaba bastante perdido....).

De modo que voy a mostrar una serie de scripts que en mi caso son bastante útiles (algunos más que otros).

- anade_user_group.js (añade un usuario a un grupo, puede parecer una tontería, pero nos servirá para extenderlo a varios usuarios y ver de una manera más clara su funcionamiento):
//Variables a completar
var nombregrupo="Nombre del Grupo";
var user="Nombre del usuario";


var groupPrefix="GROUP_";
//Fichero de log
var logFile = space.childByNamePath("documento_salida.txt");
if (logFile == null)
{
logFile = space.createFile("documento_salida.txt");
}
logFile.content ="";
var log = "";
//Obtenemos el ScriptNode para el grupo
var srcGrpNode=people.getGroup(groupPrefix+nombregrupo);
//Obtenemos el ScriptNode para el usuario
var authority = people.getPerson(user);

if(authority && srcGrpNode) //Si el usuario y el grupo existen
{
var listado = people.getMembers(srcGrpNode);
var array_usuarios = [];
for (var i=0;i
{
array_usuarios[i]=(listado[i]).properties["{http://www.alfresco.org/model/content/1.0}userName"];
}
if (array_usuarios.indexOf(user)== -1) //Si el usuario no existe en el grupo, lo insertamos
{
people.addAuthority(srcGrpNode,authority);
log+="1.-añadido usuario:" + user + " al grupo " + nombregrupo;
}
else
{
log+="1.- El usuario: " + user + " ya esta asignado al grupo " + nombregrupo;
}

}
else //Ha salido porque el grupo o el usuario no existen
{
if (authority)
log+="1.- El grupo: " + nombregrupo + " no existe" ;
else
log+="1.- El usuario: " + user + " no existe" ;
}
logFile.content += log;



- anade_users_group.js (añade una lista de usuarios a un grupo):

//Variables a completar
var users = new Array ('usuario1','usuario2','usuario3');
var grupo="Nombre del grupo";

var groupPrefix="GROUP_";
//Fichero de log
var logFile = space.childByNamePath("documento_salida.txt");
if (logFile == null)
{
logFile = space.createFile("documento_salida.txt");
}
logFile.content ="";
var log = "";

var srcGrpNode=people.getGroup(groupPrefix+grupo);
if (srcGrpNode)
{
//Se obtiene un array con los miembros del grupo.
var listado = people.getMembers(srcGrpNode);
var array_usuarios = [];
for (var i=0;i
{
array_usuarios[i]=(listado[i]).properties["{http://www.alfresco.org/model/content/1.0}userName"];
}
log+="Grupo: " + grupo + "\n";
//Recorremos el array de usuario para insertarlos en el grupo
for(var i=0;i
{
var authority = people.getPerson(users[i]);
if(authority) //Si el usuario existe
{
if (array_usuarios.indexOf(users[i])== -1) //Y no existe aun en el grupo
{
people.addAuthority(srcGrpNode,authority);
log+="- añadido usuario:" + users[i] + " al grupo " + grupo + " \n";
}
else
{
log+="- El usuario: " + users[i] + " ya existe en el grupo " + grupo + "\n";
}
}
else
{
log+="- No existe usuario:" + users[i] + "\n";
}
}
}
else
{
log+="El grupo: " + grupo + " no existe.\n";
}
logFile.content += log;


- anade_user_group_list.js (añade un usuario a un listado de grupos):

//Variables a completar
var grupos = new Array ('grupo1','grupo2','grupo3');
var user="Nombre del usuario";
var groupPrefix="GROUP_";
var logFile = space.childByNamePath("documento_salida.txt");
if (logFile == null)
{
logFile = space.createFile("documento_salida.txt");
}
logFile.content ="";
var log = "";
var authority = people.getPerson(user);
if(authority)
{
for(var i=0;i
{
var srcGrpNode=people.getGroup(groupPrefix+grupos[i]);
if (srcGrpNode)
{
var listado = people.getMembers(srcGrpNode);
var array_usuarios = [];
for (var j=0;j
{
array_usuarios[j]=(listado[j]).properties["{http://www.alfresco.org/model/content/1.0}userName"];
}
if (array_usuarios.indexOf(user)== -1) //Si el usuario no existe en el grupo, lo insertamos
{
people.addAuthority(srcGrpNode,authority);
log+="- añadido usuario:" + user + " al grupo " + grupos[i] + " \n";
}
else
{
log+="- El usuario: " + user + " ya esta en el grupo " + grupos[i] + "\n";
}
}
else
{
log+="- El grupo: " + grupos[i] + " no existe.\n";
}
}//final for
}
else
{
log+="- No existe usuario:" + user + "\n";
}
logFile.content += log;

No hay comentarios:

Publicar un comentario

Obtener informacion de repositorios a través de los metadatos .git publicados por error

 A raiz de CTF realizado recientemente, me ha parecido interesante publicar este post sobre los errores de seguridad que se encuentran en mu...