cancel
Showing results for 
Search instead for 
Did you mean: 

Obtener a qué grupos pertenece un usuario

karmo
Champ on-the-rise
Champ on-the-rise
Buenos días! ¿Qué tal?. Quería saber si me podéis orientar un poco con un tema.

Tengo Alfresco en un servidor, y una web en un hosting externo.

La idea es crear un link en alfresco hacia esa web. El link me lo proporciona con usuario y ticket (tipo https://www.xxxx.es/?user=USUARIO&alf_ticket=TICKET_b9bec9aba8d369f5e664359870109424a8484ca1

Hasta aquí genial, porque luego en mi website puedo rescatar mediante get el usuario que ha accedido y el ticket de autentificación.

Ahora la cuestión viene en sentido contrario. Quiero:

1º- Validar que el usuario está autentificado en alfresco.
2º- Comprobar a qué grupos de usuarios pertenece ese usuario en concreto.

La idea es obtener ese grupo al que pertenece y mostrarle un contenido en concreto en mi website.

Sé que tengo que utilizar la API de Alfresco, pero no sé como llamarla desde mi website (PHP) a mi localización de alfresco.

Un saludo y gracias!

2 REPLIES 2

angelborroy
Community Manager Community Manager
Community Manager
En mi opinión, variaría algo el enfoque. Pasar el ticket de autenticación de Alfresco por un parámetro a la URL del hosting externo parece un poco peligroso. Alfresco utiliza cookies para gestionar la sesión. Una de esas cookies contiene el valor de ALF_TICKET. Podrías pasar únicamente el usuario y leer de la cookie el valor desde tu website PHP.

Para invocar a la API REST de Alfresco, basta con realizar peticiones HTTP. En el caso de la API CMIS es algo más elaborado, pero tienes un cliente disponible (http://chemistry.apache.org/php/phpclient.html).

Para obtener todos los grupos de un usuario, tienes que hacer un HTTP GET a una URL de este tipo:
<CODE>
http://localhost:8080/alfresco/s/api/people/admin?groups=true
</CODE>

Esta invocación te devolverá un JSON similar al siguiente:
<javascript>
{
   "url": "\/alfresco\/s\/api\/people\/admin",
   "userName": "admin",
   "enabled": true,
   "firstName": "Administrator",
   "lastName": "",
   "jobtitle": null,
   "organization": null,
   "organizationId": "",
   "location": null,
   "telephone": null,
   "mobile": null,
   "email": "admin@alfresco.com",
   "companyaddress1": null,
   "companyaddress2": null,
   "companyaddress3": null,
   "companypostcode": null,
   "companytelephone": null,
   "companyfax": null,
   "companyemail": null,
   "skype": null,
   "instantmsg": null,
   "userStatus": null,
   "userStatusTime": null,
   "googleusername": null,
   "quota": -1,
   "sizeCurrent": 0,
   "emailFeedDisabled": false,
   "persondescription": null
,
   "capabilities":
   {
      "isMutable":
      true
            ,"isGuest":
      false
            ,"isAdmin":
      true
         },
   "groups": [
   {
      "itemName": "GROUP_ALFRESCO_ADMINISTRATORS",
      "displayName": "ALFRESCO_ADMINISTRATORS"
   },   {
      "itemName": "GROUP_ALFRESCO_SEARCH_ADMINISTRATORS",
      "displayName": "ALFRESCO_SEARCH_ADMINISTRATORS"
   },   {
      "itemName": "GROUP_EMAIL_CONTRIBUTORS",
      "displayName": "EMAIL_CONTRIBUTORS"
   },   {
      "itemName": "GROUP_SITE_ADMINISTRATORS",
      "displayName": "SITE_ADMINISTRATORS"
   }],
   "immutability":
   {
   }
}
</javascript>
Hyland Developer Evangelist

karmo
Champ on-the-rise
Champ on-the-rise
Muchas gracias! me viene de maravilla! Smiley Happy