cancel
Showing results for 
Search instead for 
Did you mean: 

Añadir un usuario a un grupo cuando ingresa por LDAP

pgguillen
Champ in-the-making
Champ in-the-making

Hola, antes de nada agradecer a todos vuestra colaboración, he utilizado mucha ayuda de esta web para mi instalación de Alfresco y espero algún día poder ayudar a otros usuarios. Tengo un problema que no he podido solucionar y me gustaría saber si es posible.

Tengo instalado Alfresco Community Edition General Release 201711

He configurado mi alfresco-global.properties para que puedan acceder mis usuarios ya registrado en Active Directory, esta es mi configuración:

authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
ldap.authentication.active=true
ldap.authentication.java.naming.provider.url=ldap://XXX.XXX.XXX.XXX:389
ldap.authentication.userNameFormat=%s@XXX.es
ldap.synchronization.active=false

Entran perfectamente con su usuario y contraseña, y se crea las credenciales en Alfresco

Mi pregunta es la siguiente, ¿Seria posible que una vez creados los usuarios en Alfresco provenientes de LDAP los pudiera meter automáticamente en un solo grupo, por ejemplo "PUBLICO" y asignarles una cuota predefinida, por ejemplo 1000 MB?

Gracias

1 ACCEPTED ANSWER

Creo que sería mejor utilizar un Behaviour Java, pero probablemente un simple script JS sea más útil.

Crea un fichero setGroupAndQuota.js en la carpeta Repositorio > Data Dictionary > Scripts con el siguiente contenido:

var userName = document.properties["cm:name"];

var group = people.getGroup("GROUP_PUBLICO");
var user = people.getPerson(userName);

people.addAuthority(group, user);
people.setQuota(user, "10240000"); // 10 MB

Crea una regla en Repositorio > User Homes

  • Cuando: Se crean o entran elementos en esta carpeta
  • Si se cumplen todos los criterios: Contenido del tipo o subtipo es Carpeta
  • Realizar acción: Ejecutar script setGroupAndQuota.js

Cada vez que se cree un usuario, se establecerán las propiedades. No obstante, esto se aplicará tanto a usuarios de LDAP como a usuarios locales.

Hyland Developer Evangelist

View answer in original post

16 REPLIES 16

douglascrp
World-Class Innovator
World-Class Innovator

Hola.

Para añadir usuários en los grupos, tienes que utilizar la sincronización con LDAP.

Para la cuota, yo conozco este addon GitHub - jottley/alfresco-defaultquota-policy: Automatically exported from code.google.com/p/alfresc..., pero es muy viejo, e no creo que va a ser compatible con la versión que estás utilizando.

pgguillen
Champ in-the-making
Champ in-the-making

Entiendo que puedo sincronizar los grupos con los mismos que existan en el LDAP, pero lo que necesito es incorporar todos los nuevos usuarios a un mismo grupo "PUBLICO", no a los que tengan en LDAP.

El addon es muy antiguo y no funciona en versiones actuales.

Podrías hacerlo con un Behaviour (requiere programación en Java) o con una regla (requiere programación en JavaScript). ¿Alguna preferencia?

Hyland Developer Evangelist

Ninguna, confio en tu experiencia para que me recomiendes la que creas mejor 

Creo que sería mejor utilizar un Behaviour Java, pero probablemente un simple script JS sea más útil.

Crea un fichero setGroupAndQuota.js en la carpeta Repositorio > Data Dictionary > Scripts con el siguiente contenido:

var userName = document.properties["cm:name"];

var group = people.getGroup("GROUP_PUBLICO");
var user = people.getPerson(userName);

people.addAuthority(group, user);
people.setQuota(user, "10240000"); // 10 MB

Crea una regla en Repositorio > User Homes

  • Cuando: Se crean o entran elementos en esta carpeta
  • Si se cumplen todos los criterios: Contenido del tipo o subtipo es Carpeta
  • Realizar acción: Ejecutar script setGroupAndQuota.js

Cada vez que se cree un usuario, se establecerán las propiedades. No obstante, esto se aplicará tanto a usuarios de LDAP como a usuarios locales.

Hyland Developer Evangelist

He creado el Script con el siguiente contenido:

var userName = document.properties["cm:name"];

var group = people.getGroup("PUBLICO");
var user = people.getPerson(userName);

people.addAuthority(group, user);
people.setQuota(user, "1073741824"); // 1 GB

Mi grupo tiene los siguientes nombres:

Identificador: *
PUBLICO
Nombre a mostrar: *
PUBLICO

He creado la regla.

Pero ahora no me deja acceder a Alfresco y me da el siguiente error:

2017-12-12 14:40:37,645 ERROR [org.springframework.extensions.webscripts.AbstractRuntime] [http-apr-8080-exec-12] Exception from executeScript: 111215515 Failed to execute script 'workspace://SpacesStore/b6b5443e-b34e-476b-bee5-6002bd83bfd9': ParentGroup is a mandatory parameter
org.alfresco.scripts.ScriptException: 111215515 Failed to execute script 'workspace://SpacesStore/b6b5443e-b34e-476b-bee5-6002bd83bfd9': ParentGroup is a mandatory parameter

Caused by: java.lang.IllegalArgumentException: ParentGroup is a mandatory parameter

cesarista
World-Class Innovator
World-Class Innovator

 FYI yo uso este addon (o una variación mínima) en algún proyecto con Alfresco 5.2.

Saludos.

--C.

pgguillen
Champ in-the-making
Champ in-the-making

El problema que hemos encontrado es cuando crea el usuario desde el login de un usuario del LDAP solo funciona ponerse el grupo, la cuota se queda vacía, estoy buscando donde utilizar el Script para que el valor de quote quede guardado

cesarista
World-Class Innovator
World-Class Innovator

Buenas:

El behaviour hace/hacia eso precisamente (setear la quota al crear un usuario). Para el "grupo público" al que hacéis referencia con todos los usuarios creo que podría valer el grupo por defecto EVERYONE.

Saludos.

--C.