你在使用 Graphcool 框架吗?
如果您需要在 graphcool.yml 中设置权限。我将包括以下内容:
图酷.yml
- operation: User.create
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.read
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.update
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.delete
authenticated: true
query: permissions/User.graphql:adminRole
- operation: User.read
authenticated: true
query: permissions/User.graphql:user
fields:
- id
- name
- role
- createdAt
- updatedAt
- email
- company
- operation: User.update
authenticated: true
query: permissions/User.graphql:user
fields:
- name
- company
用户.graphql
query user($node_id: ID, $user_id: ID!) {
SomeUserExists(filter: {AND: [{id: $user_id}, {id: $node_id}]})
}
query adminRole($user_id: ID!) {
SomeUserExists(filter: {id: $user_id, role: ADMIN})
}
这样用户只能更新他们的姓名和公司。然后管理员用户可以阅读和编辑每个人。只有 ADMIN 用户可以创建或更新新用户。
那么您可能会问如何创建新用户?我将使用 Graphcool 模板中的 FaaS 代码进行电子邮件密码身份验证,此处可以找到:
https://github.com/graphcool/templates/tree/master/auth/email-password
该signup.ts
文件应该您如何注册新用户,然后管理员会为您创建一个新用户。在注册功能中,您可以将 UserRole 默认为您想要的任何内容。
https://github.com/graphcool/templates/blob/master/auth/email-password/src/signup.ts