根据REST API权限呈现HTML

hrp*_*xQ4 5 html javascript api rest vue.js

我有一个使用REST API的客户端呈现的前端。前端应根据用户授权呈现一些元素。示例权限可能是

  • 删除用户
  • 也可以删除主管
  • 创建用户
  • 将用户添加到工作流
  • ...

大量的权限由管理员管理。我的问题是:

您将如何知道此呈现页面具有哪些权限以及呈现什么?

我想到的唯一想法是创建一个API端点,/user/:id/permissions并要求用户拥有每个许可。一个示例响应对象可以是

[
  {
    "permissionId": 0,
    "description": "Has access to page"
  },
  {
    "permissionId": 1,
    "description": "Can create users"
  },
  {
    "permissionId": 2,
    "description": "Can delete users"
  }
  // ...
]
Run Code Online (Sandbox Code Playgroud)

然后,我可以根据这些权限开始渲染HTML(伪代码/我通常使用VueJs)

<button render-if="permissions.contains(1)">This shows up if the user can create users</button>
<button render-if="permissions.contains(2)">This shows up if the user can delete other users</button>
Run Code Online (Sandbox Code Playgroud)

我认为前端代码可能会有些混乱。API端点应该很好,但是也许有更好的解决方案。是否存在最佳实践解决方案?