我正在管理一个使用Ionic 3.x,PouchDB,CouchDB和运行Superlogin的node.js服务器的多用户应用程序。该应用程序正在稳步增长,我想介绍一个新功能。
我的应用拥有普通用户和超级用户。 我的应用程序中的每个普通用户和超级用户都拥有自己的用户数据库。 还有一个共享数据库,我们称之为generaldb。
这是我的问题: 两个用户都可以创建文档。这些文档同步到userdb以及常规db。除其他外,这些文件具有关键字(例如“颜色”:“绿色”)。超级用户可以访问特定密钥。 (在上面的例子中,这意味着有5个超级用户可以访问密钥绿色。)
现在,普通用户不应该能够在generaldb上阅读,更新或写入其他用户的文档。 超级用户应该能够根据他们可以访问的密钥读取,更新或写入generaldb中的文档。但不应允许他们更改与其密钥不匹配的文档。
我的一个想法是只允许用户访问他们自己的数据库,并且只有超级用户可以访问共享数据库,然后将userdb的过滤复制到共享数据库。但这只能解决1并且效率非常低。
非常感谢任何帮助!