Alta usuarios y comunidades desde otra aplicación

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

Alta usuarios y comunidades desde otra aplicación

Hola!

Soy nueva con esto de Alfresco. Queremos integrar en una aplicación Alfresco de modo que cuando dentro de esta aplicación se dé de alta un usuario también lo haga en Alfresco y cuando desde la otra aplicación se añada una comunidad también se añada dentro de Alfresco. Además lógicamente si dentro de la otra aplicación asocio usuarios a la comunidad también habrá que hacerlo…

Estaba mirando y tengo un cacao importante… Me pregunto si se podría hacer a través de triggers sobre la BD (usamos Oracle) o tal vez por WebServices???

Cualquier pista me vendría genial  :wink:

Gracias de antemano.

Un saludo.
3 Replies
cristinamr
Advanced

Re: Alta usuarios y comunidades desde otra aplicación

Buenos días.

A priori lo que comentas se puede hacer sin problemas con desarrollo, por ejemplo, vía webservices pero, ¿podrías explicarnos mejor que es eso de "comunidad"? Creo entender que son sitios, pero si puedes pon un ejemplo práctico así sabremos orientarte mejor Smiley Wink

Igualmente:

que cuando dentro de esta aplicación se dé de alta un usuario también lo haga en Alfresco

Para esto tendrías que modificar el código fuente de la otra aplicación, importarte de la SDK de alfresco los servicios necesarios (normalmente suelen ser la librería remoted y emebebed) y cuando se vaya a crear el usuario para la otra app, meterle algo como:

   …
    public static final String    ADMIN_USERNAME             = "admin";
    public static final String    ADMIN_PASSWORD             = "admin";

    public static final String       GROUP_AUTHORITY_TYPE       = "GROUP";

    public static final String    CP01_USERNAME              = "cp01";

    protected static final String    CONTENT_PROVIDER_GROUPNAME = "RBT_CONTENT_PROVIDER";

    public static void main(String[] args) throws Exception {
        // Start the session
        AuthenticationUtils.startSession(ADMIN_USERNAME, ADMIN_PASSWORD);
        try {
            createGroups();
            //createUsers();
            addUsersToGroup();
        } finally {
            // End the session
            AuthenticationUtils.endSession();
        }
    }

    private static void createGroups() throws AccessControlFault, RemoteException {
        AccessControlServiceSoapBindingStub accessControlService = WebServiceFactory.getAccessControlService();

        NewAuthority cpGrpAuth = new NewAuthority(GROUP_AUTHORITY_TYPE, CONTENT_PROVIDER_GROUPNAME);
        NewAuthority[] newAuthorities = {cpGrpAuth};
        String result[] = accessControlService.createAuthorities(null, newAuthorities);
    }

    private static void addUsersToGroup() throws AccessControlFault, RemoteException {
        String[] cpUsers = {CP01_USERNAME};
        String parentAuthority  = GROUP_AUTHORITY_TYPE + "_" + CONTENT_PROVIDER_GROUPNAME;

        AccessControlServiceSoapBindingStub accessControlService = WebServiceFactory.getAccessControlService();

        String[] result = accessControlService.addChildAuthorities(parentAuthority,
                                                                   cpUsers);
    }
   …

Fuente.

Es decir: Te autenticas con admin o un usuario con permisos y ya haces los métodos necesarios para la creación y asignación de grupos.
Ojo, es importante que una vez que crees un usuario lo metas en el grupo de usuarios que creas conveniente, así los tendrás "catalogados" en Alfresco y tendrán los permisos que quieras que tengan por defecto: Consumer (lector), editor, collaborator, coordinator y manager (el que crea el grupo y el que tiene plenos permisos sobre él).

Como documentación, dentro de la wiki de alfresco tienes ejemplos de la api de Java de webservice.. ¡Ah! y google  :mrgreen: )

En fin, mucha paciencia y poco a poco ve empezando por hace esa acción. Otra cosa es crearla comunidad, que para ello deberás ojear el servicio ScriptSiteService. Ten este post como referencia (céntrate en la última réplica).

¡Ah! Y un consejo: Probablemente lo que quieras hacer ya está hecho por otro lado (al menos la base). Busca bien con google para ahorrar tiempo  :wink:

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

Re: Alta usuarios y comunidades desde otra aplicación

Hola,
Y por que no en vez de liarte con la creacion de usuarios delegas la autenticacion de Alfresco a un server externo, tipo LDAP, Alfresco creara y sincronizara (si quieres) los grupos y los usuarios a medida que los usarios se sincronicen o hagan su primer login contra alfresco.
igomez
Member II

Re: Alta usuarios y comunidades desde otra aplicación

Gracias por vuestras respuestas, las acabo de ver Smiley Happy

Tras andar todo el día de ayer y hoy al final he optado por hacerlo por Web Scripts. Ya creo usuarios y sitios.

Ahora me faltaría asociar esos usuarios a sitios y además, dentro de un sitio, que ya esté creado con ciertas páginas. Es decir, por el Web Script se crea pero no tiene ni Wiki, ni foro ni nada, y lo que queremos hacer es que según los parámetros que reciba dicho script se cree con wiki, foro, etc.

Estaba viendo que cuando se hace via web hace una llamada POST a con el contenido de tipo JSON como por ejemplo {"siteId":"misitio","pages":[{"pageId":"wiki-page"},{"pageId":"documentlibrary"}],"themeId":"default"} a la URL http://localhost:8080/share/service/components/site/customise-pages. De momento no he dado con el formato exacto que me cree las páginas bien pero creo que estoy cerca.

Es un proyecto que corre prisa así que ya que lo tengo hecho así tiraré por esta vía, igualmente me guardo vuestras referencias por si hacen falta en un futuro.

Muchas gracias  Smiley Very Happy