【发布时间】:2023-06-01 22:30:01
【问题描述】:
我正在制作一个员工管理网络应用程序,该应用程序需要根据用户的部门和职位以及员工的部门和职位限制用户可以看到的内容。
例如,下面是组织层次结构:
| VP Unit 1 | VP Unit 2 | |
| Director Unit 1 | Director Unit 2 | Director HR |
| Department 1 Manager | Department 2 Manager | HR Manager |
| Department 1 Supervisor | Department 2 Supervisor | HR Associate |
| Department 1 Worker | Department 2 Worker |
工人和主管无权访问该系统。 HR 人员可以查看所有部门/业务单位的所有员工记录。部门经理可以查看并为自己部门的主管和工人创建记录。主管可以查看并为自己部门的经理、主管和员工创建记录。
我正在使用 Nextjs 和 AWS Amplify 编写应用程序,后者通过 AWS Cognito 提供身份验证。我希望能够在应用程序中创建员工/用户,然后分配一个部门和一个职位——可能是组,或者只是自定义属性。该部门似乎很容易在 graphql 模式中使用@auth,但对于这个职位,我想不出一种方法来使用组来只查看下一个级别。如果员工升职,则读取或创建员工档案记录的访问级别也应更改。此外,一旦应用程序投入生产,将不会有任何人从 AdminUI 维护它,因此所有功能都必须从应用程序的前端可用。
实现这一点的最佳方法是什么?
【问题讨论】:
标签: amazon-web-services amazon-cognito aws-amplify