我使用 repo graphql-auth-directives授权创建了一个基于 GRANDstack 的问答平台(类似于 stackoverflow)。这允许我们检查身份验证、角色级别或范围级别的授权。
在这个平台上,用户可以回答问题并可能将答案保存为草稿。只要没有发布答案,用户自己就应该看到它,但其他人不会看到它。然而,其他用户应该看到所有其他最终的答案。
如何创建这种类型的用户级别授权?结果应提供以下内容:
假设一个问题 Q 的 id someid
。目前已确定答案 A1 和 A2。如果某个随机用户 U1 执行查询:
query: {
Question(id:someid){
answers {
Answer{
id,
text,
is_draft
}
}
}
}
他/她应该将 A1 和 A2 视为答案。但是,如果另一位用户 U2 目前在草稿中对此问题有一个答案,例如 A3。然后他/她应该检索 A1、A2 和 A3。
有一些通用的解决方案吗?如果不是,那么建议的编程此功能的方法是什么?