2011-02-07 24 views
9

Estoy buscando un sistema de gestión de contenido/documento de código abierto (basado en la web) para implementar área de descarga, donde algunas personas pueden cargar archivos , alguien más puede descargarlos, dependiendo de permisos. Debe ser posible crear carpetas (para organizar los archivos) y establecer permisos en los archivos y carpetas.Creando un área de descarga con usuarios y grupos tomados de una base de datos externa

Ya tengo tablas de base de datos con usuarios y grupos de usuarios (utilizados en mi aplicación web principal) y me gustaría utilizar los mismos usuarios y grupos en mi nueva aplicación web DMS para otorgar permisos. Obviamente evitando escribir a mano o codificar estos datos. De esta manera, podría modificar los datos directamente en el DB original en el futuro y permanecerá actualizado en el DMS.

¿Hay un DMS que permite establecer dónde tiene que recuperar los datos de usuarios y grupos, también definiendo en qué base de datos, tablas y campos? O algo más no muy lejos de esto ... como los procedimientos por lotes que copian usuarios y grupos de mi base de datos de aplicaciones a la base de datos de DMS.


Aquí los productos que ya intentado sin éxito, agrupados por el motivo de descarte.

problemas Propósito:

  • Plone, Magnolia, Riot, Walrus, fleXive, LibreSource, TransferCM, Jahia: son CMS con el fin de las obras de construcción o gestión de contenidos Sitios, DMS es sólo una pequeña parte de la todo el sistema
  • Liferay, GateIn, Pulse: hecho para la construcción de portales o aplicaciones web complejas
  • Alfresco: parece genial, quizás demasiadas funciones para este caso, pero estoy tratando de entender si (y cómo) un administrador puede administrar el acceso de grupo/usuario a documentos dentro del mismo sitio
  • OpenCMS: demasiado complejo para este caso
  • dotCMS: CMS para la creación de sitios, demasiado compleja en la gestión de permisos
  • Hippo CMS, CMS Container: parece no manejar los permisos de acceso a documento (pero sólo para su publicación)
  • Orfeo, Jumper, DSpace, Daisy, eAdmin/OWX, Cofax, JadaSite, Maarch: construido para diferentes propósitos
  • problemas de control

de acceso:

  • Jease: sería genial (tan simple y claro!), pero no administra grupos y el permiso para los usuarios es sobre carpetas enteras (donde los usuarios pueden hacer todo con los archivos, no solo verlos)
  • InfoGlue: buenos usuarios y administración de grupos, pero los permisos están solo en carpetas y los contenidos no son archivos, sino artículos/imágenes/plantillas/etc.
  • LogicalDoc (ex Contineo): gran CMS, la gestión de revisiones, etc., pero los permisos son sólo en carpetas
  • jAPS: construidos para la creación de sitios, con permisos sólo para grupos, no para los usuarios
  • Joomla! con DOCman componente : se pueden otorgar permisos solo a 1 usuario o 1 grupo
  • Nuxeo DM: es un buen DMS, pero para trabajo colaborativo (no tan adecuado para un área de descarga), pero el problema principal es que los permisos están solo en carpetas, no en archivos
  • Xoda, KRYSTAL DMS, yaDMS, PHP Navigator, DocumentManager: muy simples, pero el permiso sólo se concentra en el acceso mundial al sistema
  • MeshCMS, Kordil EDMS, Simple Document Management System:, no hay grupos, sin control de acceso en los archivos/carpetas muy simples
  • eZimDMS: Grupos no son usado para permisos en archivos/carpetas, pero solo para 3 privilegios globales
  • OpenDocMan: similar a lo que estoy buscando, pero los grupos se tratan como departamentos, las tablas DB faltan claves principales y no se pueden crear carpetas; Me gusta su easyness, sino a nivel mundial no parece tan bien hecho

problemas sobre la plataforma:

  • Contelligent, Xinco DMS, jLibrary: su cliente es una aplicación de escritorio (no es una web) (para el segundo que tiene Java web Start)
  • OpenKM: es bueno, pero debe trabajar sólo en el interior jBoss y no en mi Tomcat

instalación pr oblemas:

  • Apache Lenya: No sé si está bien porque no podía hacer que funcione y demostraciones no funciona ..
  • Owl Intranet Engine: tiene errores y no puedo entender cómo funciona
  • DocMGR: soporta LDAP, pero no podía hacer que funcione; Por otra parte no soporta IE7
  • Epiware: hay una versión gratuita para Windows (por desgracia estoy bajo Windows)

problemas de fiabilidad:

Gracias!

+0

+1 usted realmente ha investigado algo antes de preguntar a la comunidad. –

Respuesta

0

Finalmente, decidí usar un DMS comercial cliente-servidor y, además, una aplicación web para recuperar documentos y sus relaciones. El DMS gestiona el control de acceso a los documentos, con nombre de usuario y contraseña. Los usuarios y grupos se pueden agregar fácilmente al DMS. Esta es la infraestructura:

     SOAP     WCF connector (DLL) 
webapp (JSP, mapping) ----> web service (C#) ------------------> WCF (DMS server) 
0

Apache Lenya podría funcionar. Tendría que escribir su propio mecanismo de autenticación y código de administración de grupo para sincronizar a los usuarios desde el DB. Cualquier producto te dará dificultades para ir en contra de una base de datos propietaria. Si fue capaz de poner los datos del usuario y del grupo en un directorio, digamos LDAP, su problema se vuelve mucho más fácil.

0

Joomla! con el componente DOCman: los permisos se pueden otorgar solo a 1 usuario o 1 grupo

Esto debería funcionar para usted. Puede crear un solo grupo para el archivo que desea administrar y agregar/eliminar personas a ese grupo a medida que ganan/pierden el acceso al archivo.

+0

Lo siento, no puedo desarrollar algo como esto: demasiado complicado para los administradores. ¡Gracias de cualquier manera! – bluish

3

así que ... para que cree clara, se necesita:

  1. Sistema
  2. área de descarga (carga y descarga)
  3. las funciones de usuario
  4. Hacer uso de DB externa código abierto y libre
  5. tener algún tipo de proceso automatizado para utilizar los datos de usuario en la base de datos externa

que esos serían los puntos principales (Si me perdí ninguna, por favor agregue como comentarios para actualizar esta respuesta)

  1. Me gustaría ir con Drupal http://drupal.org
  2. En Drupal se puede crear tipos de contenido personalizados y configure el sistema para casi cualquier cosa que desee.En este caso, le recomendamos que utilice los siguientes módulos:

  3. Roles de usuario pueden ser gestionados con las opciones integradas más permisos por campo (disponible con el módulo de contenido). Puede asignar tantas funciones a un usuario como desee

  4. Usando el módulo de importación de usuarios puede importar usuarios de muchas maneras, pero no es así de automatizado. Deberá exportar su usuario db como CSV y luego importarlo a drupal. Los módulos le permiten mapear los campos.

  5. Es posible automatizar el proceso completo mediante el uso de cron o reemplazar el módulo de importación de usuarios con las instrucciones que se encuentran en http://island.byu.edu/drupal/content/drupal-6-external-database-authentication-roles

Los pasos deben ser:

  1. Instalar drupal 6 (MySQL + php) [también puede ir con drupal 7 pero ahora hay más tutoriales y módulos para drupal 6, ya que d7 acaba de salir, y el módulo de importación del usuario todavía no está disponible para d7]
  2. Habilite la módulos recomendados
  3. Crear un nuevo tipo de contenido (ej. Archivo) y agregue un campo de tipo de archivo
  4. Cree un vocabulario de taxonomía para crear "categorías" para los archivos y asígnelo al tipo de contenido "Archivos"
  5. Cree algunos roles (ej. Editor, propietario, solo lectura y así activado) y asignar diferentes permisos según lo que desee que haga cada función
  6. vaya al módulo de importación de usuario e importe su usuario db (también puede actualizar los usuarios existentes) y asigne los campos (los más importantes son nombre de usuario, contraseña , roles) a los campos en su archivo csv
  7. crear algunas vistas para mostrar el contenido (archivos) como desee (por ejemplo, por categoría), por función, etc. ...

Creo que esos son los pasos básicos para tener un área de descarga que funcione como la que desea. Por supuesto, puede personalizarlo tanto como te gusta (que es el poder de Drupal) mediante la adición de más módulos (http://drupalmodules.com/ es un muy buen punto de partida)

Una vez que usted tiene los fundamentos de trabajo puede empezar a jugar con paneles http://drupal.org/project/ a personalizar el diseño de todo el sitio y comprobar algunos de los temas en http://drupal.org/project/Themes para cambiar la apariencia & sensación de su sitio (también se puede ir con css puro)

Espero que ayude. Si desea agregar otra función a esta solución o algo no es lo suficientemente claro, hágamelo saber.

¡Salud!

+0

¡Es una GRAN respuesta! vale la pena la recompensa, incluso si no estoy seguro de que voy a implementarlo, porque al final estoy encontrando algo que ya está listo para su uso. De todos modos, su respuesta habla sobre usuarios y roles, pero no sobre grupos (por ejemplo, Clientes, Internos, Agentes ...); están en otra mesa de mi DB. ¡GRACIAS! – bluish

+0

@bluish Me alegro de que te guste la respuesta. Hay muchas formas de implementar grupos en Drupal. La forma más fácil es utilizar el módulo ** Grupos orgánicos ** (http://drupal.org/project/og) que ya está integrado con ** User Import ** _ (de esta manera puede usar los datos en su DB cuando importa usuarios) _. Otra forma sería implementar grupos de Taxonomía y un módulo de ACL como Taxonomy Access Control Lite (http://drupal.org/project/tac_lite). Si tiene alguna otra pregunta, no dude en preguntar. – daco

0

No estoy seguro de si esto responde al 100% de sus problemas, sin embargo, he usado Daisy-cms como un sistema de gestión de documentos.

Con Daisy puede configurar documentos adjuntos o sus propios tipos de documento. No puede crear carpetas sin embargo, puede tener acceso (esta es la parte complicada) en función de los valores en los campos.

Es de código abierto, fácil de instalar contra MySQL y apunta y hace clic para la mayoría de lo que quiere hacer.

Espero que esto ayude.

0

me encontré con estos posibles soluciones:

  • LetoDMS (ex mydms), escrito en PHP, tiene sus usuarios y grupos de mesas propia, pasado de moda de estilo, menos fácil de usar
  • Quotero, escrito en Java, con LDAP, Active Directory, soporte de autenticación de Joomla; se pueden construir más fuentes de autenticación personalizadas (comenzando desde this tutorial); su proyecto parece más activo; tiene el más fácil de usar y el diseño moderno

Incluso si tiene algunos errores, que he elegido Quotero, por las razones anteriores. Su extensibilidad (en relación con lo que necesito) me sorprendió.

Cómo he instalado (en Tomcat 6 en Ubuntu Server 10 y Tomcat 7 en Windows 7) y lo integró con mi aplicación web principal:

  • instalar MySQL, PostgreSQL, Oracle DB, SQL Server u otro DBMS (el último requiere personalización)
  • descarga quotero-deployer-2.0.war
  • lugar quotero-implementador-2.0.war en Tomcat webapps
  • de exploración para http://localhost:8080/quotero-deployer-2.0 y utilice el asistente para configurar su instalación (consulte quick install tutorial)
  • el asistente creará el DB y 2.guerra en la carpeta webapps: QuoteroServer y QuoteroClient; los usuarios utilizarán el último
    • en sistemas Linux probablemente colocarán estas aplicaciones web en la carpeta/usr/share/tomcatx/webapps; si los necesita en/var/lib/tomcatx/webapps, simplemente moverlos
  • escribir sus clases personalizadas para la fuente de autenticación, siguiendo el ejemplo de joomla15 y this tutorial
    • org.coretechs.quotero.user.impl.AuthenticationSourceFoo (la clase principal, sino que se ocupa también los parámetros formuladas en la creación de dominios)
    • org.coretechs.quotero.user.impl.factory.foo.FooUserFactory (interactúa con tabla de usuarios)
    • org.coretechs.quotero.user.impl.factory.foo.FooGroupFactory (interactúa con mesa grupos)
    • org.coretechs.quotero.user.impl.factory.foo.FooDBManagerDB2 (interactúa con la base de datos)
    • org.coretechs.quotero.user.impl.factory.foo.FooPasswordHash (implementa algoritmo personalizado hash de la contraseña)
  • inserción de dichas clases dentro de un proyecto de Eclipse (IDE o similar), el establecimiento de la trayectoria de la estructura con todas las bibliotecas se pueden encontrar en QuoteroServer/WEB-INF/lib y QuoteroClient/WEB-INF/lib
  • generar un .jar y colocarlo en QuoteroServer/WEB-INF/lib
  • lugar el .jar con el controlador de base de datos en la misma carpeta
  • de exploración para http://localhost:8080/QuoteroClient, conectarse (por defecto nombre de usuario es admin y contraseña admin)
  • Caja de herramientas abierta> Administración> Dominios y añadir un nuevo dominio, eligiendo como tipo de dominio de su fuente de autenticación personalizado y el establecimiento de los parámetros, como la base de datos de URL, nombre de usuario y contraseña

De esta manera se puede acceder con la cuentas que pertenecen a usuarios y grupos de su aplicación web principal (o cualquier aplicación con tablas de usuarios y grupos en una base de datos) y también permisos a archivos y carpetas de Quotero DMS. Otros datos, como permisos, documentos, tareas, flujos de trabajo, usuarios y grupos pertenecientes al dominio clásico, permanecerán en el DB de Quotero. Tiene 2 DB: uno para todo el DMS de Quotero y otro (ya existente) donde Quotero recupera usuarios y grupos (no es necesario replicar estos datos).

EDIT:

que tenía que hacer frente a algunos errores que ponen en peligro el funcionamiento de Quotero ... así que tuvieron que abandonar esta solución.

Cuestiones relacionadas