我正在尝试使用sharedb实现一个小型软件,其中多个用户可以协作将项目添加到列表中,但是只有添加了一个项目的用户才能删除它。
我正在使用的所有访问控制都是在服务器端完成的。
我使用sharedb-access添加了基本的访问控制,但是现在我想存储将项目添加到列表中的用户。为此,我使用了allowUpdate
调用,该调用接收旧文档,新文档以及更新操作列表。
我的想法是检查操作中项目的添加或删除(或通过使用新旧文档的差异):如果用户要添加项目,我将在文档中存储有关作者的信息,如果用户尝试删除一个元素,我将检查作者是否允许删除尝试的用户。
为此,我需要在更新过程中修改文档,但是我不确定这是否是一件好事,以及如何正确进行操作。首先,sharedb-access似乎不提供对其作用的文档的写访问权限(我尝试从一个allowUpdate
规则内部修改文档,但没有任何反应。)
第二,我不知道在更新时修改文档是否是个好主意。
如何在文档中存储有关哪个用户执行了某些更改的信息,并确保只有服务器端中间件才能对这些信息采取行动?理想情况下,客户端不应该访问它,但是如果可以的话也可以。