9

我正在寻找一个免费和开源的文档/内容管理系统(基于网络)来实现一个下载区域,有些人可以上传文件,有些人可以下载它们,具体取决于权限。必须可以创建文件夹(用于组织文件)并设置文件文件夹的权限。

我已经有包含用户和用户组的数据库表(在我的主 Web 应用程序中使用),我想在我的新 DMS webapp 中使用相同的用户和组来授予权限。显然避免手写或硬编码这些数据。通过这种方式,我以后可以直接在原始数据库中修改数据,并且它会在 DMS 中保持最新。

是否有一个 DMS 允许设置它必须在哪里检索用户和组数据,还定义在哪些数据库、表和字段中?或者离这不远的其他东西......比如将用户和组从我的 webapp DB 复制到 DMS DB 的批处理过程。


这里是我已经尝试过但没有成功的产品,按丢弃的原因分组。

目的问​​题:

访问控制问题:

  • Jease:会很棒(如此简单明了!),但它不管理组并且用户的权限是整个文件夹(用户可以对文件执行所有操作,而不仅仅是查看它们)
  • InfoGlue:良好的用户和组管理,但权限仅对文件夹和内容不是文件而是文章/图像/模板/等。
  • LogicalDoc(前 Contineo):很棒的 CMS,具有修订管理等功能,但权限仅限于文件夹
  • jAPS:为创建站点而构建,仅对组具有权限,对用户没有权限
  • Joomla!使用DOCman组件:权限只能授予 1 个用户或 1 个组
  • Nuxeo DM:它是一个很好的 DMS,但对于协作工作(不太适合下载区域),但主要问题是权限仅在文件夹上,而不在文件上
  • Xoda , KRYSTAL DMS , yaDMS , PHP Navigator , DocumentManager:非常简单,但权限只涉及对系统的全局访问
  • MeshCMS , Kordil EDMS , Simple Document Management System : 非常简单,没有组,文件/文件夹没有访问控制
  • eZimDMS:组不用于文件/文件夹的权限,但仅用于 3 个全局权限
  • OpenDocMan:类似于我正在寻找的,但组被视为部门,数据库表缺少主键并且您无法创建文件夹;我喜欢它的简单性,但在全球范围内它似乎做得不太好

平台问题:

  • ContelligentXinco DMSjLibrary:它的客户端是一个桌面(不是网络)应用程序(第二个你有 Java Web Start)
  • OpenKM:很好,但它只能在 jBoss 中工作,而不是在我的 Tomcat 中

安装问题:

  • Apache Lenya:我不知道它是否可以,因为我无法使其工作并且演示不工作..
  • Owl Intranet Engine:它有错误,我无法理解它是如何工作的
  • DocMGR:支持 LDAP,但我无法使其工作;而且不支持IE7
  • Epiware:没有免费的 Windows 版本(不幸的是我在 Windows 下)

可靠性问题:

谢谢!

4

6 回答 6

3

所以...为了使想法清晰,您需要:

  1. 免费和开源系统
  2. 下载区(上传下载)
  3. 用户角色
  4. 使用外部数据库
  5. 有某种自动化过程来使用外部数据库中的用户数据

我将是要点(如果我遗漏了任何要点,请将它们添加为评论以更新此答案)

  1. 我会选择 Drupal http://drupal.org
  2. 在 drupal 中,您可以创建自定义内容类型并将系统设置为几乎任何您想要的。在这种情况下,我建议您使用以下模块:

  3. 用户角色可以使用内置选项以及每个字段权限(可通过内容模块获得)进行管理。您可以根据需要为用户分配任意数量的角色

  4. 使用用户导入模块,您可以通过多种方式导入用户,但这并不是自动化的。您必须将您的用户数据库导出为 CSV,然后将其导入 drupal。然后,这些模块允许您映射字段。

  5. 您可以通过使用 cron 或使用http://island.byu.edu/drupal/content/drupal-6-external-database-authentication-roles中的说明替换用户导入模块来自动化整个过程

步骤应该是:

  1. 安装drupal 6 (mysql+php) [你也可以用drupal 7,但是现在drupal 6的教程和模块比较多,因为d7刚出,用户导入模块还没有d7可用]
  2. 启用我推荐的模块
  3. 创建一个新的内容类型(例如文件)并添加一个文件类型字段
  4. 创建分类词汇为文件创建“类别”并将其分配给“文件”内容类型
  5. 创建一些角色(例如编辑者、所有者、只读等)并根据您希望每个角色执行的操作分配不同的权限
  6. 转到用户导入模块并导入您的用户数据库(您也可以更新现有用户)并将字段(重要的是用户名、密码、角色)映射到您的 csv 文件中的字段
  7. 创建一些视图以显示您想要的内容(文件)(例如,按类别)、按角色等...

我认为这些是拥有您想要的工作下载区域的基本步骤。当然,您可以通过添加更多模块(http://drupalmodules.com/是一个非常好的起点)来自定义它(这就是drupal 的强大功能)

一旦您掌握了基础知识,您就可以开始使用面板http://drupal.org/project/来自定义整个站点的布局并检查http://drupal.org/project/Themes中的一些主题以进行更改您网站的外观(您也可以使用纯 CSS)

我希望它有所帮助。如果您想在此解决方案中添加其他功能或不清楚的地方,请告诉我。

干杯!

于 2011-02-27T18:56:01.040 回答
0

Apache Lenya 可以工作。您必须编写自己的身份验证机制和组管理代码才能同步数据库中的用户。任何产品都会让您难以对抗专有数据库。如果您能够将用户和组数据放入一个目录(例如 LDAP)中,那么您的问题就会变得容易得多。

于 2011-02-23T17:00:59.583 回答
0

Joomla!使用 DOCman 组件:权限只能授予 1 个用户或 1 个组

这实际上应该为您工作。您可以为要管理的文件创建一个组,并在他们获得/失去对文件的访问权限时将人员添加/删除到该组。

于 2011-02-25T17:56:51.413 回答
0

我不确定这是否能 100% 回答您的问题,但是我使用Daisy-cms作为文档管理系统。

使用 Daisy,您可以设置附件文档或您自己的文档类型。您不能创建文件夹,但您可以根据字段中的值进行访问(这是棘手的部分)。

它是开源的,很容易针对 MySQL 进行安装,点击即可完成大部分您想做的事情。

希望这可以帮助。

于 2011-03-01T05:33:10.150 回答
0

我找到了这些可能的解决方案

  • LetoDMS (ex MyDMS),用 PHP 编写,有自己的用户和组表,老式的风格,不太友好
  • Quotero,用 Java 编写,支持 LDAP、Active Directory、Joomla 身份验证;可以构建更多自定义身份验证源(从本教程开始);它的项目似乎更活跃;它具有最人性化和现代的布局

即使它有一些错误,出于上述原因,我还是选择了 Quotero 。它的可扩展性(相对于我需要的)让我感到惊讶。

我如何安装(在 Ubuntu Server 10 上的 Tomcat 6 和 Windows 7 上的 Tomcat 7 中)并将其与我的主 webapp 集成

  • 安装 MySQL、PostgreSQL、Oracle DB、SQL Server 或其他 DBMS(最后一个需要自定义)
  • 下载quotero-deployer-2.0.war
  • 将 quotero-deployer-2.0.war 放在 Tomcat webapps 中
  • 浏览到http://localhost:8080/quotero-deployer-2.0并使用向导配置您的安装(参见快速安装教程
  • 该向导将在 webapps 文件夹中创建 DB 和 2 .war:QuoteroServer 和 QuoteroClient;用户将使用后者
    • 在 Linux 系统中,它可能会将这些 webapps 放在 /usr/share/tomcatx/webapps 文件夹中;如果您在 /var/lib/tomcatx/webapps 中需要它们,只需移动它们
  • 按照 Joomla15 的示例和本教程,为身份验证源编写自定义类
    • org.coretechs.quotero.user.impl.AuthenticationSourceFoo(主类;它还处理域创建中要求的参数)
    • org.coretechs.quotero.user.impl.factory.foo.FooUserFactory(与用户表交互)
    • org.coretechs.quotero.user.impl.factory.foo.FooGroupFactory(与组表交互)
    • org.coretechs.quotero.user.impl.factory.foo.FooDBManagerDB2(与数据库交互)
    • org.coretechs.quotero.user.impl.factory.foo.FooPasswordHash(实现自定义密码哈希算法)
  • 在 Eclipse(或类似的 IDE)项目中插入此类类,使用您可以在 QuoteroServer/WEB-INF/lib 和 QuoteroClient/WEB-INF/lib 中找到的所有库设置构建路径
  • 生成一个 .jar 并将其放在 QuoteroServer/WEB-INF/lib
  • 将 .jar 与您的数据库驱动程序放在同一文件夹中
  • 浏览到http://localhost:8080/QuoteroClient,登录(默认用户名是 admin 密码是 admin)
  • 打开 Toolbox > Administration > Domains 并添加一个新域,选择 Domain 键入您的自定义身份验证源并设置参数,例如 DB URL、用户名和密码

通过这种方式,您可以使用属于您的主 web 应用程序的用户和组的帐户(或任何在数据库中具有用户和组表的应用程序!)登录,并且 Quotero DMS 的文件和文件夹的权限也可以参考这些。属于经典域的其他数据,例如权限、文档、任务、工作流、用户和组,将保留在 Quotero DB 中。因此,您有 2 个 DB:一个用于整个 Quotero DMS,一个(已经存在)用于 Quotero 检索用户和组(无需复制这些数据)。

编辑:

我不得不面对一些影响 Quotero 工作的错误......所以我不得不放弃这个解决方案

于 2011-03-07T14:44:53.597 回答
0

我最终决定使用商业客户端-服务器 DMS,并在它之上构建了一个用于检索文档及其关系的 Web 应用程序。文档访问控制由 DMS 管理,给定用户名和密码。用户和组可以很容易地添加到 DMS。这是基础设施:

                      SOAP                   WCF connector (DLL)
webapp (JSP, mapping) ----> web service (C#) ------------------> WCF (DMS server)
于 2012-04-26T07:10:09.970 回答