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

angelborroy
Community Manager Community Manager
Community Manager

Para Alfresco grupos, roles y usuarios son "autoridades", por eso...

  • Cuando haces referencia a un grupo debes prefijarlo con GROUP_
  • Cuando haces referencia a un rol debes prefijarlo con ROLE_
  • Cuando haces referencia a un usuario no es requerido prefijo
Hyland Developer Evangelist

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

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

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

Correcto, pude entrar con el usuario, se creo, y se incluyo en el grupo PUBLICO

Pero no registro la cuota de usuario correctamente

Adjunto captura

Acabo de pegar este mismo script

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


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

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

en una CE 201707 y funciona sin problemas.

¿Algún error en tu log?

Hyland Developer Evangelist

Creando el usuario desde las herramientas de administración si funciona todo correctamente

Pero cuando crea el usuario desde el login de un usuario del LDAP solo funciona ponerse el grupo, la cuota se queda vacía

En el log de errores no aparece nada

angelborroy
Community Manager Community Manager
Community Manager

Correcto, acabo de replicar el comportamiento que describes. Probablemente el ciclo de creación de esa carpeta home es diferente para la sincronización por LDAP y en ese momento las propiedades están protegidas (immutables).

Quizá sea posible lanzar el Script para que actúe en otro momento en el caso de LDAP...

Hyland Developer Evangelist

He estado buscando otras situaciones donde poder utilizar el Script pero no he encontrado alguna que funcione correctamente.

Como seria hacerlo con Behaviour?

Yo también le di alguna vuelta y no encontré tampoco la combinación.

Tienes un ejemplo de un behaviour Java que "hace cosas" cuando se crea un usuario aquí: https://github.com/keensoft/alfresco-user-space-template/blob/master/user-space-template-repo/src/ma...

Y aquí tienes cómo programar un behaviour: Alfresco Learning - Programming a Behavior (Spanish) - YouTube 

Hyland Developer Evangelist