//Obtiene el path del espacio _COPIA y genera el path del origen.
var ruta_destino = (space.displayPath + "/" + space.name).replace("/Empresa/","");
var ruta_origen = ruta_destino.replace("_COPIA","");
//Crea log en el espacio personal de quien se loga.
var logFile = userhome.childByNamePath("recorre.log");
if (logFile == null)
{
logFile = userhome.createFile("recorre.log");
}
logFile.content ="";
var log = "";
//Funcion que recorre un espacio para copiar sus permisos sobre otro espacio copia.
function recorre(doc)
{
for each (n in doc.children)
{
if (n.isContainer)
{
//Compongo path origen
cadena_origen = n.displayPath + "/" + n.name;
//Compongno path destino
var replace_1 = "/Empresa/" + ruta_origen + "/";
var replace_2 = ruta_destino + "/";
cadena_destino = cadena_origen.replace(replace_1, replace_2);
//Compongo ScriptNode destino
var espacio_fin = companyhome.childByNamePath(cadena_destino);
log += n.name + " es un subespacio de " + n.parent.name + ".\n";
if (n.inheritsPermissions())
{
log += n.name + " hereda permisos." + "\n";
espacio_fin.setInheritsPermissions(true);
}
var cadena = n.getPermissions();
for each (k in cadena)
{
var permisos = k.split(';');
log += "Grupo: " + permisos[1] + "\n";
log += "Permiso: " + permisos[2] + "\n";
espacio_fin.setPermission(permisos[2],permisos[1]);
}
recorre (n);
}
}
}
//Funcion que quita los permisos otorgados nada mas copiar.
function quita_permisos(doc)
{
for each (n in doc.children)
{
if (n.isContainer)
{
if (n.inheritsPermissions())
{
n.setInheritsPermissions(false);
}
var cadena = n.getPermissions();
for each (k in cadena)
{
var permisos = k.split(';');
log += "Grupo: " + permisos[1] + "\n";
log += "Permiso: " + permisos[2] + "\n";
n.removePermission(permisos[2],permisos[1]);
}
quita_permisos (n);
}
}
}
//Comienza main. El espacio sobre el que se invoque debe tener el sufijo "_COPIA"
var pos = ruta_destino.lastIndexOf("_COPIA");
if (pos > 0)
{
//Se obtien los ScriptNode a partir de la ruta de los espacios.
var espacio_origen = companyhome.childByNamePath(ruta_origen);
var espacio_destino = companyhome.childByNamePath(ruta_destino);
//Primero quitamos los permisos del copiado.
quita_permisos(espacio_destino);
//Recorremos el espacio origen para dar los permisos al destino.
recorre(espacio_origen);
//Se aplican los permisos al espacio padre destino.
log += espacio_origen.name + " es el espacio padre. \n";
if (espacio_origen.inheritsPermissions())
{
espacio_destino.setInheritsPermissions(true);
}
var cadena_permisos = espacio_origen.getPermissions();
for each (k in cadena_permisos)
{
var permisos_origen = k.split(';');
log += "Grupo: " + permisos_origen[1] + "\n";
log += "Permiso: " + permisos_origen[2] + "\n";
espacio_destino.setPermission(permisos_origen[2],permisos_origen[1]);
}
}
else
{
log += "El espacio no tiene sufijo _COPIA \n";
}
logFile.content += log;
//FIN
//Obtiene el path del espacio _COPIA y genera el path del origen.
var ruta_destino = (space.displayPath + "/" + space.name).replace("/Empresa/","");
var ruta_origen = ruta_destino.replace("_COPIA","");
//Crea log en el espacio personal de quien se loga.
var logFile = userhome.childByNamePath("recorre.log");
if (logFile == null)
{
logFile = userhome.createFile("recorre.log");
}
logFile.content ="";
var log = "";
//Funcion que recorre un espacio para copiar sus permisos sobre otro espacio copia.
function recorre(doc)
{
for each (n in doc.children)
{
if (n.isContainer)
{
//Compongo path origen
cadena_origen = n.displayPath + "/" + n.name;
//Compongno path destino
var replace_1 = "/Empresa/" + ruta_origen + "/";
var replace_2 = ruta_destino + "/";
cadena_destino = cadena_origen.replace(replace_1, replace_2);
//Compongo ScriptNode destino
var espacio_fin = companyhome.childByNamePath(cadena_destino);
log += n.name + " es un subespacio de " + n.parent.name + ".\n";
if (n.inheritsPermissions())
{
log += n.name + " hereda permisos." + "\n";
var hereda = true;
n.setInheritsPermissions(false);
} else
{
log += n.name + " no hereda permisos." + "\n";
var hereda = false;
}
var cadena = n.getPermissions();
for each (k in cadena)
{
var permisos = k.split(';');
log += "Grupo: " + permisos[1] + "\n";
log += "Permiso: " + permisos[2] + "\n";
espacio_fin.setPermission(permisos[2],permisos[1]);
}
espacio_fin.setInheritsPermissions(hereda);
n.setInheritsPermissions(hereda);
recorre (n);
}
}
}
//Funcion que quita los permisos otorgados nada mas copiar.
function quita_permisos(doc)
{
for each (n in doc.children)
{
if (n.isContainer)
{
if (n.inheritsPermissions())
{
n.setInheritsPermissions(false);
}
var cadena = n.getPermissions();
for each (k in cadena)
{
var permisos = k.split(';');
log += "Grupo: " + permisos[1] + "\n";
log += "Permiso: " + permisos[2] + "\n";
n.removePermission(permisos[2],permisos[1]);
}
quita_permisos (n);
}
}
}
//Comienza main. El espacio sobre el que se invoque debe tener el sufijo "_COPIA"
var pos = ruta_destino.lastIndexOf("_COPIA");
if (pos > 0)
{
//Se obtien los ScriptNode a partir de la ruta de los espacios.
var espacio_origen = companyhome.childByNamePath(ruta_origen);
var espacio_destino = companyhome.childByNamePath(ruta_destino);
//Primero quitamos los permisos del copiado.
quita_permisos(espacio_destino);
//Recorremos el espacio origen para dar los permisos al destino.
recorre(espacio_origen);
//Se aplican los permisos al espacio padre destino.
log += espacio_origen.name + " es el espacio padre. \n";
if (espacio_origen.inheritsPermissions())
{
var hereda = true;
espacio_origen.setInheritsPermissions(false);
} else
{
var hereda = false;
}
var cadena_permisos = espacio_origen.getPermissions();
for each (k in cadena_permisos)
{
var permisos_origen = k.split(';');
log += "Grupo: " + permisos_origen[1] + "\n";
log += "Permiso: " + permisos_origen[2] + "\n";
espacio_destino.setPermission(permisos_origen[2],permisos_origen[1]);
}
espacio_origen.setInheritsPermissions(hereda);
espacio_destino.setInheritsPermissions(hereda);
}
else
{
log += "El espacio no tiene sufijo _COPIA \n";
}
logFile.content += log;
//FIN
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
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.