cancel
Showing results for 
Search instead for 
Did you mean: 

Share + LDAP crear site usuarios

rhakaro
Champ in-the-making
Champ in-the-making
Hola a todos!

Estamos pasando nuestro sistema alfresco de Explorer a Share (moviendo a /Sites todo el repositorio). Nuestro sistema está sincronizado con un LDAP. Cuando se detecta un nuevo usuario, se crea un espacio personal para él gracias al bean del fichero XML de configuración.

El caso es que esta operación pierde sentido cuando se trabaja en Share, ya que lo deberían crearse Sites de usuario, en vez de espacios personales (pensamos nosotros).

¿Sería posible crear un bean que llamara a algún service de Alfresco y creara un site con el usuario como owner y asignar también una cuota máxima a la document library de dicho site?

Muchas gracias, un saludo!
10 REPLIES 10

cristinamr
World-Class Innovator
World-Class Innovator
Buenas.

Hombre, tu puedes hacer un desarrollo para que vía api rest por ejemplo te crees un sitio por usuario que se cree, pero sería desarrollo puro y duro. No creo que haya nada así hecho.

En cuanto al tamaño máximo mira la api de java, si te fijas en People tienes un setQuota(ScriptNode person, java.lang.String quota)  y a parte tienes una clase site con todo lo necesario para crear los sitios.

¡Un saludo!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

rhakaro
Champ in-the-making
Champ in-the-making
Perfecto, muchas gracias CristinaMR.

Vamos a probar a utilizar esa clase Site para ver si podemos crear y limitar sites de usuario vía bean.

Un saludo!

cristinamr
World-Class Innovator
World-Class Innovator
Si lo consigues, y ves que funciona comentanoslo, porque lo que tu preguntas aquí es algo de lo más lógico (supongo que no se tardará en migrar a Share).

Un saludo!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

rhakaro
Champ in-the-making
Champ in-the-making
Sin problema, comparto el código por este hilo para que quede disponible a quien quiera hacer algo parecido Smiley Wink

cybermakoki
Champ in-the-making
Champ in-the-making
Muy buenas rhakaro!

Si quieres modificar ese comportamiento puedes echar un vistazo a este post:

http://forums.alfresco.com/en/viewtopic.php?t=15568

Tendrías que tocar el fichero authentication-services-context.xml

En tu caso, yo creo que deberías crearte una clase que implemente tus necesidades.

Si tienes la SDK con el código fuente, echa un vistazo a estas clases, que son las que se usan actualmente:

- ExistingPathBasedHomeFolderProvider
- UIDBasedHomeFolderProvider

Suerte!!

Un saludo,

rhakaro
Champ in-the-making
Champ in-the-making
Buenas cybermakoki,

Muchas gracias, le echaré un ojo a ver si me ayuda. Ya estuve mirando la clase UIDBasedHomeFolderProvider, pero tampoco es que tenga mucho código, parece que ExistingPathBasedHomeFolderProvider tiene un poco más de miga.

Ya os contaré cómo queda el asunto.

Un saludo!

cristinamr
World-Class Innovator
World-Class Innovator
Lo que te ha facilitado cybermakoki te viene ni que pintado. Es eso de hecho  :mrgreen:

¡Un saludooo!

PD: Gracias Patri  :wink:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

rhakaro
Champ in-the-making
Champ in-the-making
Hola de nuevo!

Al final, dada la dificultad y complicaciones que nos ha supuesto la creación de Sites personales de usuario, hemos decidido crear un Site en cuya documentlibrary haya una carpeta por cada usuario. Esto dicho parece fácil, pero no conseguimos que la integración con LDAP cree nada.

Me explico. Estamos utilizando la integración de esta forma:
En "ldap-ad-authentication.properties" tenemos:
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider

Por lo que, como en "authentication-service-context.xml" por defecto aparece esto:

   <bean name="userHomesHomeFolderProvider" parent="usernameHomeFolderProvider">
      <property name="rootPath">
         <!–
         <value>/${spaces.company_home.childname}/${spaces.user_homes.childname}</value>
          –>
          <value>/${spaces.company_home.childname}/${spaces.user_homes.childname}</value>
      </property>
      <property name="storeUrl">
         <value>${spaces.store}</value>
      </property>
   </bean>

Pensamos que cambiándolo por esto otro:

   <bean name="userHomesHomeFolderProvider" parent="usernameHomeFolderProvider">
      <property name="rootPath">
         <!–
         <value>/${spaces.company_home.childname}/${spaces.user_homes.childname}</value>
          –>
          <value>/${spaces.company_home.childname}/st:Sites/cm:Usuarios/cm:documentLibrary</value>
      </property>
      <property name="storeUrl">
         <value>${spaces.store}</value>
      </property>
   </bean>

Iba a funcionar todo bien, y el sistema crearía carpetas con el nombre de usuario dentro de la documentLibrary del Site "Usuarios". Pero el resultado es que ni siquiera podemos loguearnos:

Caused by: java.lang.IllegalStateException: Non-unique path: found : /app:company_home/stSmiley Frustratedites/cm:Usuarios/cm:documentLibrary 0

¿Por qué no es capaz el sistema de añadir el nombre del usuario que realiza el loguin tras la ruta que se define en "rootPath"? En la configuración por defecto, esta ruta apunta al espacio de usuarios general, donde se crea la carpeta de cada uno en función de su login…

Es un poco raro, ¿no?

Un saludo!

cybermakoki
Champ in-the-making
Champ in-the-making
Hola rhakaro!

Parece que el error que te está dando es porque no encuentra el path que tu le estas pasando.

Yo probaría desde el node browser a hacer alguna query lucene de este tipo:

PATH:"/app:company_home/stSmiley Frustratedites/cm:Usuarios/cm:documentLibrary//."

a ver si te devuelve algo, te da error… haz pruebas a ver si das con el path correcto Smiley Happy