创建团队时写无效角色



在使用node-appwrite包创建appwrite团队时,我得到了Invalid roles响应。下面是我使用的代码

import Sdk, { Permission, Role } from 'node-appwrite'
const client = new Sdk.Client()
client
.setEndpoint(process.env.SERVER_URI)
.setProject(process.env.PROJECT_ID)
.setKey(process.env.SERVER_API_KEY)
const teams = new Sdk.Teams(client)
await teams.create('comics', 'Comics and Superheroes', [
Permission.read(Role.users()),
Permission.update(Role.team('admin')),
Permission.delete(Role.team('admin'))
])

下面是请求的错误响应。

{
code: 400,
type: 'general_argument_invalid',
response: {
message: "Invalid roles: Value must a valid array and Parameter must contain at most 36 chars. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char",
code: 400,
type: 'general_argument_invalid',
version: '1.2.0'
}
}

如果我只记录传递给服务器的权限,这是结果

[ 'read("users")', 'update("team:admin")', 'delete("team:admin")' ]

我认为问题来自字符串中分号和括号的存在。我该如何解决这个问题,还是我错过了什么?

teams.create()roles参数接受一个字符串数组,该数组应该是团队中可用的角色。在您的案例中,您需要2个角色:1个用于管理员(应该是所有者),另一个用于普通成员。因此,调用应该是:

await teams.create('comics', 'Comics and Superheroes', [
'member',
'owner'
])

Permission.read(Role.team('comics'))Permission.update(Role.team('comics', 'owner'))Permission.delete(Role.team('comics', 'owner'))权限可以在以后为集合、文档、桶或文件设置权限时使用。

最新更新