AnsweredAssumed Answered

Error de permisos en getMembers

Question asked by rafabono_9703 on Oct 24, 2011
Latest reply on Oct 26, 2011 by rafabono_9703
Buenas tardes, expongo mi problema. Tengo un webscript que me devuelve los usuarios pertenecientes a un grupo dado. En la autenticación estoy utilizando <authentication>user</authentication>. El script funciona correctamente, pero para algunos grupos me escupe el siguiente error:

500 Description:   Un error en el servidor HTTP, el cual le ha impedido cumplir con la solicitud.

Message:   09246007631 Wrapped Exception (with status template): 09246007630 Failed to execute script '/org/alfresco/sample/prueba.post.js (in repository store workspace://SpacesStore/Empresa/Diccionario de datos/Web Scripts)': 09246007629 Acceso denegado. No tiene los permisos apropiados para realizar esta operación.
   
Exception:   net.sf.acegisecurity.AccessDeniedException - Access Denied

Sólo me ocurre con unos pocos grupos. De hecho, si me autentico con un usuario administrador, funciona correctamente para todos los grupos.
La línea del script que hace que lance el error es cuando quiero obtener el listado de usuarios:

lista = people.getMembers(grupoObtenido, false);

He estado analizando los grupos, comparando uno que da error con otro que funciona correctamente, pero no encuentro nada. Lo achaco a una posible corrupción del grupo.

Añado el código completo del js:

var nombregrupo = formdata.fields[0].value;
nombregrupo = "" + nombregrupo;
nombregrupo = nombregrupo.replace(/\s+/g,"")
var groupPrefix="GROUP_";
//Creamos el log que devolveremos
var logFile = userhome.childByNamePath("documento_salida.txt");
if (logFile == null)
{
  logFile = userhome.createFile("documento_salida.txt");
  logFile.properties.encoding = "UTF-8";
  logFile.properties.title = "documento_salida";
  logFile.properties.description = "salida del script";
}
logFile.content ="";
var log = "";
var log_html = "";

var grupoObtenido = people.getGroup(groupPrefix+nombregrupo);

if (grupoObtenido) {
    lista = people.getMembers(grupoObtenido, false);
    log+="El grupo: " + nombregrupo + " contiene a los siguientes usuarios:\n";
    log_html+="<tr><td><td>El grupo: " + nombregrupo + " contiene a los siguientes usuarios:\n";
    for(var i=0;i<lista.length;i++)
    {
   log+="Usuario: " +(lista[i]).properties["{http://www.alfresco.org/model/content/1.0}userName"] + " \n";
        log_html+="<tr><td><td>Usuario: " +(lista[i]).properties["{http://www.alfresco.org/model/content/1.0}userName"] + " \n";
    }  
}
else {
    log+="- El grupo: " + nombregrupo + " no existe.\n";
    log_html+="<tr><td><td>- El grupo: " + nombregrupo + " no existe.\n";
}

logFile.content=log;
logFile.save();
model.log = logFile;
model.text = log_html;


¿Alguna idea?

Outcomes