0

我正在通过使用 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 模板吗?

4

1 回答 1

0

您使用的协议是 HTTP,它是无状态的。没有提到您将哪种 Java 技术(Spring、JSP Servlet)用于后端。如果您有不同的用户并且他们有不同的权限或角色,您需要在后端保持会话关联。当您可以获得登录用户时,您可以提取该用户的角色。根据这些属性,您可以查询数据库并向客户端提供数据。

于 2016-12-14T06:38:22.537 回答