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

cancel
Showing results for 
Search instead for 
Did you mean: 
pgguillen
Member II

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

Jump to solution

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 Solution

Accepted Solutions
angelborroy
Expert

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

Jump to solution

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.

Software Engineer in Alfresco Search Team.
16 Replies
douglascrp
Advanced II

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

Jump to solution

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
Member II

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

Jump to solution

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.

angelborroy
Expert

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

Jump to solution

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

Software Engineer in Alfresco Search Team.
pgguillen
Member II

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

Jump to solution

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

angelborroy
Expert

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

Jump to solution

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.

Software Engineer in Alfresco Search Team.
pgguillen
Member II

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

Jump to solution

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

angelborroy
Expert

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

Jump to solution

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
Software Engineer in Alfresco Search Team.
pgguillen
Member II

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

Jump to solution

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

angelborroy
Expert

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

Jump to solution

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?

Software Engineer in Alfresco Search Team.