我正在通过使用 Angular 作为前端和 Java(Spring-Boot) 作为后端来构建一个单页 Web 系统。该系统具有不同的角色,用户必须分配给一个角色。不同的角色可以做不同的操作。
假设保持简单:系统中有两个角色:超级用户和管理员。此系统中唯一的功能是 Product,它具有 3 个属性:名称、retail_price、factory_price。超级用户可以添加产品并更新这些属性。管理员可以查看名称和retail_price 但管理员无法查看 factory_price。管理员也可以更新retail_price 但无法添加产品。
为了在 Angular 中实现这个功能控制,我现在正在用 HTML 对代码进行硬编码。显示产品页面时,如果登录用户属于超级用户,将显示添加按钮。显示产品详细信息页面时,如果登录用户属于管理员,则 factory_price 将被隐藏,名称字段将为只读。
显然,这不是一个好方法,因为所有这些控制代码都是 HTML 格式的,每个人都可以阅读并了解我们的逻辑。我正在寻找一些可以在服务器端处理这个逻辑的解决方案和指导,服务器只返回浏览器需要显示的任何内容,前端(Angular)只显示来自服务器的内容并摆脱所有这些控制逻辑,如上所述。
另一个挑战是如何为不同的角色处理不同的 HTML。例如对于产品详细信息页面,我想为服务器端的不同角色准备 HTML 内容,一旦登录用户进入产品详细信息页面,Angular 只需发送一个 Restful 调用并从后端获取 HTML 内容并显示它。然后客户端不需要任何逻辑,只需显示即可。我应该为不同的角色使用不同的 HTML 模板吗?