【发布时间】:2017-03-24 05:08:32
【问题描述】:
我试图阻止用户更新 mongodb 对象中的某些字段,允许他们编辑每个其他字段。例如,用户应该能够编辑/添加/删除除“权限”字段之外的所有字段。我目前的方法是测试用户尝试“$set”的每个键,看看它是否以子字符串“permissions”开头(以覆盖点符号)。 python中的示例:
def sanitize_set(son):
return {"$set": {k: v for k, v in son.get("$set", {}).items()
if not k.startswith("permissions")}}
这种方法非常简单,而且似乎很有效。我想联系社区,看看有没有其他人以前解决过这个问题,或者看到我的方法有明显的缺陷。谢谢,
约书亚
【问题讨论】:
-
是否有一组不同的字段可供每个用户编辑?如果您可以展示一个示例文档,那可能会使您的提案更清晰。
-
我编辑了这个问题,以澄清用户可以以他们想要的任何方式编辑文档,除了我想要保护的某些字段。一个示例文档是:{"name": "test_object", "permissions": {"Joshua": ["AttributeA", "AttributeB"], "John": ["AttributeA"]}}。在此示例中,用户可以编辑名称、删除字段名称、添加字段“电话”,或者通常他们想要的任何内容,除了编辑权限字段。
标签: mongodb mongodb-query