如何仅为特定用户和角色显示和复制文档?

问题描述 投票:1回答:2

我正在使用couchdb和pouchdb构建一个协作应用程序。

我想实现日历功能。

假设有一个类似“秘密会议”的事件涉及用户Jessica和James,因此该事件应该只对Jessica和James有读取,更新和复制功能。或者,比方说,我有一个像“一般会议”这样的事件,它应该只对所有具有“办公室”角色的当前(和FUTURE!)用户具有读取,编辑和复制功能。

我知道couchdb中没有每个文档访问控制。我还读到了使用“代理服务器”但我不明白它们是如何工作的。

我读了很多关于使用“每个用户一个文档”的内容。如何在每个数据库中保持文档同步?我可以为每个事件创建一个DATABASE,但是如何查询显示我所有事件的视图?我是否还必须保留每个角色的数据库?

这是当今每个Web应用程序最常用的用例!想想Facebook,想想Whatsapp,每个聊天应用程序。

如果您不能限制对某些文档的访问,您应该如何使用CouchDB?

couchdb replication acl pouchdb nosql
2个回答
1
投票

是的,您应该为每个用户建立一个数据库,您将使用filtered replication将与该用户相关的所有事件文档或用户所属的角色放入每个数据库,然后您将整个数据库复制到用户的PouchDB。


1
投票

我最终为我的数据库开发了一个PROXY服务器,它位于我的主数据库前面并过滤数据。它有自己的端口,并在端口5984上查询Couchdb以获取权限。我使用了nodejs和Nano couchDB适配器。

© www.soinside.com 2019 - 2024. All rights reserved.