如何以编程方式在 Parse Server 中的 CLP 上设置指针权限?
How do I programmatically set pointer permissions on a CLP in Parse Server?
我想使用 REST API 或 JS SDK 在 CLP 上设置指针权限,以便我可以自动执行该过程。这可能吗?
文档讨论了 pointer permissions,但并未说明如何实现它们 AFAIK。来自链接文档:
Pointer permissions are a special type of class-level permission that create a virtual ACL on every object in a class, based on users stored in pointer fields on those objects. For example, given a class with an owner
field, setting a read pointer permission on owner
will make each object in the class only readable by the user in that object’s owner
field.
如何以编程方式实现上述目标?比如,如果我有一个存储 User
指针的 owner
属性 对象,我该如何设置 CLP 以使该对象只能由 owner
读取?
可以在 Parse Dashboard 中设置,方法是单击 class,然后从右侧的菜单中选择 "Security"。
像这样的东西应该适合你:
const schema = new Parse.Schema("MyClass");
schema.setCLP({
"find": {
"requiresAuthentication": true,
"role:admin": true
},
"get": {
"requiresAuthentication": true,
"role:admin": true
},
"create": { "role:admin": true },
"update": { "role:admin": true },
"delete": { "role:admin": true }
});
await schema.update();
您将需要使用 Node.js SDK 并使用主密钥对其进行初始化。
我能够通过搜索 Parse Server 源来解决这个问题。 This test suite 演示指针权限的用法。
将 CLP 添加到对象模式时,您可以通过在 CLP 的 readUserFields
和 writeUserFields
属性中包含指针名称来设置指针权限。这是一个例子:
const exampleSchema = new Parse.Schema('Example')
exampleSchema
.addString('content')
.addPointer('owner', '_User')
const clp = {
create: { '*': true },
readUserFields: ['owner'],
writeUserFields: ['owner']
}
exampleSchema.setCLP(clp)
await exampleSchema.save()
以上为 Example
对象创建了模式。它允许任何人创建一个Example
,但只允许在owner
属性中设置的用户读取或写入该对象。
我想使用 REST API 或 JS SDK 在 CLP 上设置指针权限,以便我可以自动执行该过程。这可能吗?
文档讨论了 pointer permissions,但并未说明如何实现它们 AFAIK。来自链接文档:
Pointer permissions are a special type of class-level permission that create a virtual ACL on every object in a class, based on users stored in pointer fields on those objects. For example, given a class with an
owner
field, setting a read pointer permission onowner
will make each object in the class only readable by the user in that object’sowner
field.
如何以编程方式实现上述目标?比如,如果我有一个存储 User
指针的 owner
属性 对象,我该如何设置 CLP 以使该对象只能由 owner
读取?
可以在 Parse Dashboard 中设置,方法是单击 class,然后从右侧的菜单中选择 "Security"。
像这样的东西应该适合你:
const schema = new Parse.Schema("MyClass");
schema.setCLP({
"find": {
"requiresAuthentication": true,
"role:admin": true
},
"get": {
"requiresAuthentication": true,
"role:admin": true
},
"create": { "role:admin": true },
"update": { "role:admin": true },
"delete": { "role:admin": true }
});
await schema.update();
您将需要使用 Node.js SDK 并使用主密钥对其进行初始化。
我能够通过搜索 Parse Server 源来解决这个问题。 This test suite 演示指针权限的用法。
将 CLP 添加到对象模式时,您可以通过在 CLP 的 readUserFields
和 writeUserFields
属性中包含指针名称来设置指针权限。这是一个例子:
const exampleSchema = new Parse.Schema('Example')
exampleSchema
.addString('content')
.addPointer('owner', '_User')
const clp = {
create: { '*': true },
readUserFields: ['owner'],
writeUserFields: ['owner']
}
exampleSchema.setCLP(clp)
await exampleSchema.save()
以上为 Example
对象创建了模式。它允许任何人创建一个Example
,但只允许在owner
属性中设置的用户读取或写入该对象。