当我使用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")' ]
我相信问题是因为字符串中存在分号和括号。我该如何解决这个问题,还是我遗漏了什么?
1条答案
按热度按时间gstyhher1#
teams.create()
的roles
参数接受一个字符串数组,这些字符串应该是团队中的可用角色。在您的示例中,您需要2个角色:1个用于管理员(应该是所有者),另一个用于普通成员。因此,调用可能应该是:Permission.read(Role.team('comics'))
、Permission.update(Role.team('comics', 'owner'))
和Permission.delete(Role.team('comics', 'owner'))
权限可在以后设置集合、文档、存储桶或文件的权限时使用。